diff options
Diffstat (limited to 'tests/auto/qml/qqmlecmascript/data/proxyIteration.qml')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/data/proxyIteration.qml | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/proxyIteration.qml b/tests/auto/qml/qqmlecmascript/data/proxyIteration.qml new file mode 100644 index 0000000000..affba7d9f1 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/proxyIteration.qml @@ -0,0 +1,29 @@ +import QtQml 2 + +QtObject { + id: root + property int sum + Component.onCompleted: { + const target = { prop1: 1, prop2: 2, prop3: 3 }; + const handler = { + get: function(target, key) { + return target[key]+1; + }, + ownKeys: function() { + return ["prop1", "prop3"]; + }, + getOwnPropertyDescriptor: function(target, key) { + return { + value: this.get(target, key), + enumerable: true, + configurable: true + }; + } + }; + const proxy = new Proxy(target, handler); + for (var prop in proxy) { + root.sum += proxy[prop] // prop2 gets skipped, the values of 1 and 3 get incremented + } + // so root.sum should be 6 now + } +} |