diff options
author | Liang Qi <liang.qi@qt.io> | 2016-10-22 21:21:39 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-10-22 21:21:39 +0200 |
commit | 2ff13bdf697adff8574c5cea716627c78fb6b5b3 (patch) | |
tree | f4eac21b3b54f62d9f79714f40d5c9f4804dfc0c /tests/auto/qml/qjsengine | |
parent | 9d487cd6bf8ad75de19a4c05eb3d2641ce4a5289 (diff) | |
parent | e13eece273195a9f39d29712a233a8dd00ddf71b (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: I171c7dbb6a74fe743c2eec63e86e9c0bef7c7dfd
Diffstat (limited to 'tests/auto/qml/qjsengine')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index ec6245aa1c..81018aa68e 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -125,6 +125,7 @@ private slots: void jsIncDecNonObjectProperty(); void JSONparse(); void arraySort(); + void lookupOnDisappearingProperty(); void qRegExpInport_data(); void qRegExpInport(); @@ -2979,6 +2980,22 @@ void tst_QJSEngine::arraySort() "crashMe();"); } +void tst_QJSEngine::lookupOnDisappearingProperty() +{ + QJSEngine eng; + QJSValue func = eng.evaluate("(function(){\"use strict\"; return eval(\"function(obj) { return obj.someProperty; }\")})()"); + QVERIFY(func.isCallable()); + + QJSValue o = eng.newObject(); + o.setProperty(QStringLiteral("someProperty"), 42); + + QCOMPARE(func.call(QJSValueList()<< o).toInt(), 42); + + o = eng.newObject(); + QVERIFY(func.call(QJSValueList()<< o).isUndefined()); + QVERIFY(func.call(QJSValueList()<< o).isUndefined()); +} + static QRegExp minimal(QRegExp r) { r.setMinimal(true); return r; } void tst_QJSEngine::qRegExpInport_data() |