aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qjsengine
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/qjsengine')
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index d348881e2e..df428d5929 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -256,6 +256,7 @@ private slots:
void sortSparseArray();
void compileBrokenRegexp();
void sortNonStringArray();
+ void iterateInvalidProxy();
void tostringRecursionCheck();
void arrayIncludesWithLargeArray();
@@ -5079,6 +5080,20 @@ void tst_QJSEngine::sortNonStringArray()
QCOMPARE(value.toString(), "TypeError: Cannot convert a symbol to a string.");
}
+void tst_QJSEngine::iterateInvalidProxy()
+{
+ QJSEngine engine;
+ const auto value = engine.evaluate(
+ "const v1 = new Proxy(Reflect, Reflect);"
+ "for (const v2 in v1) {}"
+ "const v3 = { getOwnPropertyDescriptor: eval, getPrototypeOf: eval };"
+ "const v4 = new Proxy(v3, v3);"
+ "for (const v5 in v4) {}"
+ );
+ QVERIFY(value.isError());
+ QCOMPARE(value.toString(), "TypeError: Type error");
+}
+
QTEST_MAIN(tst_QJSEngine)
#include "tst_qjsengine.moc"