}
function runTest() {
- if (!createComponent()) return;
- gc(); // collect object's v8object + varProperties, queues deleteLater.
if (SingletonType.QObject.trackedObject() != null) return; // v8object was previously collected.
SingletonType.QObject.setTrackedObjectProperty("varprop"); // deferences varProperties of object.
test = !(SingletonType.QObject.trackedObjectProperty("varprop")); // deferences varProperties of object.
memset(buf, 0, 4096);
}
-static void gc(QQmlEngine &engine)
+static void gcWithoutDeferredObjectDeletion(QQmlEngine &engine)
{
zapSomeStack();
engine.collectGarbage();
+}
+
+static void gc(QQmlEngine &engine)
+{
+ gcWithoutDeferredObjectDeletion(engine);
QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
QCoreApplication::processEvents();
}
+
void tst_qqmlecmascript::initTestCase()
{
QQmlDataTest::initTestCase();
QQmlComponent component(&engine, testFileUrl("propertyVarOwnership.5.qml"));
QObject *object = component.create();
QVERIFY(object != 0);
+ QMetaObject::invokeMethod(object, "createComponent");
+ gcWithoutDeferredObjectDeletion(engine);
QMetaObject::invokeMethod(object, "runTest");
QCOMPARE(object->property("test").toBool(), true);
delete object;