Use V4 binding for non-final properties where possible
[profile/ivi/qtdeclarative.git] / tests / auto / qml / qqmlecmascript / data / scarceResourceTest.var.js
1 .import Qt.test 1.0 as JsQtTest
2
3 function importScarceResource(scarceResourceProvider) {
4     // the scarce resource should be automatically released
5     // after the binding is evaluated if preserve is not
6     // called.
7     return scarceResourceProvider.scarceResource;
8 }
9
10 function importPreservedScarceResource(scarceResourceProvider) {
11     // the scarce resource is manually preserved
12     // during the evaluation of the binding.
13     // it should not be released.
14     var scarceResource = scarceResourceProvider.scarceResource;
15     scarceResource.preserve();
16     return scarceResource;
17 }
18
19 function importReleasedScarceResource(scarceResourceProvider) {
20     // release the scarce resource during the
21     // evaluation of the binding.  The returned
22     // variant will therefore be invalid.
23     var scarceResource = scarceResourceProvider.scarceResource;
24     scarceResource.destroy();
25     return scarceResource;
26 }
27
28 function importPreservedScarceResourceFromMultiple(scarceResourceProvider) {
29     // some scarce resources are manually preserved,
30     // some of them are manually destroyed,
31     // and some are automatically managed.
32     // We return a preserved resource
33     var sr1 = scarceResourceProvider.scarceResource; // preserved/destroyed.
34     sr1.preserve();
35     var sr2 = scarceResourceProvider.scarceResource; // preserved/destroyed
36     sr2.preserve();
37     var sr3 = scarceResourceProvider.scarceResource; // automatic.
38     var sr4 = scarceResourceProvider.scarceResource; // automatic and returned.
39     var sr5 = scarceResourceProvider.scarceResource; // destroyed
40     sr5.destroy();
41     sr2.destroy();
42     var sr6 = scarceResourceProvider.scarceResource; // destroyed
43     var sr7 = scarceResourceProvider.scarceResource; // automatic
44     sr1.destroy();
45     sr6.destroy();
46     return sr4;
47 }
48