aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2011-11-11 09:39:15 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-16 13:04:50 +0100
commit92660b13bb138d219f49ea203fa5e5aed9de74cb (patch)
treef3a0264cdbeacb7c23719a2a74b0ffa09fffa59b /tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
parentddf9883f8d00dcdfd908b38c60114a06ce8af185 (diff)
Add autotest for qml/v8 optimization bug
After a function that accesses a qml context property was inlined, calls to global functions would fail with "TypeError: Illegal invocation". Fixed in qtbase's v8. Task-number: QTBUG-22679 Change-Id: Id6e2604e5151585febfe1b667869dc3b1fad6e5e Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp')
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index e784ffbce3..7d9819b193 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -223,6 +223,7 @@ private slots:
void invokableObjectArg();
void invokableObjectRet();
void qtbug_20344();
+ void qtbug_22679();
void revisionErrors();
void revision();
@@ -5148,6 +5149,22 @@ void tst_qdeclarativeecmascript::deleteWhileBindingRunning()
delete object;
}
+void tst_qdeclarativeecmascript::qtbug_22679()
+{
+ MyQmlObject object;
+ object.setStringProperty(QLatin1String("Please work correctly"));
+ engine.rootContext()->setContextProperty("contextProp", &object);
+
+ QDeclarativeComponent component(&engine, TEST_FILE("qtbug_22679.qml"));
+ qRegisterMetaType<QList<QDeclarativeError> >("QList<QDeclarativeError>");
+ QSignalSpy warningsSpy(&engine, SIGNAL(warnings(QList<QDeclarativeError>)));
+
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+ QCOMPARE(warningsSpy.count(), 0);
+ delete o;
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"