aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qjsengine
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@qt.io>2017-12-13 14:30:28 +0100
committerErik Verbruggen <erik.verbruggen@qt.io>2017-12-14 09:17:30 +0000
commita1fd2866465c4be2815a6ada776867b3d4efc557 (patch)
treedde453bc71f1aba07f570b0aed331f3904fec5f3 /tests/auto/qml/qjsengine
parent904179cb681e28b248d892e699f5706666a1b4fc (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.cpp18
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"