aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeecmascript/data/PropertyVarOwnershipComponent.qml
blob: c1f73d3bacfee240fbffba9abfd667dc15aab5bb (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
29
30
31
32
33
34
35
36
37
import QtQuick 2.0

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

    Text {
        id: textOne // will have Eventual-JS ownership
        objectName: "textOne"
        property var textCanary: 11
        property var vp
    }

    Text {
        id: textTwo
        objectName: "textTwo"
        property var textCanary: 12
        property var vp

        function constructQObject() {
            var component = Qt.createComponent("PropertyVarCircularComponent5.qml");
            if (component.status == Component.Ready) {
                textTwo.vp = component.createObject(null); // has JavaScript ownership
            }
            gc();
        }

        function deassignVp() {
            textTwo.textCanary = 22;
            textTwo.vp = textTwo.textCanary;
            gc();
        }
    }
}