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

33 lines
802 B
JavaScript

// Options: --array-comprehension
function* range() {
for (var i = 0; i < 5; i++) {
yield i;
}
}
var array = [for (x of [0, 1, 2, 3]) x];
assertArrayEquals([0, 1, 2, 3], array);
var array2 = [for (x of [0, 1, 2]) for (y of [0, 1, 2]) x + '' + y];
assertArrayEquals(['00', '01', '02', '10', '11', '12', '20', '21', '22'],
array2);
var array3 = [
for (x of [0, 1, 2, 3, 4])
for (y of range())
if (x === y)
x + '' + y];
assertArrayEquals(['00', '11', '22', '33', '44'], array3);
// Ensure this works as expression statement
[for (testVar of []) testVar];
var array4 = [
for (x of range())
if (x % 2 === 0)
for (y of range())
if (y % 2 === 1)
x + '' + y];
assertArrayEquals(['01', '03', '21', '23', '41', '43'], array4);