2015-01-04 19:40:09 +11:00

23 lines
569 B
JavaScript

// Options: --generator-comprehension
// Skip. The sugaring uses var instead of let which leads to wrong closure.
var iter = (for (x of [0, 1]) for (y of [2, 3]) () => [x, y] );
assert.isTrue(iter.moveNext());
var f1 = iter.current;
assert.isTrue(iter.moveNext());
var f2 = iter.current;
assert.isTrue(iter.moveNext());
var f3 = iter.current;
assert.isTrue(iter.moveNext());
var f4 = iter.current;
assert.isFalse(iter.moveNext());
assertArrayEquals([0, 2], f1());
assertArrayEquals([0, 3], f2());
assertArrayEquals([1, 2], f3());
assertArrayEquals([1, 3], f4());