From 8eec0518d628b59d4e6bfe3ee68ddabb1f83df08 Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Thu, 29 Dec 2011 10:32:52 +1000 Subject: Handle exceptions inside QV8QObjectConnectionList::qt_metacall Previously, exceptions were not handled in the connectionlist. This could cause v8 to assert under certain circumstances. Task-number: QTBUG-23375 Change-Id: Ie5f043b50bb6b02a77be464ca18ea8e3bbb0f501 Reviewed-by: Alan Alpert --- .../qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp') diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 0e3cfd8970..05e14cfc94 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -199,6 +199,7 @@ private slots: void qtbug_11606(); void qtbug_11600(); void qtbug_21864(); + void qobjectConnectionListExceptionHandling(); void nonscriptable(); void deleteLater(); void in(); @@ -5181,6 +5182,20 @@ void tst_qdeclarativeecmascript::qtbug_21864() delete o; } +void tst_qdeclarativeecmascript::qobjectConnectionListExceptionHandling() +{ + // QTBUG-23375 + QDeclarativeComponent component(&engine, testFileUrl("qobjectConnectionListExceptionHandling.qml")); + QString warning = component.url().toString() + QLatin1String(":13: TypeError: Cannot read property 'undefined' of undefined"); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning)); + QObject *o = component.create(); + QVERIFY(o != 0); + QCOMPARE(o->property("test").toBool(), true); + delete o; +} + // Reading and writing non-scriptable properties should fail void tst_qdeclarativeecmascript::nonscriptable() { -- cgit v1.2.3