diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2017-12-13 14:30:28 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@qt.io> | 2017-12-14 09:17:30 +0000 |
commit | a1fd2866465c4be2815a6ada776867b3d4efc557 (patch) | |
tree | dde453bc71f1aba07f570b0aed331f3904fec5f3 /tests/auto/qml/qjsengine | |
parent | 904179cb681e28b248d892e699f5706666a1b4fc (diff) |
Fix QJSEngine::evaluate regression
The compilation mode used in the evaluate method was changed to eval,
breaking existing uses. This patch fixes that.
Task-number: QTBUG-65167
Change-Id: I645ad50be36884eb10bf86ecf060b2b62b50f122
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests/auto/qml/qjsengine')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 446f9b04a7..519c57efb2 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -201,6 +201,8 @@ private slots: void malformedExpression(); + void scriptScopes(); + signals: void testSignal(); }; @@ -4118,6 +4120,22 @@ void tst_QJSEngine::malformedExpression() engine.evaluate("5%55555&&5555555\n7-0"); } +void tst_QJSEngine::scriptScopes() +{ + QJSEngine engine; + + QJSValue def = engine.evaluate("'use strict'; function foo() { return 42 }"); + QVERIFY(!def.isError()); + QJSValue globalObject = engine.globalObject(); + QJSValue foo = globalObject.property("foo"); + QVERIFY(foo.isObject()); + QVERIFY(foo.isCallable()); + + QJSValue use = engine.evaluate("'use strict'; foo()"); + QVERIFY(use.isNumber()); + QCOMPARE(use.toInt(), 42); +} + QTEST_MAIN(tst_QJSEngine) #include "tst_qjsengine.moc" |