Source code

Revision control

Copy as Markdown

Other Tools

// Basic for-of test with Proxy whose iterator method is a generator.
var arr = ['a', 'b', 'c', 'd'];
var proxy = new Proxy(arr, {
get(target, property, receiver) {
if (property === Symbol.iterator) {
return function* () {
for (var i = 0; i < arr.length; i++)
yield arr[i];
}
}
return Reflect.get(target, property, receiver);
}
});
for (var i = 0; i < 2; i++)
assertEq([...proxy].join(","), "a,b,c,d");