js/src/jit-test/tests/for-of/proxy-2.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:96ce5238bfe2
1 // Basic for-of test with Proxy whose iterator method is a generator.
2
3 var arr = ['a', 'b', 'c', 'd'];
4 var proxy = Proxy.create({
5 getPropertyDescriptor: function (name) {
6 if (name == 'iterator') {
7 return {
8 configurable: false,
9 enumerable: false,
10 writeable: false,
11 value: function () {
12 for (var i = 0; i < arr.length; i++)
13 yield arr[i];
14 }
15 };
16 }
17
18 // Otherwise, inherit the property from arr.
19 for (var obj = arr; obj; obj = Object.getPrototypeOf(obj)) {
20 var desc = Object.getOwnPropertyDescriptor(obj, name);
21 if (desc)
22 return desc;
23 }
24 return undefined;
25 }
26 });
27
28 for (var i = 0; i < 2; i++)
29 assertEq([v for (v of proxy)].join(","), "a,b,c,d");

mercurial