michael@0: // For and if clauses can nest without limit in comprehensions. This is michael@0: // unlike JS 1.8 comprehensions, which can only have one trailing "if" michael@0: // clause. michael@0: michael@0: function* range(start, end) { michael@0: for (var n = start; n < end; n++) michael@0: yield n; michael@0: } michael@0: michael@0: function primesBetween6And25() { michael@0: return [for (n of range(6, 25)) if (n % 2) if (n % 3) if (n % 5) n]; michael@0: } michael@0: assertDeepEq(primesBetween6And25(), [7,11,13,17,19,23]); michael@0: michael@0: function countUpToEvens(limit) { michael@0: return [for (n of range(0, limit)) if (!(n % 2)) for (m of range(0, n)) m] michael@0: } michael@0: assertDeepEq(countUpToEvens(7), [0,1,0,1,2,3,0,1,2,3,4,5]); michael@0: michael@0: reportCompare(null, null, "test");