aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp17
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()