aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeecmascript/data/PropertyVarCircularComponent4.qml
blob: 9273a52f54fd3a9cb28597542f581558ac8b29c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import QtQuick 2.0

Rectangle {
    id: rectangle      // will have JS ownership
    objectName: "rectangle"
    width: 10
    height: 10
    property var rectCanary: 5

    Text {
        id: text // will have Eventual-JS ownership
        objectName: "text"
        property var vp
        property var textCanary: 10

        // The varProperties array of "text" is weak
        // (due to eventual JS ownership since parent is JS owned)
        // but nonetheless, the reference to the created QObject
        // should cause that QObject to NOT be collected.
        function constructQObject() {
            var component = Qt.createComponent("PropertyVarCircularComponent5.qml");
            if (component.status == Component.Ready) {
                text.vp = component.createObject(null); // has JavaScript ownership
            }
            gc();
        }
    }
}