Wed, 31 Dec 2014 06:55:50 +0100
Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2
michael@0 | 1 | // Breaking out of a for-of loop over a generator-iterator does not close the iterator. |
michael@0 | 2 | |
michael@0 | 3 | load(libdir + "iteration.js"); |
michael@0 | 4 | |
michael@0 | 5 | function range(n) { |
michael@0 | 6 | for (var i = 0; i < n; i++) |
michael@0 | 7 | yield i; |
michael@0 | 8 | } |
michael@0 | 9 | |
michael@0 | 10 | var r = range(10); |
michael@0 | 11 | var s = ''; |
michael@0 | 12 | for (var x of r) { |
michael@0 | 13 | s += x; |
michael@0 | 14 | if (x == 4) |
michael@0 | 15 | break; |
michael@0 | 16 | } |
michael@0 | 17 | s += '/'; |
michael@0 | 18 | for (var y of r) |
michael@0 | 19 | s += y; |
michael@0 | 20 | assertEq(s, '01234/56789'); |