{"version":3,"file":"../out/monad.js","sources":["../src/monad.latte"],"names":[],"mappings":"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","sourcesContent":["var should = require(\"should\");\nvar Q = require(\"q\");\n\ndescribe('Monad Expression', function () {\n\n\tfunction async(x) {\n\t\tvar d = Q.defer();\n\t\tsetTimeout(() => d.resolve(x), 1);\n\t\treturn d.promise;\n\t}\n\n\tit('flattens async control flow', function (done) {\n\t\tfunction async(x) {\n\t\t\tvar d = Q.defer();\n\t\t\tsetTimeout(() => d.resolve(x), 10);\n\t\t\treturn d.promise;\n\t\t}\n\t\tdo {\n\t\t\tvar x =<< async('Meee');\n\t\t\tx.should.equal('Meee');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('allows multiple binds', function (done) {\n\t\t(do {\n\t\t\tvar x =<< async('Meee');\n\t\t\tx.should.equal('Meee');\n\t\t\tvar y =<< async('You');\n\t\t\ty.should.equal('You');\n\t\t\tdone();\n\t\t}).done();\n\t})\n\n\tit('allows chain of binds in a single variable declaration', function (done) {\n\t\t(do {\n\t\t\tvar x =<< async('Hellooo'),\n\t\t\t\ty =<< async(x);\n\t\t\ty.should.equal('Hellooo');\n\t\t\tdone();\n\t\t}).done();\n\t})\n\n\tit('works with conditionals', function (done) {\n\t\tdo {\n\t\t\tvar x = true ? <<async('Meee') : 'You';\n\t\t\tx.should.equal('Meee');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('doesn\\'t evaluate false conditional', function (done) {\n\t\tvar asyncCalled = false;\n\t\tfunction async(x) {\n\t\t\tasyncCalled = true;\n\t\t\tvar d = Q.defer();\n\t\t\tsetTimeout(() => d.resolve(x), 100);\n\t\t\treturn d.promise;\n\t\t}\n\n\t\tdo {\n\t\t\tvar x = false ? <<async('Meee') : 'You';\n\t\t\tx.should.equal('You');\n\t\t\tasyncCalled.should.equal(false);\n\t\t\tdone();\n\t\t}\n\t})\n\n\n\tit('works with logical expression', function (done) {\n\t\tdo {\n\t\t\tvar x = true && <<async('Meee');\n\t\t\tx.should.equal('Meee');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('supports short circuit evaluation', function (done) {\n\t\tvar asyncCalled = false;\n\t\tfunction async(x) {\n\t\t\tasyncCalled = true;\n\t\t\tvar d = Q.defer();\n\t\t\tsetTimeout(() => d.resolve(x), 100);\n\t\t\treturn d.promise;\n\t\t}\n\n\t\tdo {\n\t\t\tvar x = 'You' || <<async('Meee');\n\t\t\tx.should.equal('You');\n\t\t\tasyncCalled.should.equal(false);\n\t\t\tdone();\n\t\t}\n\t})\n\n\n\n\tit('works with if statement', function (done) {\n\t\tdo {\n\t\t\tvar x;\n\t\t\tif ( true ) {\n\t\t\t\tx = << async('Meee')\n\t\t\t} else {\n\t\t\t\tx = 'You';\n\t\t\t}\n\n\t\t\tx.should.equal('Meee');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with if statement condition', function (done) {\n\t\tdo {\n\t\t\tvar x;\n\t\t\tif ( << async(true) ) {\n\t\t\t\tx = 'Moi';\n\t\t\t} else {\n\t\t\t\tx = 'You';\n\t\t\t}\n\n\t\t\tx.should.equal('Moi');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with while statement', function (done) {\n\t\tdo {\n\t\t\tvar x = 0;\n\t\t\tvar i = 3;\n\t\t\twhile (i > 0) {\n\t\t\t\tx += << async(i--);\n\t\t\t}\n\t\t\t\n\t\t\tx.should.equal(6);\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with while statement condition', function (done) {\n\t\tdo {\n\t\t\tvar x = 0;\n\t\t\tvar i = 3;\n\t\t\twhile (<<async(i) > 0) {\n\t\t\t\tx += i--;\n\t\t\t}\n\t\t\t\n\t\t\tx.should.equal(6);\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with for statement', function (done) {\n\t\t(do {\n\t\t\tvar x = 0;\n\t\t\tfor (var i = 0; i <= 3; i++) {\n\t\t\t\tx += << async(i);\n\t\t\t}\n\t\t\t\n\t\t\tx.should.equal(6);\n\t\t\tdone();\n\t\t}).done();\n\t})\n\n\tit('works with for statement expressions', function (done) {\n\t\t(do {\n\t\t\tvar x = 0;\n\t\t\tfor (var i = 0; <<async(i) <= 3; i += <<async(1)) {\n\t\t\t\tx += i;\n\t\t\t}\n\t\t\t\n\t\t\tx.should.equal(6);\n\t\t\tdone();\n\t\t}).done();\n\t})\n\n\tit('works with for-in statement', function (done) {\n\t\tdo {\n\t\t\tvar x = \"\";\n\t\t\t\n\t\t\tfor ( var i in {a:1, b:1} ) {\n\t\t\t\tx += << async(i);\n\t\t\t}\n\n\t\t\tx.should.equal('ab');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with for-in statement expression', function (done) {\n\t\tdo {\n\t\t\tvar x = \"\";\n\t\t\t\n\t\t\tfor ( var i in << async({a:1, b:1}) ) {\n\t\t\t\tx += i;\n\t\t\t}\n\n\t\t\tx.should.equal('ab');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with continue statement in for-in', function (done) {\n\t\tdo {\n\t\t\tvar x = \"\";\n\n\t\t\tfor ( var i in {a:1, b:1, c:1} ) {\n\t\t\t\tvar v =<< async(i);\n\t\t\t\tconsole.log(v);\n\t\t\t\tif ( v == 'b' ) continue;\n\t\t\t\tx += v;\n\t\t\t}\n\n\t\t\tx.should.equal('ac');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with break statement in for-in', function (done) {\n\t\tdo {\n\t\t\tvar x = \"\";\n\n\t\t\tfor ( var i in {a:1, b:1, c:1} ) {\n\t\t\t\tvar v =<< async(i);\n\t\t\t\tif ( v == 'c' ) break;\n\t\t\t\tx += v;\n\t\t\t}\n\n\t\t\tx.should.equal('ab');\n\t\t\tdone();\n\t\t}\n\t})\n\n\n\tit('works with for-of statement', function (done) {\n\t\tdo {\n\t\t\tvar r = \"\";\n\t\t\tfor (var x of ['a','b','c']) {\n\t\t\t\tr += << async(x);\n\t\t\t}\n\n\t\t\tr.should.equal('abc');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with for-of statement expression', function (done) {\n\t\tdo {\n\t\t\tvar r = \"\";\n\t\t\tfor (var x of << async(['a','b','c'])) {\n\t\t\t\tr += x;\n\t\t\t}\n\n\t\t\tr.should.equal('abc');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with continue statement in for-of', function (done) {\n\t\tdo {\n\t\t\tvar r = \"\";\n\t\t\tfor (var x of ['a','b','c']) {\n\t\t\t\tvar v =<< async(x);\n\t\t\t\tif ( v == 'b' ) continue;\n\t\t\t\tr += v;\n\t\t\t}\n\n\t\t\tr.should.equal('ac');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('works with break statement in for-of', function (done) {\n\t\tdo {\n\t\t\tvar r = \"\";\n\t\t\tfor (var x of ['a','b','c']) {\n\t\t\t\tvar v =<< async(x);\n\t\t\t\tif ( v == 'c' ) break;\n\t\t\t\tr += v;\n\t\t\t}\n\n\t\t\tr.should.equal('ab');\n\t\t\tdone();\n\t\t}\n\t})\n\n\n\n\tit('preserves lexical this', function (done) {\n\t\t(function () {\n\t\t\tdo {\n\t\t\t\t(<< async(this.m)).should.equal('hello');\n\t\t\t\tdone();\n\t\t\t}\n\t\t}).call({ m: 'hello' })\n\t})\n\n\tit('allows inner functions', function (done) {\n\t\tdo {\n\t\t\t(<< async(['hello'])).map(x => x).join('').should.equal('hello');\n\t\t\tdone();\n\t\t}\n\t})\n\n\tit('allows inner functions as part of bound expression', function (done) {\n\t\tdo {\n\t\t\tvar called = false;\n\t\t\t<< (async('hello').then(m => {\n\t\t\t\tm.should.equal('hello');\n\t\t\t\tcalled = true;\n\t\t\t}));\n\n\t\t\tcalled.should.equal(true);\n\t\t\tdone();\n\t\t}\n\t})\n\n\n\n\tit('supports return statement', function (done) {\n\t\t(do {\n\t\t\tvar called = false;\n\t\t\tif ( << async('hello') == 'hello' ) {\n\t\t\t\treturn 'returned';\n\t\t\t}\n\t\t\t<< async('not returned');\n\t\t\treturn false;\n\t\t}).then( v => {\n\t\t\tv.should.equal('returned');\n\t\t\tdone()\n\t\t} )\n\t})\n})"]}