diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-11-30 01:00:08 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-11-30 01:00:08 +0100 |
commit | 2752a4632e94e2687655087d0d7f98b6b16e16a9 (patch) | |
tree | 3d9fe294e67cd5f5ae12a0004d467ec7b5b7bf51 /tests/auto/qml | |
parent | 070eb7bdde4f9e6e814c3afc593368918fd445af (diff) | |
parent | d0a52c72b5756787ceb6094117cd71d935badc06 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ie977b1998eba8c9aa8582a96132bf1aa0ec55ca4
Diffstat (limited to 'tests/auto/qml')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/data/js/include2.js | 5 | ||||
-rw-r--r-- | tests/auto/qml/v4misc/tst_v4misc.cpp | 26 |
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" |