diff options
Diffstat (limited to 'tests/auto')
-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 479584af54..d95d4ed59e 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(); @@ -2964,6 +2965,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() |