{"version":3,"file":"../out/comprehension.js","sources":["../src/comprehension.latte"],"names":[],"mappings":"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","sourcesContent":["var should = require(\"should\");\n\ndescribe('Array Comprehension', function () {\n\n\tit('enumerates an array', function () {\n\t\tvar a = [10, 20];\n\t\t[a[i] for (i in a)].should.eql(a);\n\t})\n\n\tit('enumerates two arrays', function () {\n\t\tvar a = [10, 20],\n\t\t\tb = [1,2];\n\t\t[a[i] + b[j] for (i in a) for (j in b)].should.eql([ 11, 12, 21, 22 ]);\n\t})\n\n\tit('filters an array', function () {\n\t\tvar a = [1, 2, 3, 4, 5, 6];\n\t\tvar evens = [a[i] for (i in a) if (a[i] % 2 == 0)]\n\t\tevens.should.eql([2, 4, 6]);\n\t})\n\n\tit('allows local variables', function () {\n\t\tvar a = {x: 'a', y: 'b'};\n\t\t\n\t\t[k + '=' + v for (k in a) with v = a[k]].join(' ')\n\t\t\t.should.equal('x=a y=b');\n\t})\n\n\tit('allows local variables as first statement', function () {\n\t\tvar a = {x: 'a', y: 'b'};\n\t\t\n\t\t[pre + k with pre = 'Hello ' for (k in a)].join(', ')\n\t\t\t.should.equal('Hello x, Hello y');\n\t})\n\n\tit('enumerates an array with of', function () {\n\t\tvar a = [10, 20];\n\t\t[x for (x of a)].should.eql(a);\n\t})\n\n\tit('enumerates two arrays with of', function () {\n\t\tvar a = [10, 20],\n\t\t\tb = [1,2];\n\t\t[i + j for (i of a) for (j of b)].should.eql([ 11, 12, 21, 22 ]);\n\t})\n\n\tit('uses local variable binding scope', function (done) {\n\t\tvar a = [10, 20],\n\t\t\tr = 0;\n\t\t[process.nextTick(() => r += x) for (x of a)];\n\n\t\tprocess.nextTick(() => {\n\t\t\tr.should.equal(30);\n\t\t\tdone();\n\t\t});\n\t})\n})"]}