aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-11-30 01:00:08 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-11-30 01:00:08 +0100
commit2752a4632e94e2687655087d0d7f98b6b16e16a9 (patch)
tree3d9fe294e67cd5f5ae12a0004d467ec7b5b7bf51 /tests/auto/qml
parent070eb7bdde4f9e6e814c3afc593368918fd445af (diff)
parentd0a52c72b5756787ceb6094117cd71d935badc06 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Diffstat (limited to 'tests/auto/qml')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/js/include2.js5
-rw-r--r--tests/auto/qml/v4misc/tst_v4misc.cpp26
2 files changed, 30 insertions, 1 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/js/include2.js b/tests/auto/qml/qqmlecmascript/data/js/include2.js
index 2a0c039dfa..7cfcdd95e2 100644
--- a/tests/auto/qml/qqmlecmascript/data/js/include2.js
+++ b/tests/auto/qml/qqmlecmascript/data/js/include2.js
@@ -2,3 +2,8 @@ test2 = true
var test2_1 = true
Qt.include("include3.js");
+
+function withTokensAllowedInJSButKeywordsInQML(char)
+{
+ var double;
+}
diff --git a/tests/auto/qml/v4misc/tst_v4misc.cpp b/tests/auto/qml/v4misc/tst_v4misc.cpp
index ecc3a4100c..2412ca7f92 100644
--- a/tests/auto/qml/v4misc/tst_v4misc.cpp
+++ b/tests/auto/qml/v4misc/tst_v4misc.cpp
@@ -43,6 +43,8 @@ private slots:
void subClassing_data();
void subClassing();
+
+ void nestingDepth();
};
void tst_v4misc::tdzOptimizations_data()
@@ -59,7 +61,7 @@ void tst_v4misc::tdzOptimizations()
QFETCH(QString, scriptToCompile);
QV4::ExecutionEngine v4;
- QV4::Script script(&v4, nullptr, scriptToCompile);
+ QV4::Script script(&v4, nullptr, /*parse as binding*/false, scriptToCompile);
script.parse();
QVERIFY(!v4.hasException);
@@ -173,6 +175,28 @@ void tst_v4misc::subClassing()
QVERIFY(!result.isError());
}
+void tst_v4misc::nestingDepth()
+{
+ { // left recursive
+ QString s(40000, '`');
+
+ QJSEngine engine;
+ QJSValue result = engine.evaluate(s);
+ QVERIFY(result.isError());
+ QCOMPARE(result.toString(), "SyntaxError: Maximum statement or expression depth exceeded");
+ }
+
+ { // right recursive
+ QString s(200000, '-');
+ s += "\nd";
+
+ QJSEngine engine;
+ QJSValue result = engine.evaluate(s);
+ QVERIFY(result.isError());
+ QCOMPARE(result.toString(), "SyntaxError: Maximum statement or expression depth exceeded");
+ }
+}
+
QTEST_MAIN(tst_v4misc);
#include "tst_v4misc.moc"