From 8e6f60430bb9214c8d0fc2cf53d5f5b08f8d560f Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 10:33:05 -0400 Subject: [PATCH 001/163] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 246c59d..43829d9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.26", + "version": "0.0.27", "directories": { "lib": "./lib" }, From b907e7c37906e13b2ccc6b4039217be6409d89ff Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 10:41:12 -0400 Subject: [PATCH 002/163] cleaned up express 3 test a little bit' --- test/express3/app.coffee | 4 +- test/express3/views/index.toffee | 6 +- .../express3/views/subdir1/hello_world.toffee | 66 ++++--------------- .../views/subdir2/goodbye_world.toffee | 10 ++- 4 files changed, 23 insertions(+), 63 deletions(-) diff --git a/test/express3/app.coffee b/test/express3/app.coffee index 96e25a3..c78a41d 100644 --- a/test/express3/app.coffee +++ b/test/express3/app.coffee @@ -9,8 +9,8 @@ app = express() app.configure -> - toffee.expressEngine.verbose = false - #toffee.expressEngine.prettyPrintErrors = true + toffee.expressEngine.verbose = true + #toffee.expressEngine.prettyPrintErrors = false app.set 'port', process.env.PORT or 3033 app.set 'views', __dirname + '/views' diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 37306bd..4063192 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -1,8 +1,4 @@

Test Results

-{# - x = [1,2,3] - x.push x -#} -#{partial "./subdir1/hello_world.toffee", shit: (fake_thing) -> JSON.stringify x } +#{partial "./subdir1/hello_world.toffee", rows:10, cols:10 }
#{partial "./subdir2/goodbye_world.toffee"} \ No newline at end of file diff --git a/test/express3/views/subdir1/hello_world.toffee b/test/express3/views/subdir1/hello_world.toffee index 3ded1a3..793a15b 100644 --- a/test/express3/views/subdir1/hello_world.toffee +++ b/test/express3/views/subdir1/hello_world.toffee @@ -1,55 +1,13 @@ Hello, world! -{# - i = 1 - foo = -> 100 - # a_bad_test_function "on something" -#} -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{j++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... -#{i++}... + + {# + i = 1 + for j in [0...rows] {: + + {# + for k in [0...cols] {::} + #} + + :} + #} +
#{i++}
\ No newline at end of file diff --git a/test/express3/views/subdir2/goodbye_world.toffee b/test/express3/views/subdir2/goodbye_world.toffee index 1484a43..e46d272 100644 --- a/test/express3/views/subdir2/goodbye_world.toffee +++ b/test/express3/views/subdir2/goodbye_world.toffee @@ -1,8 +1,14 @@ {# + # + # let's test some recursion. + # + # ---------------------------- + if not countdown? then countdown = 32 if countdown is 0 print partial "foo/goodbye.toffee" - else {: - #{countdown}...#{partial './goodbye_world.toffee', {countdown: countdown - 1}} + else {: + #{countdown}
#{partial './goodbye_world.toffee', {countdown: countdown - 1}} :} + #} \ No newline at end of file From 2d223ae74790b0fca2659698114c56872e1b0e94 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 26 Jul 2012 12:18:00 -0300 Subject: [PATCH 003/163] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e09b35..3cc98ec 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,9 @@ Printing variables is easy. Just use CoffeeScript's #{} syntax: The `#{}` syntax is powerful, so be responsible. ``` -You have #{(f for f in friends when f.gender is "f").length} female friends. +

+ You have #{(f for f in friends when f.gender is "f").length} female friends. +

``` Including other files is possible thanks to the function `partial`. This works in Express 3.0, too. From c3bc831d211307bcc91e42cb3204a66877e332d5 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 26 Jul 2012 12:34:33 -0300 Subject: [PATCH 004/163] Update README.md --- README.md | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3cc98ec..fd2405d 100644 --- a/README.md +++ b/README.md @@ -139,23 +139,46 @@ Well, it's not exactly identical. Let's talk about escaping. escaping: how it works ============== -In coffee mode, the `print` function lets you print the raw value of a variable. +In your CoffeeScript, the `print` function lets you print the raw value of a variable: -However, for safety, in toffee mode, `#{some_expression}` output is escaped for HTML, with some desired exceptions. +``` +{# + danger_code = "" + print danger_code +#} +``` + +But in toffee mode, `#{some_expression}` output is escaped intelligently by default: + +``` + +

#{danger_code}

+``` + +You can control the escaping, but here are the defaults: -If certain functions are called leftmost in a `#{` token, their -output will be unmolested: + * if it's a string or scalar, it is escaped for HTML safety. + * it's an array or object, it is converted to JSON. + +escaping overrides +---------------- + +You can bypass the above rules. * `#{json foo}`: this outputs foo as JSON. * `#{raw foo}`: this outputs foo in raw text. - * `#{html foo}`: this outputs foo, escaped as HTML. It's the same as `#{foo}`, but it's available in case you (1) override the default escaping or (2) turn off auto-escaping (both explained below). + * `#{html foo}`: this outputs foo, escaped as HTML. For a scalar, it's the same as `#{foo}`, but it's available in case you +(1) override the default escaping or (2) turn off auto-escaping (both explained below). * `#{partial "foo.toffee"}` and `#{snippet "foo.toffee"}`: unescaped, since you don't want to escape your own templates -The functions mentioned above are also available to you in coffee mode. +When any of the functions mentioned above are leftmost in a `#{}` token in toffee mode, their output is left untouched by the +built in escape function. + +These functions are also available to you in coffee mode. ```

- Want to read some JSON? + Want to read some JSON, human? {# foo = [1,2,3, {bar: "none"}] foo_as_json_as_html = html json foo From 291e25a15554a661a8039d002baa8d6dcb2d8bfc Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 13:53:14 -0400 Subject: [PATCH 005/163] some extra escaping on JSON, to prevent a inside a string from confusing the html parser if used inline in an HTML page. Seems like JSON.stringify should do this by default. --- lib/view.js | 2 +- src/view.coffee | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/view.js b/lib/view.js index b15c7c2..2624abf 100644 --- a/lib/view.js +++ b/lib/view.js @@ -461,7 +461,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify o\n" + ___ + ___ + "catch e \n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace('<','\\\\u003C').replace('>','\\\\u003E').replace('&','\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index eb9a73f..2df7b4d 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -329,8 +329,8 @@ domain.toffeeTemplates["#{@identifier}"] = (locals) -> #{___}__toffee.json = (o) -> #{___}#{___}try -#{___}#{___}#{___}json = JSON.stringify o -#{___}#{___}catch e +#{___}#{___}#{___}json = JSON.stringify(o).replace('<','\\\\u003C').replace('>','\\\\u003E').replace('&','\\\\u0026') +#{___}#{___}catch e #{___}#{___}#{___}throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{__toffee.lineno}", toffee_line_base: __toffee.lineno } #{___}#{___}res = "" + json From e62dc9e0f000f2e4766e2b5aadbf76f821b70974 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 13:53:55 -0400 Subject: [PATCH 006/163] fixed test cases to support improved JSONification --- test/cases/custom_escape/output.toffee | 4 ++-- test/cases/escape/output.toffee | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/cases/custom_escape/output.toffee b/test/cases/custom_escape/output.toffee index 5da6c21..73b29fb 100644 --- a/test/cases/custom_escape/output.toffee +++ b/test/cases/custom_escape/output.toffee @@ -12,8 +12,8 @@

diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index e35fd5a..e8257c2 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -12,8 +12,8 @@

@@ -24,8 +24,8 @@

json printed x = "\"Hello world\"" - json printed y = "" - json printed z = "click&clack" + json printed y = "\u003Ctd\u003E" + json printed z = "click\u0026clack" json printed w = [1,2,{"place":"The Dreadfort"}]

From b6725314142a0bf7461def1658d9eeb6bae22b6c Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 13:59:19 -0400 Subject: [PATCH 007/163] JSON escape bugfix --- lib/view.js | 2 +- src/view.coffee | 2 +- toffee.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/view.js b/lib/view.js index 2624abf..703f38c 100644 --- a/lib/view.js +++ b/lib/view.js @@ -461,7 +461,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace('<','\\\\u003C').replace('>','\\\\u003E').replace('&','\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index 2df7b4d..8847b9a 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -329,7 +329,7 @@ domain.toffeeTemplates["#{@identifier}"] = (locals) -> #{___}__toffee.json = (o) -> #{___}#{___}try -#{___}#{___}#{___}json = JSON.stringify(o).replace('<','\\\\u003C').replace('>','\\\\u003E').replace('&','\\\\u0026') +#{___}#{___}#{___}json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') #{___}#{___}catch e #{___}#{___}#{___}throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{__toffee.lineno}", toffee_line_base: __toffee.lineno } #{___}#{___}res = "" + json diff --git a/toffee.js b/toffee.js index af1c6ee..0563b0d 100644 --- a/toffee.js +++ b/toffee.js @@ -8472,7 +8472,7 @@ if (typeof module !== 'undefined' && require.main === module) { view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify o\n" + ___ + ___ + "catch e \n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); }; view.prototype._coffeeFooters = function() { From 0668b2799672bf6587f475f0633b60718c847ae8 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 15:38:34 -0400 Subject: [PATCH 008/163] simple token access #{foo} now returns empty string when var not defined; same for dictionary access ##{foo.bar} when bar is not defined, but foo is. --- lib/view.js | 30 +++++++++++++++++++++------- src/view.coffee | 35 ++++++++++++++++++++++++++------- test/cases/escape/input.toffee | 2 ++ test/cases/escape/output.toffee | 2 ++ toffee.js | 30 +++++++++++++++++++++------- 5 files changed, 78 insertions(+), 21 deletions(-) diff --git a/lib/view.js b/lib/view.js index 703f38c..2f16e93 100644 --- a/lib/view.js +++ b/lib/view.js @@ -104,7 +104,7 @@ returns [err, str] */ - var res, sandbox, script; + var pair, res, sandbox, script; script = this._toScriptObj(); res = null; if (!this.error) { @@ -121,13 +121,17 @@ } if (this.error) { if (this.prettyPrintErrors) { - return [null, this.error.getPrettyPrint()]; + pair = [null, this.error.getPrettyPrint()]; } else { - return [null, this.error.getPrettyPrintText()]; + pair = [null, this.error.getPrettyPrintText()]; + } + if (this.error.errType === errorTypes.RUNTIME) { + this.error = null; } } else { - return [null, res]; + pair = [null, res]; } + return pair; }; view.prototype._toTokenObj = function() { @@ -222,6 +226,16 @@ return false; }; + view.prototype._snippetIsSoloToken = function(str) { + /* + if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. + */ + if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { + return true; + } + return false; + }; + view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline) { var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; res = ""; @@ -272,8 +286,10 @@ part = t_int[_l]; if (part[0] === "TOKENS") { res += this._printLineNo(lineno, ind); - interp = part[1].replace(/^[\n \t]+/, ''); - if (this._snippetHasEscapeOverride(interp)) { + interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); + if (this._snippetIsSoloToken(interp)) { + chunk = "\#{if " + interp + "? then escape " + interp + " else ''}"; + } else if (this._snippetHasEscapeOverride(interp)) { chunk = "\#{" + interp + "}"; } else { chunk = "\#{escape(" + interp + ")}"; @@ -461,7 +477,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o is undefined then return ''\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\" then return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n" + ___ + ___ + ___ + "return o\n\n" + ___ + "states = " + (JSON.stringify(states)); }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index 8847b9a..c0ed888 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -84,11 +84,15 @@ class view if @error if @prettyPrintErrors - return [null, @error.getPrettyPrint()] + pair = [null, @error.getPrettyPrint()] else - return [null, @error.getPrettyPrintText()] + pair = [null, @error.getPrettyPrintText()] + if @error.errType is errorTypes.RUNTIME + # don't hold onto runtime errors after value returned. + @error = null else - return [null, res] + pair = [null, res] + return pair _toTokenObj: -> ### @@ -154,6 +158,20 @@ class view return true false + _snippetIsSoloToken: (str) -> + ### + if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. + ### + if str.match /// + ^ + [$A-Za-z_\x7f-\uffff] + [$\w\x7f-\uffff]* + $ + /// + return true + return false + + _toCoffeeRecurse: (obj, indent_level, indent_baseline) -> # returns [res, indent_baseline_delta] # indent_level = # of spaces to add to each coffeescript section @@ -193,8 +211,10 @@ class view for part in t_int if part[0] is "TOKENS" res += @_printLineNo lineno, ind - interp = part[1].replace /^[\n \t]+/, '' - if @_snippetHasEscapeOverride interp + interp = part[1].replace /(^[\n \t]+)|([\n \t]+)$/g, '' + if @_snippetIsSoloToken interp + chunk = "\#{if #{interp}? then escape #{interp} else ''}" + else if @_snippetHasEscapeOverride interp chunk = "\#{#{interp}}" else chunk = "\#{escape(#{interp})}" @@ -346,9 +366,10 @@ domain.toffeeTemplates["#{@identifier}"] = (locals) -> #{___}if not escape? #{___}#{___}escape = (o) -> #{___}#{___}#{___}if (not __toffee.autoEscape?) or __toffee.autoEscape -#{___}#{___}#{___}#{___}if o? and (typeof o) is "object" -#{___}#{___}#{___}#{___}#{___}return __toffee.json o +#{___}#{___}#{___}#{___}if o is undefined then return '' +#{___}#{___}#{___}#{___}if o? and (typeof o) is "object" then return __toffee.json o #{___}#{___}#{___}#{___}return __toffee.html o +#{___}#{___}#{___}return o #{___}states = #{JSON.stringify states} """ diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index 1a6aa5c..e54a614 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -8,6 +8,8 @@ default y = #{y} default z = #{z} default w = #{w} + default r = #{r} + default w.foo = #{w.foo}

raw x = #{raw x} diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index e8257c2..9290059 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -3,6 +3,8 @@ default y = <td> default z = click&clack default w = [1,2,{"place":"The Dreadfort"}] + default r = + default w.foo =

raw x = "Hello world" diff --git a/toffee.js b/toffee.js index 0563b0d..1fadd33 100644 --- a/toffee.js +++ b/toffee.js @@ -8115,7 +8115,7 @@ if (typeof module !== 'undefined' && require.main === module) { returns [err, str] */ - var res, sandbox, script; + var pair, res, sandbox, script; script = this._toScriptObj(); res = null; if (!this.error) { @@ -8132,13 +8132,17 @@ if (typeof module !== 'undefined' && require.main === module) { } if (this.error) { if (this.prettyPrintErrors) { - return [null, this.error.getPrettyPrint()]; + pair = [null, this.error.getPrettyPrint()]; } else { - return [null, this.error.getPrettyPrintText()]; + pair = [null, this.error.getPrettyPrintText()]; + } + if (this.error.errType === errorTypes.RUNTIME) { + this.error = null; } } else { - return [null, res]; + pair = [null, res]; } + return pair; }; view.prototype._toTokenObj = function() { @@ -8233,6 +8237,16 @@ if (typeof module !== 'undefined' && require.main === module) { return false; }; + view.prototype._snippetIsSoloToken = function(str) { + /* + if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. + */ + if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { + return true; + } + return false; + }; + view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline) { var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; res = ""; @@ -8283,8 +8297,10 @@ if (typeof module !== 'undefined' && require.main === module) { part = t_int[_l]; if (part[0] === "TOKENS") { res += this._printLineNo(lineno, ind); - interp = part[1].replace(/^[\n \t]+/, ''); - if (this._snippetHasEscapeOverride(interp)) { + interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); + if (this._snippetIsSoloToken(interp)) { + chunk = "\#{if " + interp + "? then escape " + interp + " else ''}"; + } else if (this._snippetHasEscapeOverride(interp)) { chunk = "\#{" + interp + "}"; } else { chunk = "\#{escape(" + interp + ")}"; @@ -8472,7 +8488,7 @@ if (typeof module !== 'undefined' && require.main === module) { view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\"\n" + ___ + ___ + ___ + ___ + ___ + "return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o is undefined then return ''\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\" then return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n" + ___ + ___ + ___ + "return o\n\n" + ___ + "states = " + (JSON.stringify(states)); }; view.prototype._coffeeFooters = function() { From 995a30c6678ebe9583740c61ea100e4eb0afe153 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 26 Jul 2012 15:39:10 -0400 Subject: [PATCH 009/163] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 43829d9..fe6a949 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.27", + "version": "0.0.28", "directories": { "lib": "./lib" }, From bf90a96309ad7a5fc29c9afe248bc4f6b7df01d4 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 27 Jul 2012 14:08:17 -0300 Subject: [PATCH 010/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd2405d..0bfe44a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ and smart view caching. status ====== -Beta! And in very usable shape. +Beta! And usable! If you hit any snags, let me know and I'll act fast. examples ======== From ff782eacb0789d3c0b30658414aabc554370a09c Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 27 Jul 2012 14:09:51 -0300 Subject: [PATCH 011/163] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0bfe44a..5e1ad49 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ TOFFEE ========= -A templating language based on CoffeeScript with slick nesting, tokens, and automatic indentation. -Compatible with Express 2.x, 3.x, and the browser. In Express 3.x, the Toffee engine handles partials/includes +A templating language based on the simplicity and beauty of CoffeeScript. +Compatible with node (including Express 2.x, 3.x) and, very soon, the browser. In Express 3.x, the Toffee engine handles partials/includes and smart view caching. status From d9a6853f64d5ee065f1fdf38e63280fcf392daf7 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 27 Jul 2012 17:26:26 -0400 Subject: [PATCH 012/163] beginning good command line program --- package.json | 3 +- src/command_line.coffee | 74 +++++++++++++++++++++++++---------------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index fe6a949..9374ad2 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "author": "Chris Coyne ", "bin": "./bin/toffee", "dependencies": { - "coffee-script": "*" + "coffee-script": "*", + "commander": "*" }, "repository": { "type": "git", diff --git a/src/command_line.coffee b/src/command_line.coffee index 412cc28..7d5673e 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -1,34 +1,52 @@ - -fs = require "fs" +fs = require 'fs' {engine} = require '../lib/engine' {view} = require '../lib/view' +program = require 'commander' -printUsage = -> - console.log """ - Usage: toffee [-c] input.toffee - - -c == output to CoffeeScript (instead of JS) +getVersionNumber = -> + p = fs.readFileSync "#{__dirname}/../package.json", "utf8" + o = JSON.parse p + o.version + +program.on '--help', -> + console.log " +\n Examples: +\n +\n toffee views # recurses through views and builds views.js +\n toffee foo.toffee # builds foo.js +\n toffee views -o templates # builds templates.js +\n toffee -p foo.toffee # outputs JS to stdout +\n +\n +\n Then use in your : +\n +\n +\n +\n + " + +program.version(getVersionNumber()) + .option('-o, --output', 'output file') + .option('-p, --print', 'print output to stdout') + .parse process.argv - TODO: make a more useful command line tool. - """ - process.exit 1 -getVersionNumber = -> - JSON.parse(fs.readFileSync "#{__dirname}/../package.json", "utf8").version -exports.run = -> - e = new engine() - args = process.argv.slice 2 - if args.length is 2 - coffee = true - if args[0] isnt "-c" - printUsage() - else if args.length isnt 1 - printUsage() - fname = args[-1..][0] - source = fs.readFileSync fname, "utf8" - v = new view source, {fileName: fname} - if coffee - console.log v._toCoffee() - else - console.log v._toJavaScript() \ No newline at end of file +#exports.run = -> +# e = new engine() +# args = process.argv.slice 2 +# if args.length is 2 +# coffee = true +# if args[0] isnt "-c" +# printUsage() +# else if args.length isnt 1 +# printUsage() +# fname = args[-1..][0] +# source = fs.readFileSync fname, "utf8" +# v = new view source, {fileName: fname} +# if coffee +# console.log v._toCoffee() +# else +# console.log v._toJavaScript() \ No newline at end of file From ebc8fc8b21ca06c64498a6374db29fc0dd9b5774 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 27 Jul 2012 17:44:29 -0400 Subject: [PATCH 013/163] more example --- src/command_line.coffee | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/command_line.coffee b/src/command_line.coffee index 7d5673e..03c6dc0 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -3,11 +3,15 @@ fs = require 'fs' {view} = require '../lib/view' program = require 'commander' +# ----------------------------------------------------------------------------- + getVersionNumber = -> p = fs.readFileSync "#{__dirname}/../package.json", "utf8" o = JSON.parse p o.version +# ----------------------------------------------------------------------------- + program.on '--help', -> console.log " \n Examples: @@ -22,7 +26,8 @@ program.on '--help', -> \n \n \n \n " @@ -32,6 +37,9 @@ program.version(getVersionNumber()) .option('-p, --print', 'print output to stdout') .parse process.argv +# ----------------------------------------------------------------------------- + + #exports.run = -> From b0aac5d5ebbd80b29ffc45f9cf440b048849ca93 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 27 Jul 2012 18:03:07 -0400 Subject: [PATCH 014/163] incremental --- src/command_line.coffee | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/command_line.coffee b/src/command_line.coffee index 03c6dc0..2aa9997 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -1,5 +1,4 @@ fs = require 'fs' -{engine} = require '../lib/engine' {view} = require '../lib/view' program = require 'commander' @@ -39,11 +38,19 @@ program.version(getVersionNumber()) # ----------------------------------------------------------------------------- +recurseRun = (path) -> + stat = fs.statSync path + console.log stat +run = exports.run = -> + console.log program.args + #recurseRun path +# ----------------------------------------------------------------------------- + +if require.main is module + run() -#exports.run = -> -# e = new engine() # args = process.argv.slice 2 # if args.length is 2 # coffee = true From cfd8a21d65d323dbb3c1e2181d31a61d65d55f94 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 27 Jul 2012 18:17:37 -0400 Subject: [PATCH 015/163] incremental --- src/command_line.coffee | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/command_line.coffee b/src/command_line.coffee index 2aa9997..b3535bd 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -1,4 +1,5 @@ fs = require 'fs' +path = require 'path' {view} = require '../lib/view' program = require 'commander' @@ -38,13 +39,27 @@ program.version(getVersionNumber()) # ----------------------------------------------------------------------------- -recurseRun = (path) -> - stat = fs.statSync path - console.log stat +recurseRun = (start_path, curr_path) -> + stats = fs.statSync curr_path + if stats.isDirectory() + files = fs.readdirSync curr_path + for file in files + sub_path = path.normalize "#{curr_path}/#{file}" + if file.match /\.toffee$/ + recurseRun start_path, sub_path + else if not (file in ['.','..']) + sub_stats = fs.statSync sub_path + if sub_stats.isDirectory() + recurseRun start_path, sub_path + else + console.log "Visiting #{curr_path}" run = exports.run = -> - console.log program.args - #recurseRun path + if program.args.length isnt 1 + console.log "Unexpected input. toffee --help for examples" + process.exit 1 + else + recurseRun program.args[0], program.args[0] # ----------------------------------------------------------------------------- From d9c8b304384669c339e4ad45370d2273b9de2341 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 27 Jul 2012 18:21:06 -0400 Subject: [PATCH 016/163] got realpath working --- src/command_line.coffee | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/command_line.coffee b/src/command_line.coffee index b3535bd..5da4e55 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -59,7 +59,13 @@ run = exports.run = -> console.log "Unexpected input. toffee --help for examples" process.exit 1 else - recurseRun program.args[0], program.args[0] + try + start_path = fs.realpathSync program.args[0] + catch e + console.log "Input file/path not found. toffee --help for examples" + process.exit 1 + start_path = path.normalize start_path + recurseRun start_path, start_path # ----------------------------------------------------------------------------- From f8e7d35b8bc084de27b776d1f5eaf47746df6084 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 30 Jul 2012 13:36:48 -0400 Subject: [PATCH 017/163] incremental --- index.js | 2 +- lib/command_line.js | 99 +++++++++++---- lib/consts.js | 2 +- lib/engine.js | 4 +- lib/errorHandler.js | 4 +- lib/utils.js | 2 +- lib/view.js | 4 +- src/command_line.coffee | 29 ++++- .../express3/public/javascripts/test_cases.js | 1 + test/express3/views/index.toffee | 16 ++- toffee.js | 115 +++++++++++++----- 11 files changed, 204 insertions(+), 74 deletions(-) create mode 100644 test/express3/public/javascripts/test_cases.js diff --git a/index.js b/index.js index 5d397bc..cd2ae2b 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { var e, eclass; diff --git a/lib/command_line.js b/lib/command_line.js index 5d994a7..c99a27c 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,44 +1,89 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { - var engine, fs, getVersionNumber, printUsage, view; + var compile, fs, getVersionNumber, path, program, recurseRun, run, view; - fs = require("fs"); + fs = require('fs'); - engine = require('../lib/engine').engine; + path = require('path'); view = require('../lib/view').view; - printUsage = function() { - console.log(" Usage: toffee [-c] input.toffee\n\n -c == output to CoffeeScript (instead of JS)\n\n TODO: make a more useful command line tool."); - return process.exit(1); - }; + program = require('commander'); getVersionNumber = function() { - return JSON.parse(fs.readFileSync("" + __dirname + "/../package.json", "utf8")).version; + var o, p; + p = fs.readFileSync("" + __dirname + "/../package.json", "utf8"); + o = JSON.parse(p); + return o.version; }; - exports.run = function() { - var args, coffee, e, fname, source, v; - e = new engine(); - args = process.argv.slice(2); - if (args.length === 2) { - coffee = true; - if (args[0] !== "-c") { - printUsage(); - } - } else if (args.length !== 1) { - printUsage(); - } - fname = args.slice(-1)[0]; - source = fs.readFileSync(fname, "utf8"); + program.on('--help', function() { + return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); + }); + + program.version(getVersionNumber()).option('-o, --output', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); + + compile = function(start_path, path) { + /* + e.g., if start_path is /foo/bar + and path is /foo/bar/car/thing.toffee + this compiles it specifically as + {identifier}/car/thing + where identifier is "bar" if nothing passed from cmd line + */ + + var source, v; + source = fs.readFileSync(path, 'utf8'); v = new view(source, { - fileName: fname + fileName: path }); - if (coffee) { - return console.log(v._toCoffee()); + return v._toJavaScript(); + }; + + recurseRun = function(start_path, curr_path, out_text) { + var file, files, stats, sub_path, sub_stats, _i, _len; + console.log(out_text.slice(0, 1000)); + stats = fs.statSync(curr_path); + if (stats.isDirectory()) { + files = fs.readdirSync(curr_path); + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + sub_path = path.normalize("" + curr_path + "/" + file); + if (file.match(/\.toffee$/)) { + out_text = recurseRun(start_path, sub_path, out_text); + } else if (!(file === '.' || file === '..')) { + sub_stats = fs.statSync(sub_path); + if (sub_stats.isDirectory()) { + out_text = recurseRun(start_path, sub_path, out_text); + } + } + } } else { - return console.log(v._toJavaScript()); + out_text += compile(start_path, curr_path); } + return out_text; }; + run = exports.run = function() { + var out_text, start_path; + if (program.args.length !== 1) { + console.log("Unexpected input. toffee --help for examples"); + return process.exit(1); + } else { + try { + start_path = fs.realpathSync(program.args[0]); + } catch (e) { + console.log("Input file/path not found. toffee --help for examples"); + process.exit(1); + } + start_path = path.normalize(start_path); + out_text = recurseRun(start_path, start_path, ""); + return console.log(out_text); + } + }; + + if (require.main === module) { + run(); + } + }).call(this); diff --git a/lib/consts.js b/lib/consts.js index cd77ed6..c249598 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { exports.states = { diff --git a/lib/engine.js b/lib/engine.js index b0ba08a..2bb8747 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { var engine, fs, path, states, util, utils, view, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -17,6 +17,8 @@ engine = (function() { + engine.name = 'engine'; + function engine(options) { this._fn_partial = __bind(this._fn_partial, this); diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 8f5a0e0..d4afd12 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { var eh, errorTypes, path, toffeeError, util, _ppEscape; @@ -15,6 +15,8 @@ toffeeError = (function() { + toffeeError.name = 'toffeeError'; + function toffeeError(view, err_type, e) { this.errType = err_type; this.view = view; diff --git a/lib/utils.js b/lib/utils.js index 28733ef..dac3474 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { var lex, lexer; diff --git a/lib/view.js b/lib/view.js index 2f16e93..eb50ad7 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.3 +// Generated by CoffeeScript 1.3.1 (function() { var TAB_SPACES, coffee, errorHandler, errorTypes, parser, states, toffeeError, utils, view, vm, _ref, _ref1; @@ -20,6 +20,8 @@ view = (function() { + view.name = 'view'; + function view(txt, options) { /* important options: diff --git a/src/command_line.coffee b/src/command_line.coffee index 5da4e55..8b82b5c 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -35,24 +35,42 @@ program.on '--help', -> program.version(getVersionNumber()) .option('-o, --output', 'output file') .option('-p, --print', 'print output to stdout') + .option('-c, --coffee', 'output to CoffeeScript (not JS)') .parse process.argv # ----------------------------------------------------------------------------- -recurseRun = (start_path, curr_path) -> +compile = (start_path, path) -> + ### + e.g., if start_path is /foo/bar + and path is /foo/bar/car/thing.toffee + this compiles it specifically as + {identifier}/car/thing + where identifier is "bar" if nothing passed from cmd line + ### + source = fs.readFileSync path, 'utf8' + v = new view source, {fileName: path} + return v._toJavaScript() + +# ----------------------------------------------------------------------------- + +recurseRun = (start_path, curr_path, out_text) -> + console.log out_text[0...1000] stats = fs.statSync curr_path if stats.isDirectory() files = fs.readdirSync curr_path for file in files sub_path = path.normalize "#{curr_path}/#{file}" if file.match /\.toffee$/ - recurseRun start_path, sub_path + out_text = recurseRun start_path, sub_path, out_text else if not (file in ['.','..']) sub_stats = fs.statSync sub_path if sub_stats.isDirectory() - recurseRun start_path, sub_path + out_text = recurseRun start_path, sub_path, out_text else - console.log "Visiting #{curr_path}" + out_text += compile start_path, curr_path + + return out_text run = exports.run = -> if program.args.length isnt 1 @@ -65,7 +83,8 @@ run = exports.run = -> console.log "Input file/path not found. toffee --help for examples" process.exit 1 start_path = path.normalize start_path - recurseRun start_path, start_path + out_text = recurseRun start_path, start_path, "" + console.log out_text # ----------------------------------------------------------------------------- diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js new file mode 100644 index 0000000..d3f68a4 --- /dev/null +++ b/test/express3/public/javascripts/test_cases.js @@ -0,0 +1 @@ +alert("hi"); diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 4063192..c6c3cc1 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -1,4 +1,12 @@ -

Test Results

-#{partial "./subdir1/hello_world.toffee", rows:10, cols:10 } -
-#{partial "./subdir2/goodbye_world.toffee"} \ No newline at end of file + + + Toffee Test + + + +

Test Results

+ #{partial "./subdir1/hello_world.toffee", rows:10, cols:10 } +
+ #{partial "./subdir2/goodbye_world.toffee"} + + \ No newline at end of file diff --git a/toffee.js b/toffee.js index 1fadd33..49e3007 100644 --- a/toffee.js +++ b/toffee.js @@ -6834,51 +6834,96 @@ if (typeof module !== 'undefined' && require.main === module) { })(); }).call(this); -}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { - var engine, fs, getVersionNumber, printUsage, view; + var compile, fs, getVersionNumber, path, program, recurseRun, run, view; - fs = require("fs"); + fs = require('fs'); - engine = require('../lib/engine').engine; + path = require('path'); view = require('../lib/view').view; - printUsage = function() { - console.log(" Usage: toffee [-c] input.toffee\n\n -c == output to CoffeeScript (instead of JS)\n\n TODO: make a more useful command line tool."); - return process.exit(1); - }; + program = require('commander'); getVersionNumber = function() { - return JSON.parse(fs.readFileSync("" + __dirname + "/../package.json", "utf8")).version; + var o, p; + p = fs.readFileSync("" + __dirname + "/../package.json", "utf8"); + o = JSON.parse(p); + return o.version; }; - exports.run = function() { - var args, coffee, e, fname, source, v; - e = new engine(); - args = process.argv.slice(2); - if (args.length === 2) { - coffee = true; - if (args[0] !== "-c") { - printUsage(); - } - } else if (args.length !== 1) { - printUsage(); - } - fname = args.slice(-1)[0]; - source = fs.readFileSync(fname, "utf8"); + program.on('--help', function() { + return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); + }); + + program.version(getVersionNumber()).option('-o, --output', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); + + compile = function(start_path, path) { + /* + e.g., if start_path is /foo/bar + and path is /foo/bar/car/thing.toffee + this compiles it specifically as + {identifier}/car/thing + where identifier is "bar" if nothing passed from cmd line + */ + + var source, v; + source = fs.readFileSync(path, 'utf8'); v = new view(source, { - fileName: fname + fileName: path }); - if (coffee) { - return console.log(v._toCoffee()); + return v._toJavaScript(); + }; + + recurseRun = function(start_path, curr_path, out_text) { + var file, files, stats, sub_path, sub_stats, _i, _len; + console.log(out_text.slice(0, 1000)); + stats = fs.statSync(curr_path); + if (stats.isDirectory()) { + files = fs.readdirSync(curr_path); + for (_i = 0, _len = files.length; _i < _len; _i++) { + file = files[_i]; + sub_path = path.normalize("" + curr_path + "/" + file); + if (file.match(/\.toffee$/)) { + out_text = recurseRun(start_path, sub_path, out_text); + } else if (!(file === '.' || file === '..')) { + sub_stats = fs.statSync(sub_path); + if (sub_stats.isDirectory()) { + out_text = recurseRun(start_path, sub_path, out_text); + } + } + } + } else { + out_text += compile(start_path, curr_path); + } + return out_text; + }; + + run = exports.run = function() { + var out_text, start_path; + if (program.args.length !== 1) { + console.log("Unexpected input. toffee --help for examples"); + return process.exit(1); } else { - return console.log(v._toJavaScript()); + try { + start_path = fs.realpathSync(program.args[0]); + } catch (e) { + console.log("Input file/path not found. toffee --help for examples"); + process.exit(1); + } + start_path = path.normalize(start_path); + out_text = recurseRun(start_path, start_path, ""); + return console.log(out_text); } }; + if (require.main === module) { + run(); + } + }).call(this); -}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { exports.states = { @@ -6889,7 +6934,7 @@ if (typeof module !== 'undefined' && require.main === module) { exports.TAB_SPACES = 2; }).call(this); -}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { var engine, fs, path, states, util, utils, view, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -6908,6 +6953,8 @@ if (typeof module !== 'undefined' && require.main === module) { engine = (function() { + engine.name = 'engine'; + function engine(options) { this._fn_partial = __bind(this._fn_partial, this); @@ -7105,7 +7152,7 @@ if (typeof module !== 'undefined' && require.main === module) { exports.engine = engine; }).call(this); -}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { var eh, errorTypes, path, toffeeError, util, _ppEscape; @@ -7122,6 +7169,8 @@ if (typeof module !== 'undefined' && require.main === module) { toffeeError = (function() { + toffeeError.name = 'toffeeError'; + function toffeeError(view, err_type, e) { this.errType = err_type; this.view = view; @@ -7941,7 +7990,7 @@ exports.main = function commonjsMain(args) { if (typeof module !== 'undefined' && require.main === module) { exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); } -}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { var lex, lexer; @@ -8009,7 +8058,7 @@ if (typeof module !== 'undefined' && require.main === module) { }; }).call(this); -}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 +}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { var TAB_SPACES, coffee, errorHandler, errorTypes, parser, states, toffeeError, utils, view, vm, _ref, _ref1; @@ -8031,6 +8080,8 @@ if (typeof module !== 'undefined' && require.main === module) { view = (function() { + view.name = 'view'; + function view(txt, options) { /* important options: From 47872dfd94eacb12d1fb89183339d6a248533aea Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 30 Jul 2012 13:48:42 -0400 Subject: [PATCH 018/163] incremental --- lib/command_line.js | 1 - src/command_line.coffee | 16 - .../express3/public/javascripts/test_cases.js | 8673 ++++++++++++++++- test/run_cases.coffee | 2 +- toffee.js | 1 - 5 files changed, 8673 insertions(+), 20 deletions(-) diff --git a/lib/command_line.js b/lib/command_line.js index c99a27c..dcfbff2 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -42,7 +42,6 @@ recurseRun = function(start_path, curr_path, out_text) { var file, files, stats, sub_path, sub_stats, _i, _len; - console.log(out_text.slice(0, 1000)); stats = fs.statSync(curr_path); if (stats.isDirectory()) { files = fs.readdirSync(curr_path); diff --git a/src/command_line.coffee b/src/command_line.coffee index 8b82b5c..f3994be 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -55,7 +55,6 @@ compile = (start_path, path) -> # ----------------------------------------------------------------------------- recurseRun = (start_path, curr_path, out_text) -> - console.log out_text[0...1000] stats = fs.statSync curr_path if stats.isDirectory() files = fs.readdirSync curr_path @@ -90,18 +89,3 @@ run = exports.run = -> if require.main is module run() - -# args = process.argv.slice 2 -# if args.length is 2 -# coffee = true -# if args[0] isnt "-c" -# printUsage() -# else if args.length isnt 1 -# printUsage() -# fname = args[-1..][0] -# source = fs.readFileSync fname, "utf8" -# v = new view source, {fileName: fname} -# if coffee -# console.log v._toCoffee() -# else -# console.log v._toJavaScript() \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index d3f68a4..7657247 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1 +1,8672 @@ -alert("hi"); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var count, escape, html, i, json, print, raw, states, _i; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + count = 0; + for (i = _i = 0; _i < 5; i = ++_i) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 3; + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 4; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 5; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 6; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 7; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 8; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 9; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 10; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 11; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 12; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 13; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 14; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 15; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 16; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 17; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 18; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 19; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 20; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 21; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 22; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 23; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 24; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 25; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 26; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 27; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 28; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 29; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 30; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 31; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 32; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 33; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 34; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 35; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 36; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 37; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 38; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 39; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 40; + __toffee.out.push("..."); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + count += 1; + print("" + count + "..."); + __toffee.state = states.TOFFEE; + __toffee.lineno = 43; + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 44; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 45; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 46; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 47; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 48; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 49; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 50; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 51; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 52; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 53; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 54; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 55; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 56; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 57; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 58; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 59; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 60; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 61; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 62; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 63; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 64; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 65; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 66; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 67; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 68; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 69; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 70; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 71; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 72; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 73; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 74; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 75; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 76; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 77; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 78; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 79; + __toffee.out.push("..."); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + count += 1; + print("" + count + "..."); + __toffee.state = states.TOFFEE; + __toffee.lineno = 82; + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 83; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 84; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 85; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 86; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 87; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 88; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 89; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 90; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 91; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 92; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 93; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 94; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 95; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 96; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 97; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 98; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 99; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 100; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 101; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 102; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 103; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 104; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 105; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 106; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 107; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 108; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 109; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 110; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 111; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 112; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 113; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 114; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 115; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 116; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 117; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 118; + __toffee.out.push("..."); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + count += 1; + print("" + count + "..."); + __toffee.state = states.TOFFEE; + __toffee.lineno = 121; + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 122; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 123; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 124; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 125; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 126; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 127; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 128; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 129; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 130; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 131; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 132; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 133; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 134; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 135; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 136; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 137; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 138; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 139; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 140; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 141; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 142; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 143; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 144; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 145; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 146; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 147; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 148; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 149; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 150; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 151; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 152; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 153; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 154; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 155; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 156; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 157; + __toffee.out.push("..."); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + count += 1; + print("" + count + "..."); + __toffee.state = states.TOFFEE; + __toffee.lineno = 160; + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 161; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 162; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 163; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 164; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 165; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 166; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 167; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 168; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 169; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 170; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 171; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 172; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 173; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 174; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 175; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 176; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 177; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 178; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 179; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 180; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 181; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 182; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 183; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 184; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 185; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 186; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 187; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 188; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 189; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 190; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 191; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 192; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 193; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 194; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 195; + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.out.push("..."); + __toffee.out.push("" + (escape(count++))); + __toffee.lineno = 196; + __toffee.out.push("..."); + __toffee.state = states.COFFEE; + } + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...69...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...161...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...231...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...323...324...325...326...327...328...329...330...331...332...333...334...335...336...337...338...339...340...341...342...343...344...345...346...347...348...349...350...351...352...353...354...355...356...357...358...359...360...361...362...363...364...365...366...367...368...369...370...371...372...373...374...375...376...377...378...379...380...381...382...383...384...385...386...387...388...389...390...391...392...393...394...395...396...397...398...399...400...401...402...403...404...405...406...407...408...409...410...411...412...413...414...415...416...417...418...419...420...421...422...423...424...425...426...427...428...429...430...431...432...433...434...435...436...437...438...439...440...441...442...443...444...445...446...447...448...449...450...451...452...453...454...455...456...457...458...459...460...461...462...463...464...465...466...467...469...469...470...471...472...473...474...475...476...477...478...479...480...481...482...483...484...485...486...487...488...489...490...491...492...493...494...495...496...497...498...499...500...501...502...503...504...505...506...507...508...509...510...511...512...513...514...515...516...517...518...519...520...521...522...523...524...525...526...527...528...529...530...531...532...533...534...535...536...537...538...539...540...541...542...543...544...545...546...547...548...549...550...551...552...553...554...555...556...557...558...559...560...561...562...563...564...565...566...567...568...569...570...571...572...573...574...575...576...577...578...579...580...581...582...583...584...585...586...587...588...589...590...591...592...593...594...595...596...597...598...599...600...601...602...603...604...605...606...607...608...609...610...611...612...613...614...615...616...617...618...619...620...621...622...623...624...625...626...627...628...629...630...631...632...633...634...635...636...637...638...639...640...641...642...643...644...645...646...647...648...649...650...651...652...653...654...655...656...657...658...659...660...661...662...663...664...665...666...667...668...669...670...671...672...673...674...675...676...677...678...679...680...681...682...683...684...685...686...687...688...689...690...691...692...693...694...695...696...697...698...699...700...701...702...703...704...705...706...707...708...709...710...711...712...713...714...715...716...717...718...719...720...721...722...723...724...725...726...727...728...729...730...731...732...733...734...735...736...737...738...739...740...741...742...743...744...745...746...747...748...749...750...751...752...753...754...755...756...757...758...759...760...761...762...763...764...765...766...767...768...769...770...771...772...773...774...775...776...777...778...779...780...781...782...783...784...785...786...787...788...789...790...791...792...793...794...795...796...797...798...799...800...801...802...803...804...805...806...807...808...809...810...811...812...813...814...815...816...817...818...819...820...821...822...823...824...825...826...827...828...829...830...831...832...833...834...835...836...837...838...839...840...841...842...843...844...845...846...847...848...849...850...851...852...853...854...855...856...857...858...859...860...861...862...863...864...865...866...867...868...869...870...871...872...873...874...875...876...877...878...879...880...881...882...883...884...885...886...887...888...889...890...891...892...893...894...895...896...897...898...899...900...901...902...903...904...905...906...907...908...909...910...911...912...913...914...915...916...917...918...919...920...921...922...923...924...925...926...927...928...929...930...931...932...933...934...935...936...938...938...939...940...941...942...943...944...945...946...947...948...949...950...951...952...953...954...955...956...957...958...959...960...961...962...963...964...965...966...967...968...969...970...971...972...973...974...975...976...977...978...979...980...981...982...983...984...985...986...987...988...989...990...991...992...993...994...995...996...997...998...999...1000...1001...1002...1003...1004...1005...1006...1007...1008...1009...1010...1011...1012...1013...1014...1015...1016...1017...1018...1019...1020...1021...1022...1023...1024...1025...1026...1027...1028...1029...1030...1031...1032...1033...1034...1035...1036...1037...1038...1039...1040...1041...1042...1043...1044...1045...1046...1047...1048...1049...1050...1051...1052...1053...1054...1055...1056...1057...1058...1059...1060...1061...1062...1063...1064...1065...1066...1067...1068...1069...1070...1071...1072...1073...1074...1075...1076...1077...1078...1079...1080...1081...1082...1083...1084...1085...1086...1087...1088...1089...1090...1091...1092...1093...1094...1095...1096...1097...1098...1099...1100...1101...1102...1103...1104...1105...1106...1107...1108...1109...1110...1111...1112...1113...1114...1115...1116...1117...1118...1119...1120...1121...1122...1123...1124...1125...1126...1127...1128...1129...1130...1131...1132...1133...1134...1135...1136...1137...1138...1139...1140...1141...1142...1143...1144...1145...1146...1147...1148...1149...1150...1151...1152...1153...1154...1155...1156...1157...1158...1159...1160...1161...1162...1163...1164...1165...1166...1167...1168...1169...1170...1171...1172...1173...1174...1175...1176...1177...1178...1179...1180...1181...1182...1183...1184...1185...1186...1187...1188...1189...1190...1191...1192...1193...1194...1195...1196...1197...1198...1199...1200...1201...1202...1203...1204...1205...1206...1207...1208...1209...1210...1211...1212...1213...1214...1215...1216...1217...1218...1219...1220...1221...1222...1223...1224...1225...1226...1227...1228...1229...1230...1231...1232...1233...1234...1235...1236...1237...1238...1239...1240...1241...1242...1243...1244...1245...1246...1247...1248...1249...1250...1251...1252...1253...1254...1255...1256...1257...1258...1259...1260...1261...1262...1263...1264...1265...1266...1267...1268...1269...1270...1271...1272...1273...1274...1275...1276...1277...1278...1279...1280...1281...1282...1283...1284...1285...1286...1287...1288...1289...1290...1291...1292...1293...1294...1295...1296...1297...1298...1299...1300...1301...1302...1303...1304...1305...1306...1307...1308...1309...1310...1311...1312...1313...1314...1315...1316...1317...1318...1319...1320...1321...1322...1323...1324...1325...1326...1327...1328...1329...1330...1331...1332...1333...1334...1335...1336...1337...1338...1339...1340...1341...1342...1343...1344...1345...1346...1347...1348...1349...1350...1351...1352...1353...1354...1355...1356...1357...1358...1359...1360...1361...1362...1363...1364...1365...1366...1367...1368...1369...1370...1371...1372...1373...1374...1375...1376...1377...1378...1379...1380...1381...1382...1383...1384...1385...1386...1387...1388...1389...1390...1391...1392...1393...1394...1395...1396...1397...1398...1399...1400...1401...1402...1403...1404...1405...1407...1407...1408...1409...1410...1411...1412...1413...1414...1415...1416...1417...1418...1419...1420...1421...1422...1423...1424...1425...1426...1427...1428...1429...1430...1431...1432...1433...1434...1435...1436...1437...1438...1439...1440...1441...1442...1443...1444...1445...1446...1447...1448...1449...1450...1451...1452...1453...1454...1455...1456...1457...1458...1459...1460...1461...1462...1463...1464...1465...1466...1467...1468...1469...1470...1471...1472...1473...1474...1475...1476...1477...1478...1479...1480...1481...1482...1483...1484...1485...1486...1487...1488...1489...1490...1491...1492...1493...1494...1495...1496...1497...1498...1499...1500...1501...1502...1503...1504...1505...1506...1507...1508...1509...1510...1511...1512...1513...1514...1515...1516...1517...1518...1519...1520...1521...1522...1523...1524...1525...1526...1527...1528...1529...1530...1531...1532...1533...1534...1535...1536...1537...1538...1539...1540...1541...1542...1543...1544...1545...1546...1547...1548...1549...1550...1551...1552...1553...1554...1555...1556...1557...1558...1559...1560...1561...1562...1563...1564...1565...1566...1567...1568...1569...1570...1571...1572...1573...1574...1575...1576...1577...1578...1579...1580...1581...1582...1583...1584...1585...1586...1587...1588...1589...1590...1591...1592...1593...1594...1595...1596...1597...1598...1599...1600...1601...1602...1603...1604...1605...1606...1607...1608...1609...1610...1611...1612...1613...1614...1615...1616...1617...1618...1619...1620...1621...1622...1623...1624...1625...1626...1627...1628...1629...1630...1631...1632...1633...1634...1635...1636...1637...1638...1639...1640...1641...1642...1643...1644...1645...1646...1647...1648...1649...1650...1651...1652...1653...1654...1655...1656...1657...1658...1659...1660...1661...1662...1663...1664...1665...1666...1667...1668...1669...1670...1671...1672...1673...1674...1675...1676...1677...1678...1679...1680...1681...1682...1683...1684...1685...1686...1687...1688...1689...1690...1691...1692...1693...1694...1695...1696...1697...1698...1699...1700...1701...1702...1703...1704...1705...1706...1707...1708...1709...1710...1711...1712...1713...1714...1715...1716...1717...1718...1719...1720...1721...1722...1723...1724...1725...1726...1727...1728...1729...1730...1731...1732...1733...1734...1735...1736...1737...1738...1739...1740...1741...1742...1743...1744...1745...1746...1747...1748...1749...1750...1751...1752...1753...1754...1755...1756...1757...1758...1759...1760...1761...1762...1763...1764...1765...1766...1767...1768...1769...1770...1771...1772...1773...1774...1775...1776...1777...1778...1779...1780...1781...1782...1783...1784...1785...1786...1787...1788...1789...1790...1791...1792...1793...1794...1795...1796...1797...1798...1799...1800...1801...1802...1803...1804...1805...1806...1807...1808...1809...1810...1811...1812...1813...1814...1815...1816...1817...1818...1819...1820...1821...1822...1823...1824...1825...1826...1827...1828...1829...1830...1831...1832...1833...1834...1835...1836...1837...1838...1839...1840...1841...1842...1843...1844...1845...1846...1847...1848...1849...1850...1851...1852...1853...1854...1855...1856...1857...1858...1859...1860...1861...1862...1863...1864...1865...1866...1867...1868...1869...1870...1871...1872...1873...1874...1876...1876...1877...1878...1879...1880...1881...1882...1883...1884...1885...1886...1887...1888...1889...1890...1891...1892...1893...1894...1895...1896...1897...1898...1899...1900...1901...1902...1903...1904...1905...1906...1907...1908...1909...1910...1911...1912...1913...1914...1915...1916...1917...1918...1919...1920...1921...1922...1923...1924...1925...1926...1927...1928...1929...1930...1931...1932...1933...1934...1935...1936...1937...1938...1939...1940...1941...1942...1943...1944...1945...1946...1947...1948...1949...1950...1951...1952...1953...1954...1955...1956...1957...1958...1959...1960...1961...1962...1963...1964...1965...1966...1967...1968...1969...1970...1971...1972...1973...1974...1975...1976...1977...1978...1979...1980...1981...1982...1983...1984...1985...1986...1987...1988...1989...1990...1991...1992...1993...1994...1995...1996...1997...1998...1999...2000...2001...2002...2003...2004...2005...2006...2007...2008...2009...2010...2011...2012...2013...2014...2015...2016...2017...2018...2019...2020...2021...2022...2023...2024...2025...2026...2027...2028...2029...2030...2031...2032...2033...2034...2035...2036...2037...2038...2039...2040...2041...2042...2043...2044...2045...2046...2047...2048...2049...2050...2051...2052...2053...2054...2055...2056...2057...2058...2059...2060...2061...2062...2063...2064...2065...2066...2067...2068...2069...2070...2071...2072...2073...2074...2075...2076...2077...2078...2079...2080...2081...2082...2083...2084...2085...2086...2087...2088...2089...2090...2091...2092...2093...2094...2095...2096...2097...2098...2099...2100...2101...2102...2103...2104...2105...2106...2107...2108...2109...2110...2111...2112...2113...2114...2115...2116...2117...2118...2119...2120...2121...2122...2123...2124...2125...2126...2127...2128...2129...2130...2131...2132...2133...2134...2135...2136...2137...2138...2139...2140...2141...2142...2143...2144...2145...2146...2147...2148...2149...2150...2151...2152...2153...2154...2155...2156...2157...2158...2159...2160...2161...2162...2163...2164...2165...2166...2167...2168...2169...2170...2171...2172...2173...2174...2175...2176...2177...2178...2179...2180...2181...2182...2183...2184...2185...2186...2187...2188...2189...2190...2191...2192...2193...2194...2195...2196...2197...2198...2199...2200...2201...2202...2203...2204...2205...2206...2207...2208...2209...2210...2211...2212...2213...2214...2215...2216...2217...2218...2219...2220...2221...2222...2223...2224...2225...2226...2227...2228...2229...2230...2231...2232...2233...2234...2235...2236...2237...2238...2239...2240...2241...2242...2243...2244...2245...2246...2247...2248...2249...2250...2251...2252...2253...2254...2255...2256...2257...2258...2259...2260...2261...2262...2263...2264...2265...2266...2267...2268...2269...2270...2271...2272...2273...2274...2275...2276...2277...2278...2279...2280...2281...2282...2283...2284...2285...2286...2287...2288...2289...2290...2291...2292...2293...2294...2295...2296...2297...2298...2299...2300...2301...2302...2303...2304...2305...2306...2307...2308...2309...2310...2311...2312...2313...2314...2315...2316...2317...2318...2319...2320...2321...2322...2323...2324...2325...2326...2327...2328...2329...2330...2331...2332...2333...2334...2335...2336...2337...2338...2339...2340...2341...2342...2343...2344...2345...2346...2347...2348...2349...2350...2351...2352...2353...2354...2355...2356...2357...2358...2359...2360...2361...2362...2363...2364...2365...2366...2367...2368...2369...2370...2371...2372...2373...2374...2375...2376...2377...2378...2379...2380...2381...2382...2383...2384...2385...2386...2387...2388...2389...2390...2391...2392...2393...2394...2395...2396...2397...2398...2399...2400...2401...2402...2403...2404...2405...2406...2407...2408...2409...2410...2411...2412...2413...2414...2415...2416...2417...2418...2419...2420...2421...2422...2423...2424...2425...2426...2427...2428...2429...2430...2431...2432...2433...2434...2435...2436...2437...2438...2439...2440...2441...2442...2443...2444...2445...2446...2447...2448...2449...2450...2451...2452...2453...2454...2455...2456...2457...2458...2459...2460...2461...2462...2463...2464...2465...2466...2467...2468...2469...2470...2471...2472...2473...2474...2475...2476...2477...2478...2479...2480...2481...2482...2483...2484...2485...2486...2487...2488...2489...2490...2491...2492...2493...2494...2495...2496...2497...2498...2499...2500...2501...2502...2503...2504...2505...2506...2507...2508...2509...2510...2511...2512...2513...2514...2515...2516...2517...2518...2519...2520...2521...2522...2523...2524...2525...2526...2527...2528...2529...2530...2531...2532...2533...2534...2535...2536...2537...2538...2539...2540...2541...2542...2543...2544...2545...2546...2547...2548...2549...2550...2551...2552...2553...2554...2555...2556...2557...2558...2559...2560...2561...2562...2563...2564...2565...2566...2567...2568...2569...2570...2571...2572...2573...2574...2575...2576...2577...2578...2579...2580...2581...2582...2583...2584...2585...2586...2587...2588...2589...2590...2591...2592...2593...2594...2595...2596...2597...2598...2599...2600...2601...2602...2603...2604...2605...2606...2607...2608...2609...2610...2611...2612...2613...2614...2615...2616...2617...2618...2619...2620...2621...2622...2623...2624...2625...2626...2627...2628...2629...2630...2631...2632...2633...2634...2635...2636...2637...2638...2639...2640...2641...2642...2643...2644...2645...2646...2647...2648...2649...2650...2651...2652...2653...2654...2655...2656...2657...2658...2659...2660...2661...2662...2663...2664...2665...2666...2667...2668...2669...2670...2671...2672...2673...2674...2675...2676...2677...2678...2679...2680...2681...2682...2683...2684...2685...2686...2687...2688...2689...2690...2691...2692...2693...2694...2695...2696...2697...2698...2699...2700...2701...2702...2703...2704...2705...2706...2707...2708...2709...2710...2711...2712...2713...2714...2715...2716...2717...2718...2719...2720...2721...2722...2723...2724...2725...2726...2727...2728...2729...2730...2731...2732...2733...2734...2735...2736...2737...2738...2739...2740...2741...2742...2743...2744...2745...2746...2747...2748...2749...2750...2751...2752...2753...2754...2755...2756...2757...2758...2759...2760...2761...2762...2763...2764...2765...2766...2767...2768...2769...2770...2771...2772...2773...2774...2775...2776...2777...2778...2779...2780...2781...2782...2783...2784...2785...2786...2787...2788...2789...2790...2791...2792...2793...2794...2795...2796...2797...2798...2799...2800...2801...2802...2803...2804...2805...2806...2807...2808...2809...2810...2811...2813...2813...2814...2815...2816...2817...2818...2819...2820...2821...2822...2823...2824...2825...2826...2827...2828...2829...2830...2831...2832...2833...2834...2835...2836...2837...2838...2839...2840...2841...2842...2843...2844...2845...2846...2847...2848...2849...2850...2851...2852...2853...2854...2855...2856...2857...2858...2859...2860...2861...2862...2863...2864...2865...2866...2867...2868...2869...2870...2871...2872...2873...2874...2875...2876...2877...2878...2879...2880...2881...2882...2883...2884...2885...2886...2887...2888...2889...2890...2891...2892...2893...2894...2895...2896...2897...2898...2899...2900...2901...2902...2903...2904...2905...2906...2907...2908...2909...2910...2911...2912...2913...2914...2915...2916...2917...2918...2919...2920...2921...2922...2923...2924...2925...2926...2927...2928...2929...2930...2931...2932...2933...2934...2935...2936...2937...2938...2939...2940...2941...2942...2943...2944...2945...2946...2947...2948...2949...2950...2951...2952...2953...2954...2955...2956...2957...2958...2959...2960...2961...2962...2963...2964...2965...2966...2967...2968...2969...2970...2971...2972...2973...2974...2975...2976...2977...2978...2979...2980...2981...2982...2983...2984...2985...2986...2987...2988...2989...2990...2991...2992...2993...2994...2995...2996...2997...2998...2999...3000...3001...3002...3003...3004...3005...3006...3007...3008...3009...3010...3011...3012...3013...3014...3015...3016...3017...3018...3019...3020...3021...3022...3023...3024...3025...3026...3027...3028...3029...3030...3031...3032...3033...3034...3035...3036...3037...3038...3039...3040...3041...3042...3043...3044...3045...3046...3047...3048...3049...3050...3051...3052...3053...3054...3055...3056...3057...3058...3059...3060...3061...3062...3063...3064...3065...3066...3067...3068...3069...3070...3071...3072...3073...3074...3075...3076...3077...3078...3079...3080...3081...3082...3083...3084...3085...3086...3087...3088...3089...3090...3091...3092...3093...3094...3095...3096...3097...3098...3099...3100...3101...3102...3103...3104...3105...3106...3107...3108...3109...3110...3111...3112...3113...3114...3115...3116...3117...3118...3119...3120...3121...3122...3123...3124...3125...3126...3127...3128...3129...3130...3131...3132...3133...3134...3135...3136...3137...3138...3139...3140...3141...3142...3143...3144...3145...3146...3147...3148...3149...3150...3151...3152...3153...3154...3155...3156...3157...3158...3159...3160...3161...3162...3163...3164...3165...3166...3167...3168...3169...3170...3171...3172...3173...3174...3175...3176...3177...3178...3179...3180...3181...3182...3183...3184...3185...3186...3187...3188...3189...3190...3191...3192...3193...3194...3195...3196...3197...3198...3199...3200...3201...3202...3203...3204...3205...3206...3207...3208...3209...3210...3211...3212...3213...3214...3215...3216...3217...3218...3219...3220...3221...3222...3223...3224...3225...3226...3227...3228...3229...3230...3231...3232...3233...3234...3235...3236...3237...3238...3239...3240...3241...3242...3243...3244...3245...3246...3247...3248...3249...3250...3251...3252...3253...3254...3255...3256...3257...3258...3259...3260...3261...3262...3263...3264...3265...3266...3267...3268...3269...3270...3271...3272...3273...3274...3275...3276...3277...3278...3279...3280...3282...3282...3283...3284...3285...3286...3287...3288...3289...3290...3291...3292...3293...3294...3295...3296...3297...3298...3299...3300...3301...3302...3303...3304...3305...3306...3307...3308...3309...3310...3311...3312...3313...3314...3315...3316...3317...3318...3319...3320...3321...3322...3323...3324...3325...3326...3327...3328...3329...3330...3331...3332...3333...3334...3335...3336...3337...3338...3339...3340...3341...3342...3343...3344...3345...3346...3347...3348...3349...3350...3351...3352...3353...3354...3355...3356...3357...3358...3359...3360...3361...3362...3363...3364...3365...3366...3367...3368...3369...3370...3371...3372...3373...3374...3375...3376...3377...3378...3379...3380...3381...3382...3383...3384...3385...3386...3387...3388...3389...3390...3391...3392...3393...3394...3395...3396...3397...3398...3399...3400...3401...3402...3403...3404...3405...3406...3407...3408...3409...3410...3411...3412...3413...3414...3415...3416...3417...3418...3419...3420...3421...3422...3423...3424...3425...3426...3427...3428...3429...3430...3431...3432...3433...3434...3435...3436...3437...3438...3439...3440...3441...3442...3443...3444...3445...3446...3447...3448...3449...3450...3451...3452...3453...3454...3455...3456...3457...3458...3459...3460...3461...3462...3463...3464...3465...3466...3467...3468...3469...3470...3471...3472...3473...3474...3475...3476...3477...3478...3479...3480...3481...3482...3483...3484...3485...3486...3487...3488...3489...3490...3491...3492...3493...3494...3495...3496...3497...3498...3499...3500...3501...3502...3503...3504...3505...3506...3507...3508...3509...3510...3511...3512...3513...3514...3515...3516...3517...3518...3519...3520...3521...3522...3523...3524...3525...3526...3527...3528...3529...3530...3531...3532...3533...3534...3535...3536...3537...3538...3539...3540...3541...3542...3543...3544...3545...3546...3547...3548...3549...3550...3551...3552...3553...3554...3555...3556...3557...3558...3559...3560...3561...3562...3563...3564...3565...3566...3567...3568...3569...3570...3571...3572...3573...3574...3575...3576...3577...3578...3579...3580...3581...3582...3583...3584...3585...3586...3587...3588...3589...3590...3591...3592...3593...3594...3595...3596...3597...3598...3599...3600...3601...3602...3603...3604...3605...3606...3607...3608...3609...3610...3611...3612...3613...3614...3615...3616...3617...3618...3619...3620...3621...3622...3623...3624...3625...3626...3627...3628...3629...3630...3631...3632...3633...3634...3635...3636...3637...3638...3639...3640...3641...3642...3643...3644...3645...3646...3647...3648...3649...3650...3651...3652...3653...3654...3655...3656...3657...3658...3659...3660...3661...3662...3663...3664...3665...3666...3667...3668...3669...3670...3671...3672...3673...3674...3675...3676...3677...3678...3679...3680...3681...3682...3683...3684...3685...3686...3687...3688...3689...3690...3691...3692...3693...3694...3695...3696...3697...3698...3699...3700...3701...3702...3703...3704...3705...3706...3707...3708...3709...3710...3711...3712...3713...3714...3715...3716...3717...3718...3719...3720...3721...3722...3723...3724...3725...3726...3727...3728...3729...3730...3731...3732...3733...3734...3735...3736...3737...3738...3739...3740...3741...3742...3743...3744...3745...3746...3747...3748...3749...3751...3751...3752...3753...3754...3755...3756...3757...3758...3759...3760...3761...3762...3763...3764...3765...3766...3767...3768...3769...3770...3771...3772...3773...3774...3775...3776...3777...3778...3779...3780...3781...3782...3783...3784...3785...3786...3787...3788...3789...3790...3791...3792...3793...3794...3795...3796...3797...3798...3799...3800...3801...3802...3803...3804...3805...3806...3807...3808...3809...3810...3811...3812...3813...3814...3815...3816...3817...3818...3819...3820...3821...3822...3823...3824...3825...3826...3827...3828...3829...3830...3831...3832...3833...3834...3835...3836...3837...3838...3839...3840...3841...3842...3843...3844...3845...3846...3847...3848...3849...3850...3851...3852...3853...3854...3855...3856...3857...3858...3859...3860...3861...3862...3863...3864...3865...3866...3867...3868...3869...3870...3871...3872...3873...3874...3875...3876...3877...3878...3879...3880...3881...3882...3883...3884...3885...3886...3887...3888...3889...3890...3891...3892...3893...3894...3895...3896...3897...3898...3899...3900...3901...3902...3903...3904...3905...3906...3907...3908...3909...3910...3911...3912...3913...3914...3915...3916...3917...3918...3919...3920...3921...3922...3923...3924...3925...3926...3927...3928...3929...3930...3931...3932...3933...3934...3935...3936...3937...3938...3939...3940...3941...3942...3943...3944...3945...3946...3947...3948...3949...3950...3951...3952...3953...3954...3955...3956...3957...3958...3959...3960...3961...3962...3963...3964...3965...3966...3967...3968...3969...3970...3971...3972...3973...3974...3975...3976...3977...3978...3979...3980...3981...3982...3983...3984...3985...3986...3987...3988...3989...3990...3991...3992...3993...3994...3995...3996...3997...3998...3999...4000...4001...4002...4003...4004...4005...4006...4007...4008...4009...4010...4011...4012...4013...4014...4015...4016...4017...4018...4019...4020...4021...4022...4023...4024...4025...4026...4027...4028...4029...4030...4031...4032...4033...4034...4035...4036...4037...4038...4039...4040...4041...4042...4043...4044...4045...4046...4047...4048...4049...4050...4051...4052...4053...4054...4055...4056...4057...4058...4059...4060...4061...4062...4063...4064...4065...4066...4067...4068...4069...4070...4071...4072...4073...4074...4075...4076...4077...4078...4079...4080...4081...4082...4083...4084...4085...4086...4087...4088...4089...4090...4091...4092...4093...4094...4095...4096...4097...4098...4099...4100...4101...4102...4103...4104...4105...4106...4107...4108...4109...4110...4111...4112...4113...4114...4115...4116...4117...4118...4119...4120...4121...4122...4123...4124...4125...4126...4127...4128...4129...4130...4131...4132...4133...4134...4135...4136...4137...4138...4139...4140...4141...4142...4143...4144...4145...4146...4147...4148...4149...4150...4151...4152...4153...4154...4155...4156...4157...4158...4159...4160...4161...4162...4163...4164...4165...4166...4167...4168...4169...4170...4171...4172...4173...4174...4175...4176...4177...4178...4179...4180...4181...4182...4183...4184...4185...4186...4187...4188...4189...4190...4191...4192...4193...4194...4195...4196...4197...4198...4199...4200...4201...4202...4203...4204...4205...4206...4207...4208...4209...4210...4211...4212...4213...4214...4215...4216...4217...4218...4220...4220...4221...4222...4223...4224...4225...4226...4227...4228...4229...4230...4231...4232...4233...4234...4235...4236...4237...4238...4239...4240...4241...4242...4243...4244...4245...4246...4247...4248...4249...4250...4251...4252...4253...4254...4255...4256...4257...4258...4259...4260...4261...4262...4263...4264...4265...4266...4267...4268...4269...4270...4271...4272...4273...4274...4275...4276...4277...4278...4279...4280...4281...4282...4283...4284...4285...4286...4287...4288...4289...4290...4291...4292...4293...4294...4295...4296...4297...4298...4299...4300...4301...4302...4303...4304...4305...4306...4307...4308...4309...4310...4311...4312...4313...4314...4315...4316...4317...4318...4319...4320...4321...4322...4323...4324...4325...4326...4327...4328...4329...4330...4331...4332...4333...4334...4335...4336...4337...4338...4339...4340...4341...4342...4343...4344...4345...4346...4347...4348...4349...4350...4351...4352...4353...4354...4355...4356...4357...4358...4359...4360...4361...4362...4363...4364...4365...4366...4367...4368...4369...4370...4371...4372...4373...4374...4375...4376...4377...4378...4379...4380...4381...4382...4383...4384...4385...4386...4387...4388...4389...4390...4391...4392...4393...4394...4395...4396...4397...4398...4399...4400...4401...4402...4403...4404...4405...4406...4407...4408...4409...4410...4411...4412...4413...4414...4415...4416...4417...4418...4419...4420...4421...4422...4423...4424...4425...4426...4427...4428...4429...4430...4431...4432...4433...4434...4435...4436...4437...4438...4439...4440...4441...4442...4443...4444...4445...4446...4447...4448...4449...4450...4451...4452...4453...4454...4455...4456...4457...4458...4459...4460...4461...4462...4463...4464...4465...4466...4467...4468...4469...4470...4471...4472...4473...4474...4475...4476...4477...4478...4479...4480...4481...4482...4483...4484...4485...4486...4487...4488...4489...4490...4491...4492...4493...4494...4495...4496...4497...4498...4499...4500...4501...4502...4503...4504...4505...4506...4507...4508...4509...4510...4511...4512...4513...4514...4515...4516...4517...4518...4519...4520...4521...4522...4523...4524...4525...4526...4527...4528...4529...4530...4531...4532...4533...4534...4535...4536...4537...4538...4539...4540...4541...4542...4543...4544...4545...4546...4547...4548...4549...4550...4551...4552...4553...4554...4555...4556...4557...4558...4559...4560...4561...4562...4563...4564...4565...4566...4567...4568...4569...4570...4571...4572...4573...4574...4575...4576...4577...4578...4579...4580...4581...4582...4583...4584...4585...4586...4587...4588...4589...4590...4591...4592...4593...4594...4595...4596...4597...4598...4599...4600...4601...4602...4603...4604...4605...4606...4607...4608...4609...4610...4611...4612...4613...4614...4615...4616...4617...4618...4619...4620...4621...4622...4623...4624...4625...4626...4627...4628...4629...4630...4631...4632...4633...4634...4635...4636...4637...4638...4639...4640...4641...4642...4643...4644...4645...4646...4647...4648...4649...4650...4651...4652...4653...4654...4655...4656...4657...4658...4659...4660...4661...4662...4663...4664...4665...4666...4667...4668...4669...4670...4671...4672...4673...4674...4675...4676...4677...4678...4679...4680...4681...4682...4683...4684...4685...4686...4687...4688...4689...4690...4691...4692...4693...4694...4695...4696...4697...4698...4699...4700...4701...4702...4703...4704...4705...4706...4707...4708...4709...4710...4711...4712...4713...4714...4715...4716...4717...4718...4719...4720...4721...4722...4723...4724...4725...4726...4727...4728...4729...4730...4731...4732...4733...4734...4735...4736...4737...4738...4739...4740...4741...4742...4743...4744...4745...4746...4747...4748...4749...4750...4751...4752...4753...4754...4755...4756...4757...4758...4759...4760...4761...4762...4763...4764...4765...4766...4767...4768...4769...4770...4771...4772...4773...4774...4775...4776...4777...4778...4779...4780...4781...4782...4783...4784...4785...4786...4787...4788...4789...4790...4791...4792...4793...4794...4795...4796...4797...4798...4799...4800...4801...4802...4803...4804...4805...4806...4807...4808...4809...4810...4811...4812...4813...4814...4815...4816...4817...4818...4819...4820...4821...4822...4823...4824...4825...4826...4827...4828...4829...4830...4831...4832...4833...4834...4835...4836...4837...4838...4839...4840...4841...4842...4843...4844...4845...4846...4847...4848...4849...4850...4851...4852...4853...4854...4855...4856...4857...4858...4859...4860...4861...4862...4863...4864...4865...4866...4867...4868...4869...4870...4871...4872...4873...4874...4875...4876...4877...4878...4879...4880...4881...4882...4883...4884...4885...4886...4887...4888...4889...4890...4891...4892...4893...4894...4895...4896...4897...4898...4899...4900...4901...4902...4903...4904...4905...4906...4907...4908...4909...4910...4911...4912...4913...4914...4915...4916...4917...4918...4919...4920...4921...4922...4923...4924...4925...4926...4927...4928...4929...4930...4931...4932...4933...4934...4935...4936...4937...4938...4939...4940...4941...4942...4943...4944...4945...4946...4947...4948...4949...4950...4951...4952...4953...4954...4955...4956...4957...4958...4959...4960...4961...4962...4963...4964...4965...4966...4967...4968...4969...4970...4971...4972...4973...4974...4975...4976...4977...4978...4979...4980...4981...4982...4983...4984...4985...4986...4987...4988...4989...4990...4991...4992...4993...4994...4995...4996...4997...4998...4999...5000...5001...5002...5003...5004...5005...5006...5007...5008...5009...5010...5011...5012...5013...5014...5015...5016...5017...5018...5019...5020...5021...5022...5023...5024...5025...5026...5027...5028...5029...5030...5031...5032...5033...5034...5035...5036...5037...5038...5039...5040...5041...5042...5043...5044...5045...5046...5047...5048...5049...5050...5051...5052...5053...5054...5055...5056...5057...5058...5059...5060...5061...5062...5063...5064...5065...5066...5067...5068...5069...5070...5071...5072...5073...5074...5075...5076...5077...5078...5079...5080...5081...5082...5083...5084...5085...5086...5087...5088...5089...5090...5091...5092...5093...5094...5095...5096...5097...5098...5099...5100...5101...5102...5103...5104...5105...5106...5107...5108...5109...5110...5111...5112...5113...5114...5115...5116...5117...5118...5119...5120...5121...5122...5123...5124...5125...5126...5127...5128...5129...5130...5131...5132...5133...5134...5135...5136...5137...5138...5139...5140...5141...5142...5143...5144...5145...5146...5147...5148...5149...5150...5151...5152...5153...5154...5155...5157...5157...5158...5159...5160...5161...5162...5163...5164...5165...5166...5167...5168...5169...5170...5171...5172...5173...5174...5175...5176...5177...5178...5179...5180...5181...5182...5183...5184...5185...5186...5187...5188...5189...5190...5191...5192...5193...5194...5195...5196...5197...5198...5199...5200...5201...5202...5203...5204...5205...5206...5207...5208...5209...5210...5211...5212...5213...5214...5215...5216...5217...5218...5219...5220...5221...5222...5223...5224...5225...5226...5227...5228...5229...5230...5231...5232...5233...5234...5235...5236...5237...5238...5239...5240...5241...5242...5243...5244...5245...5246...5247...5248...5249...5250...5251...5252...5253...5254...5255...5256...5257...5258...5259...5260...5261...5262...5263...5264...5265...5266...5267...5268...5269...5270...5271...5272...5273...5274...5275...5276...5277...5278...5279...5280...5281...5282...5283...5284...5285...5286...5287...5288...5289...5290...5291...5292...5293...5294...5295...5296...5297...5298...5299...5300...5301...5302...5303...5304...5305...5306...5307...5308...5309...5310...5311...5312...5313...5314...5315...5316...5317...5318...5319...5320...5321...5322...5323...5324...5325...5326...5327...5328...5329...5330...5331...5332...5333...5334...5335...5336...5337...5338...5339...5340...5341...5342...5343...5344...5345...5346...5347...5348...5349...5350...5351...5352...5353...5354...5355...5356...5357...5358...5359...5360...5361...5362...5363...5364...5365...5366...5367...5368...5369...5370...5371...5372...5373...5374...5375...5376...5377...5378...5379...5380...5381...5382...5383...5384...5385...5386...5387...5388...5389...5390...5391...5392...5393...5394...5395...5396...5397...5398...5399...5400...5401...5402...5403...5404...5405...5406...5407...5408...5409...5410...5411...5412...5413...5414...5415...5416...5417...5418...5419...5420...5421...5422...5423...5424...5425...5426...5427...5428...5429...5430...5431...5432...5433...5434...5435...5436...5437...5438...5439...5440...5441...5442...5443...5444...5445...5446...5447...5448...5449...5450...5451...5452...5453...5454...5455...5456...5457...5458...5459...5460...5461...5462...5463...5464...5465...5466...5467...5468...5469...5470...5471...5472...5473...5474...5475...5476...5477...5478...5479...5480...5481...5482...5483...5484...5485...5486...5487...5488...5489...5490...5491...5492...5493...5494...5495...5496...5497...5498...5499...5500...5501...5502...5503...5504...5505...5506...5507...5508...5509...5510...5511...5512...5513...5514...5515...5516...5517...5518...5519...5520...5521...5522...5523...5524...5525...5526...5527...5528...5529...5530...5531...5532...5533...5534...5535...5536...5537...5538...5539...5540...5541...5542...5543...5544...5545...5546...5547...5548...5549...5550...5551...5552...5553...5554...5555...5556...5557...5558...5559...5560...5561...5562...5563...5564...5565...5566...5567...5568...5569...5570...5571...5572...5573...5574...5575...5576...5577...5578...5579...5580...5581...5582...5583...5584...5585...5586...5587...5588...5589...5590...5591...5592...5593...5594...5595...5596...5597...5598...5599...5600...5601...5602...5603...5604...5605...5606...5607...5608...5609...5610...5611...5612...5613...5614...5615...5616...5617...5618...5619...5620...5621...5622...5623...5624...5626...5626...5627...5628...5629...5630...5631...5632...5633...5634...5635...5636...5637...5638...5639...5640...5641...5642...5643...5644...5645...5646...5647...5648...5649...5650...5651...5652...5653...5654...5655...5656...5657...5658...5659...5660...5661...5662...5663...5664...5665...5666...5667...5668...5669...5670...5671...5672...5673...5674...5675...5676...5677...5678...5679...5680...5681...5682...5683...5684...5685...5686...5687...5688...5689...5690...5691...5692...5693...5694...5695...5696...5697...5698...5699...5700...5701...5702...5703...5704...5705...5706...5707...5708...5709...5710...5711...5712...5713...5714...5715...5716...5717...5718...5719...5720...5721...5722...5723...5724...5725...5726...5727...5728...5729...5730...5731...5732...5733...5734...5735...5736...5737...5738...5739...5740...5741...5742...5743...5744...5745...5746...5747...5748...5749...5750...5751...5752...5753...5754...5755...5756...5757...5758...5759...5760...5761...5762...5763...5764...5765...5766...5767...5768...5769...5770...5771...5772...5773...5774...5775...5776...5777...5778...5779...5780...5781...5782...5783...5784...5785...5786...5787...5788...5789...5790...5791...5792...5793...5794...5795...5796...5797...5798...5799...5800...5801...5802...5803...5804...5805...5806...5807...5808...5809...5810...5811...5812...5813...5814...5815...5816...5817...5818...5819...5820...5821...5822...5823...5824...5825...5826...5827...5828...5829...5830...5831...5832...5833...5834...5835...5836...5837...5838...5839...5840...5841...5842...5843...5844...5845...5846...5847...5848...5849...5850...5851...5852...5853...5854...5855...5856...5857...5858...5859...5860...5861...5862...5863...5864...5865...5866...5867...5868...5869...5870...5871...5872...5873...5874...5875...5876...5877...5878...5879...5880...5881...5882...5883...5884...5885...5886...5887...5888...5889...5890...5891...5892...5893...5894...5895...5896...5897...5898...5899...5900...5901...5902...5903...5904...5905...5906...5907...5908...5909...5910...5911...5912...5913...5914...5915...5916...5917...5918...5919...5920...5921...5922...5923...5924...5925...5926...5927...5928...5929...5930...5931...5932...5933...5934...5935...5936...5937...5938...5939...5940...5941...5942...5943...5944...5945...5946...5947...5948...5949...5950...5951...5952...5953...5954...5955...5956...5957...5958...5959...5960...5961...5962...5963...5964...5965...5966...5967...5968...5969...5970...5971...5972...5973...5974...5975...5976...5977...5978...5979...5980...5981...5982...5983...5984...5985...5986...5987...5988...5989...5990...5991...5992...5993...5994...5995...5996...5997...5998...5999...6000...6001...6002...6003...6004...6005...6006...6007...6008...6009...6010...6011...6012...6013...6014...6015...6016...6017...6018...6019...6020...6021...6022...6023...6024...6025...6026...6027...6028...6029...6030...6031...6032...6033...6034...6035...6036...6037...6038...6039...6040...6041...6042...6043...6044...6045...6046...6047...6048...6049...6050...6051...6052...6053...6054...6055...6056...6057...6058...6059...6060...6061...6062...6063...6064...6065...6066...6067...6068...6069...6070...6071...6072...6073...6074...6075...6076...6077...6078...6079...6080...6081...6082...6083...6084...6085...6086...6087...6088...6089...6090...6091...6092...6093...6095...6095...6096...6097...6098...6099...6100...6101...6102...6103...6104...6105...6106...6107...6108...6109...6110...6111...6112...6113...6114...6115...6116...6117...6118...6119...6120...6121...6122...6123...6124...6125...6126...6127...6128...6129...6130...6131...6132...6133...6134...6135...6136...6137...6138...6139...6140...6141...6142...6143...6144...6145...6146...6147...6148...6149...6150...6151...6152...6153...6154...6155...6156...6157...6158...6159...6160...6161...6162...6163...6164...6165...6166...6167...6168...6169...6170...6171...6172...6173...6174...6175...6176...6177...6178...6179...6180...6181...6182...6183...6184...6185...6186...6187...6188...6189...6190...6191...6192...6193...6194...6195...6196...6197...6198...6199...6200...6201...6202...6203...6204...6205...6206...6207...6208...6209...6210...6211...6212...6213...6214...6215...6216...6217...6218...6219...6220...6221...6222...6223...6224...6225...6226...6227...6228...6229...6230...6231...6232...6233...6234...6235...6236...6237...6238...6239...6240...6241...6242...6243...6244...6245...6246...6247...6248...6249...6250...6251...6252...6253...6254...6255...6256...6257...6258...6259...6260...6261...6262...6263...6264...6265...6266...6267...6268...6269...6270...6271...6272...6273...6274...6275...6276...6277...6278...6279...6280...6281...6282...6283...6284...6285...6286...6287...6288...6289...6290...6291...6292...6293...6294...6295...6296...6297...6298...6299...6300...6301...6302...6303...6304...6305...6306...6307...6308...6309...6310...6311...6312...6313...6314...6315...6316...6317...6318...6319...6320...6321...6322...6323...6324...6325...6326...6327...6328...6329...6330...6331...6332...6333...6334...6335...6336...6337...6338...6339...6340...6341...6342...6343...6344...6345...6346...6347...6348...6349...6350...6351...6352...6353...6354...6355...6356...6357...6358...6359...6360...6361...6362...6363...6364...6365...6366...6367...6368...6369...6370...6371...6372...6373...6374...6375...6376...6377...6378...6379...6380...6381...6382...6383...6384...6385...6386...6387...6388...6389...6390...6391...6392...6393...6394...6395...6396...6397...6398...6399...6400...6401...6402...6403...6404...6405...6406...6407...6408...6409...6410...6411...6412...6413...6414...6415...6416...6417...6418...6419...6420...6421...6422...6423...6424...6425...6426...6427...6428...6429...6430...6431...6432...6433...6434...6435...6436...6437...6438...6439...6440...6441...6442...6443...6444...6445...6446...6447...6448...6449...6450...6451...6452...6453...6454...6455...6456...6457...6458...6459...6460...6461...6462...6463...6464...6465...6466...6467...6468...6469...6470...6471...6472...6473...6474...6475...6476...6477...6478...6479...6480...6481...6482...6483...6484...6485...6486...6487...6488...6489...6490...6491...6492...6493...6494...6495...6496...6497...6498...6499...6500...6501...6502...6503...6504...6505...6506...6507...6508...6509...6510...6511...6512...6513...6514...6515...6516...6517...6518...6519...6520...6521...6522...6523...6524...6525...6526...6527...6528...6529...6530...6531...6532...6533...6534...6535...6536...6537...6538...6539...6540...6541...6542...6543...6544...6545...6546...6547...6548...6549...6550...6551...6552...6553...6554...6555...6556...6557...6558...6559...6560...6561...6562...6564...6564...6565...6566...6567...6568...6569...6570...6571...6572...6573...6574...6575...6576...6577...6578...6579...6580...6581...6582...6583...6584...6585...6586...6587...6588...6589...6590...6591...6592...6593...6594...6595...6596...6597...6598...6599...6600...6601...6602...6603...6604...6605...6606...6607...6608...6609...6610...6611...6612...6613...6614...6615...6616...6617...6618...6619...6620...6621...6622...6623...6624...6625...6626...6627...6628...6629...6630...6631...6632...6633...6634...6635...6636...6637...6638...6639...6640...6641...6642...6643...6644...6645...6646...6647...6648...6649...6650...6651...6652...6653...6654...6655...6656...6657...6658...6659...6660...6661...6662...6663...6664...6665...6666...6667...6668...6669...6670...6671...6672...6673...6674...6675...6676...6677...6678...6679...6680...6681...6682...6683...6684...6685...6686...6687...6688...6689...6690...6691...6692...6693...6694...6695...6696...6697...6698...6699...6700...6701...6702...6703...6704...6705...6706...6707...6708...6709...6710...6711...6712...6713...6714...6715...6716...6717...6718...6719...6720...6721...6722...6723...6724...6725...6726...6727...6728...6729...6730...6731...6732...6733...6734...6735...6736...6737...6738...6739...6740...6741...6742...6743...6744...6745...6746...6747...6748...6749...6750...6751...6752...6753...6754...6755...6756...6757...6758...6759...6760...6761...6762...6763...6764...6765...6766...6767...6768...6769...6770...6771...6772...6773...6774...6775...6776...6777...6778...6779...6780...6781...6782...6783...6784...6785...6786...6787...6788...6789...6790...6791...6792...6793...6794...6795...6796...6797...6798...6799...6800...6801...6802...6803...6804...6805...6806...6807...6808...6809...6810...6811...6812...6813...6814...6815...6816...6817...6818...6819...6820...6821...6822...6823...6824...6825...6826...6827...6828...6829...6830...6831...6832...6833...6834...6835...6836...6837...6838...6839...6840...6841...6842...6843...6844...6845...6846...6847...6848...6849...6850...6851...6852...6853...6854...6855...6856...6857...6858...6859...6860...6861...6862...6863...6864...6865...6866...6867...6868...6869...6870...6871...6872...6873...6874...6875...6876...6877...6878...6879...6880...6881...6882...6883...6884...6885...6886...6887...6888...6889...6890...6891...6892...6893...6894...6895...6896...6897...6898...6899...6900...6901...6902...6903...6904...6905...6906...6907...6908...6909...6910...6911...6912...6913...6914...6915...6916...6917...6918...6919...6920...6921...6922...6923...6924...6925...6926...6927...6928...6929...6930...6931...6932...6933...6934...6935...6936...6937...6938...6939...6940...6941...6942...6943...6944...6945...6946...6947...6948...6949...6950...6951...6952...6953...6954...6955...6956...6957...6958...6959...6960...6961...6962...6963...6964...6965...6966...6967...6968...6969...6970...6971...6972...6973...6974...6975...6976...6977...6978...6979...6980...6981...6982...6983...6984...6985...6986...6987...6988...6989...6990...6991...6992...6993...6994...6995...6996...6997...6998...6999...7000...7001...7002...7003...7004...7005...7006...7007...7008...7009...7010...7011...7012...7013...7014...7015...7016...7017...7018...7019...7020...7021...7022...7023...7024...7025...7026...7027...7028...7029...7030...7031...7032...7033...7034...7035...7036...7037...7038...7039...7040...7041...7042...7043...7044...7045...7046...7047...7048...7049...7050...7051...7052...7053...7054...7055...7056...7057...7058...7059...7060...7061...7062...7063...7064...7065...7066...7067...7068...7069...7070...7071...7072...7073...7074...7075...7076...7077...7078...7079...7080...7081...7082...7083...7084...7085...7086...7087...7088...7089...7090...7091...7092...7093...7094...7095...7096...7097...7098...7099...7100...7101...7102...7103...7104...7105...7106...7107...7108...7109...7110...7111...7112...7113...7114...7115...7116...7117...7118...7119...7120...7121...7122...7123...7124...7125...7126...7127...7128...7129...7130...7131...7132...7133...7134...7135...7136...7137...7138...7139...7140...7141...7142...7143...7144...7145...7146...7147...7148...7149...7150...7151...7152...7153...7154...7155...7156...7157...7158...7159...7160...7161...7162...7163...7164...7165...7166...7167...7168...7169...7170...7171...7172...7173...7174...7175...7176...7177...7178...7179...7180...7181...7182...7183...7184...7185...7186...7187...7188...7189...7190...7191...7192...7193...7194...7195...7196...7197...7198...7199...7200...7201...7202...7203...7204...7205...7206...7207...7208...7209...7210...7211...7212...7213...7214...7215...7216...7217...7218...7219...7220...7221...7222...7223...7224...7225...7226...7227...7228...7229...7230...7231...7232...7233...7234...7235...7236...7237...7238...7239...7240...7241...7242...7243...7244...7245...7246...7247...7248...7249...7250...7251...7252...7253...7254...7255...7256...7257...7258...7259...7260...7261...7262...7263...7264...7265...7266...7267...7268...7269...7270...7271...7272...7273...7274...7275...7276...7277...7278...7279...7280...7281...7282...7283...7284...7285...7286...7287...7288...7289...7290...7291...7292...7293...7294...7295...7296...7297...7298...7299...7300...7301...7302...7303...7304...7305...7306...7307...7308...7309...7310...7311...7312...7313...7314...7315...7316...7317...7318...7319...7320...7321...7322...7323...7324...7325...7326...7327...7328...7329...7330...7331...7332...7333...7334...7335...7336...7337...7338...7339...7340...7341...7342...7343...7344...7345...7346...7347...7348...7349...7350...7351...7352...7353...7354...7355...7356...7357...7358...7359...7360...7361...7362...7363...7364...7365...7366...7367...7368...7369...7370...7371...7372...7373...7374...7375...7376...7377...7378...7379...7380...7381...7382...7383...7384...7385...7386...7387...7388...7389...7390...7391...7392...7393...7394...7395...7396...7397...7398...7399...7400...7401...7402...7403...7404...7405...7406...7407...7408...7409...7410...7411...7412...7413...7414...7415...7416...7417...7418...7419...7420...7421...7422...7423...7424...7425...7426...7427...7428...7429...7430...7431...7432...7433...7434...7435...7436...7437...7438...7439...7440...7441...7442...7443...7444...7445...7446...7447...7448...7449...7450...7451...7452...7453...7454...7455...7456...7457...7458...7459...7460...7461...7462...7463...7464...7465...7466...7467...7468...7469...7470...7471...7472...7473...7474...7475...7476...7477...7478...7479...7480...7481...7482...7483...7484...7485...7486...7487...7488...7489...7490...7491...7492...7493...7494...7495...7496...7497...7498...7499...7501...7501...7502...7503...7504...7505...7506...7507...7508...7509...7510...7511...7512...7513...7514...7515...7516...7517...7518...7519...7520...7521...7522...7523...7524...7525...7526...7527...7528...7529...7530...7531...7532...7533...7534...7535...7536...7537...7538...7539...7540...7541...7542...7543...7544...7545...7546...7547...7548...7549...7550...7551...7552...7553...7554...7555...7556...7557...7558...7559...7560...7561...7562...7563...7564...7565...7566...7567...7568...7569...7570...7571...7572...7573...7574...7575...7576...7577...7578...7579...7580...7581...7582...7583...7584...7585...7586...7587...7588...7589...7590...7591...7592...7593...7594...7595...7596...7597...7598...7599...7600...7601...7602...7603...7604...7605...7606...7607...7608...7609...7610...7611...7612...7613...7614...7615...7616...7617...7618...7619...7620...7621...7622...7623...7624...7625...7626...7627...7628...7629...7630...7631...7632...7633...7634...7635...7636...7637...7638...7639...7640...7641...7642...7643...7644...7645...7646...7647...7648...7649...7650...7651...7652...7653...7654...7655...7656...7657...7658...7659...7660...7661...7662...7663...7664...7665...7666...7667...7668...7669...7670...7671...7672...7673...7674...7675...7676...7677...7678...7679...7680...7681...7682...7683...7684...7685...7686...7687...7688...7689...7690...7691...7692...7693...7694...7695...7696...7697...7698...7699...7700...7701...7702...7703...7704...7705...7706...7707...7708...7709...7710...7711...7712...7713...7714...7715...7716...7717...7718...7719...7720...7721...7722...7723...7724...7725...7726...7727...7728...7729...7730...7731...7732...7733...7734...7735...7736...7737...7738...7739...7740...7741...7742...7743...7744...7745...7746...7747...7748...7749...7750...7751...7752...7753...7754...7755...7756...7757...7758...7759...7760...7761...7762...7763...7764...7765...7766...7767...7768...7769...7770...7771...7772...7773...7774...7775...7776...7777...7778...7779...7780...7781...7782...7783...7784...7785...7786...7787...7788...7789...7790...7791...7792...7793...7794...7795...7796...7797...7798...7799...7800...7801...7802...7803...7804...7805...7806...7807...7808...7809...7810...7811...7812...7813...7814...7815...7816...7817...7818...7819...7820...7821...7822...7823...7824...7825...7826...7827...7828...7829...7830...7831...7832...7833...7834...7835...7836...7837...7838...7839...7840...7841...7842...7843...7844...7845...7846...7847...7848...7849...7850...7851...7852...7853...7854...7855...7856...7857...7858...7859...7860...7861...7862...7863...7864...7865...7866...7867...7868...7869...7870...7871...7872...7873...7874...7875...7876...7877...7878...7879...7880...7881...7882...7883...7884...7885...7886...7887...7888...7889...7890...7891...7892...7893...7894...7895...7896...7897...7898...7899...7900...7901...7902...7903...7904...7905...7906...7907...7908...7909...7910...7911...7912...7913...7914...7915...7916...7917...7918...7919...7920...7921...7922...7923...7924...7925...7926...7927...7928...7929...7930...7931...7932...7933...7934...7935...7936...7937...7938...7939...7940...7941...7942...7943...7944...7945...7946...7947...7948...7949...7950...7951...7952...7953...7954...7955...7956...7957...7958...7959...7960...7961...7962...7963...7964...7965...7966...7967...7968...7970...7970...7971...7972...7973...7974...7975...7976...7977...7978...7979...7980...7981...7982...7983...7984...7985...7986...7987...7988...7989...7990...7991...7992...7993...7994...7995...7996...7997...7998...7999...8000...8001...8002...8003...8004...8005...8006...8007...8008...8009...8010...8011...8012...8013...8014...8015...8016...8017...8018...8019...8020...8021...8022...8023...8024...8025...8026...8027...8028...8029...8030...8031...8032...8033...8034...8035...8036...8037...8038...8039...8040...8041...8042...8043...8044...8045...8046...8047...8048...8049...8050...8051...8052...8053...8054...8055...8056...8057...8058...8059...8060...8061...8062...8063...8064...8065...8066...8067...8068...8069...8070...8071...8072...8073...8074...8075...8076...8077...8078...8079...8080...8081...8082...8083...8084...8085...8086...8087...8088...8089...8090...8091...8092...8093...8094...8095...8096...8097...8098...8099...8100...8101...8102...8103...8104...8105...8106...8107...8108...8109...8110...8111...8112...8113...8114...8115...8116...8117...8118...8119...8120...8121...8122...8123...8124...8125...8126...8127...8128...8129...8130...8131...8132...8133...8134...8135...8136...8137...8138...8139...8140...8141...8142...8143...8144...8145...8146...8147...8148...8149...8150...8151...8152...8153...8154...8155...8156...8157...8158...8159...8160...8161...8162...8163...8164...8165...8166...8167...8168...8169...8170...8171...8172...8173...8174...8175...8176...8177...8178...8179...8180...8181...8182...8183...8184...8185...8186...8187...8188...8189...8190...8191...8192...8193...8194...8195...8196...8197...8198...8199...8200...8201...8202...8203...8204...8205...8206...8207...8208...8209...8210...8211...8212...8213...8214...8215...8216...8217...8218...8219...8220...8221...8222...8223...8224...8225...8226...8227...8228...8229...8230...8231...8232...8233...8234...8235...8236...8237...8238...8239...8240...8241...8242...8243...8244...8245...8246...8247...8248...8249...8250...8251...8252...8253...8254...8255...8256...8257...8258...8259...8260...8261...8262...8263...8264...8265...8266...8267...8268...8269...8270...8271...8272...8273...8274...8275...8276...8277...8278...8279...8280...8281...8282...8283...8284...8285...8286...8287...8288...8289...8290...8291...8292...8293...8294...8295...8296...8297...8298...8299...8300...8301...8302...8303...8304...8305...8306...8307...8308...8309...8310...8311...8312...8313...8314...8315...8316...8317...8318...8319...8320...8321...8322...8323...8324...8325...8326...8327...8328...8329...8330...8331...8332...8333...8334...8335...8336...8337...8338...8339...8340...8341...8342...8343...8344...8345...8346...8347...8348...8349...8350...8351...8352...8353...8354...8355...8356...8357...8358...8359...8360...8361...8362...8363...8364...8365...8366...8367...8368...8369...8370...8371...8372...8373...8374...8375...8376...8377...8378...8379...8380...8381...8382...8383...8384...8385...8386...8387...8388...8389...8390...8391...8392...8393...8394...8395...8396...8397...8398...8399...8400...8401...8402...8403...8404...8405...8406...8407...8408...8409...8410...8411...8412...8413...8414...8415...8416...8417...8418...8419...8420...8421...8422...8423...8424...8425...8426...8427...8428...8429...8430...8431...8432...8433...8434...8435...8436...8437...8439...8439...8440...8441...8442...8443...8444...8445...8446...8447...8448...8449...8450...8451...8452...8453...8454...8455...8456...8457...8458...8459...8460...8461...8462...8463...8464...8465...8466...8467...8468...8469...8470...8471...8472...8473...8474...8475...8476...8477...8478...8479...8480...8481...8482...8483...8484...8485...8486...8487...8488...8489...8490...8491...8492...8493...8494...8495...8496...8497...8498...8499...8500...8501...8502...8503...8504...8505...8506...8507...8508...8509...8510...8511...8512...8513...8514...8515...8516...8517...8518...8519...8520...8521...8522...8523...8524...8525...8526...8527...8528...8529...8530...8531...8532...8533...8534...8535...8536...8537...8538...8539...8540...8541...8542...8543...8544...8545...8546...8547...8548...8549...8550...8551...8552...8553...8554...8555...8556...8557...8558...8559...8560...8561...8562...8563...8564...8565...8566...8567...8568...8569...8570...8571...8572...8573...8574...8575...8576...8577...8578...8579...8580...8581...8582...8583...8584...8585...8586...8587...8588...8589...8590...8591...8592...8593...8594...8595...8596...8597...8598...8599...8600...8601...8602...8603...8604...8605...8606...8607...8608...8609...8610...8611...8612...8613...8614...8615...8616...8617...8618...8619...8620...8621...8622...8623...8624...8625...8626...8627...8628...8629...8630...8631...8632...8633...8634...8635...8636...8637...8638...8639...8640...8641...8642...8643...8644...8645...8646...8647...8648...8649...8650...8651...8652...8653...8654...8655...8656...8657...8658...8659...8660...8661...8662...8663...8664...8665...8666...8667...8668...8669...8670...8671...8672...8673...8674...8675...8676...8677...8678...8679...8680...8681...8682...8683...8684...8685...8686...8687...8688...8689...8690...8691...8692...8693...8694...8695...8696...8697...8698...8699...8700...8701...8702...8703...8704...8705...8706...8707...8708...8709...8710...8711...8712...8713...8714...8715...8716...8717...8718...8719...8720...8721...8722...8723...8724...8725...8726...8727...8728...8729...8730...8731...8732...8733...8734...8735...8736...8737...8738...8739...8740...8741...8742...8743...8744...8745...8746...8747...8748...8749...8750...8751...8752...8753...8754...8755...8756...8757...8758...8759...8760...8761...8762...8763...8764...8765...8766...8767...8768...8769...8770...8771...8772...8773...8774...8775...8776...8777...8778...8779...8780...8781...8782...8783...8784...8785...8786...8787...8788...8789...8790...8791...8792...8793...8794...8795...8796...8797...8798...8799...8800...8801...8802...8803...8804...8805...8806...8807...8808...8809...8810...8811...8812...8813...8814...8815...8816...8817...8818...8819...8820...8821...8822...8823...8824...8825...8826...8827...8828...8829...8830...8831...8832...8833...8834...8835...8836...8837...8838...8839...8840...8841...8842...8843...8844...8845...8846...8847...8848...8849...8850...8851...8852...8853...8854...8855...8856...8857...8858...8859...8860...8861...8862...8863...8864...8865...8866...8867...8868...8869...8870...8871...8872...8873...8874...8875...8876...8877...8878...8879...8880...8881...8882...8883...8884...8885...8886...8887...8888...8889...8890...8891...8892...8893...8894...8895...8896...8897...8898...8899...8900...8901...8902...8903...8904...8905...8906...8908...8908...8909...8910...8911...8912...8913...8914...8915...8916...8917...8918...8919...8920...8921...8922...8923...8924...8925...8926...8927...8928...8929...8930...8931...8932...8933...8934...8935...8936...8937...8938...8939...8940...8941...8942...8943...8944...8945...8946...8947...8948...8949...8950...8951...8952...8953...8954...8955...8956...8957...8958...8959...8960...8961...8962...8963...8964...8965...8966...8967...8968...8969...8970...8971...8972...8973...8974...8975...8976...8977...8978...8979...8980...8981...8982...8983...8984...8985...8986...8987...8988...8989...8990...8991...8992...8993...8994...8995...8996...8997...8998...8999...9000...9001...9002...9003...9004...9005...9006...9007...9008...9009...9010...9011...9012...9013...9014...9015...9016...9017...9018...9019...9020...9021...9022...9023...9024...9025...9026...9027...9028...9029...9030...9031...9032...9033...9034...9035...9036...9037...9038...9039...9040...9041...9042...9043...9044...9045...9046...9047...9048...9049...9050...9051...9052...9053...9054...9055...9056...9057...9058...9059...9060...9061...9062...9063...9064...9065...9066...9067...9068...9069...9070...9071...9072...9073...9074...9075...9076...9077...9078...9079...9080...9081...9082...9083...9084...9085...9086...9087...9088...9089...9090...9091...9092...9093...9094...9095...9096...9097...9098...9099...9100...9101...9102...9103...9104...9105...9106...9107...9108...9109...9110...9111...9112...9113...9114...9115...9116...9117...9118...9119...9120...9121...9122...9123...9124...9125...9126...9127...9128...9129...9130...9131...9132...9133...9134...9135...9136...9137...9138...9139...9140...9141...9142...9143...9144...9145...9146...9147...9148...9149...9150...9151...9152...9153...9154...9155...9156...9157...9158...9159...9160...9161...9162...9163...9164...9165...9166...9167...9168...9169...9170...9171...9172...9173...9174...9175...9176...9177...9178...9179...9180...9181...9182...9183...9184...9185...9186...9187...9188...9189...9190...9191...9192...9193...9194...9195...9196...9197...9198...9199...9200...9201...9202...9203...9204...9205...9206...9207...9208...9209...9210...9211...9212...9213...9214...9215...9216...9217...9218...9219...9220...9221...9222...9223...9224...9225...9226...9227...9228...9229...9230...9231...9232...9233...9234...9235...9236...9237...9238...9239...9240...9241...9242...9243...9244...9245...9246...9247...9248...9249...9250...9251...9252...9253...9254...9255...9256...9257...9258...9259...9260...9261...9262...9263...9264...9265...9266...9267...9268...9269...9270...9271...9272...9273...9274...9275...9276...9277...9278...9279...9280...9281...9282...9283...9284...9285...9286...9287...9288...9289...9290...9291...9292...9293...9294...9295...9296...9297...9298...9299...9300...9301...9302...9303...9304...9305...9306...9307...9308...9309...9310...9311...9312...9313...9314...9315...9316...9317...9318...9319...9320...9321...9322...9323...9324...9325...9326...9327...9328...9329...9330...9331...9332...9333...9334...9335...9336...9337...9338...9339...9340...9341...9342...9343...9344...9345...9346...9347...9348...9349...9350...9351...9352...9353...9354...9355...9356...9357...9358...9359...9360...9361...9362...9363...9364...9365...9366...9367...9368...9369...9370...9371...9372...9373...9374...9375...9376...9377...9378...9379...9380...9381...9382...9383...9384...9385...9386...9387...9388...9389...9390...9391...9392...9393...9394...9395...9396...9397...9398...9399...9400...9401...9402...9403...9404...9405...9406...9407...9408...9409...9410...9411...9412...9413...9414...9415...9416...9417...9418...9419...9420...9421...9422...9423...9424...9425...9426...9427...9428...9429...9430...9431...9432...9433...9434...9435...9436...9437...9438...9439...9440...9441...9442...9443...9444...9445...9446...9447...9448...9449...9450...9451...9452...9453...9454...9455...9456...9457...9458...9459...9460...9461...9462...9463...9464...9465...9466...9467...9468...9469...9470...9471...9472...9473...9474...9475...9476...9477...9478...9479...9480...9481...9482...9483...9484...9485...9486...9487...9488...9489...9490...9491...9492...9493...9494...9495...9496...9497...9498...9499...9500...9501...9502...9503...9504...9505...9506...9507...9508...9509...9510...9511...9512...9513...9514...9515...9516...9517...9518...9519...9520...9521...9522...9523...9524...9525...9526...9527...9528...9529...9530...9531...9532...9533...9534...9535...9536...9537...9538...9539...9540...9541...9542...9543...9544...9545...9546...9547...9548...9549...9550...9551...9552...9553...9554...9555...9556...9557...9558...9559...9560...9561...9562...9563...9564...9565...9566...9567...9568...9569...9570...9571...9572...9573...9574...9575...9576...9577...9578...9579...9580...9581...9582...9583...9584...9585...9586...9587...9588...9589...9590...9591...9592...9593...9594...9595...9596...9597...9598...9599...9600...9601...9602...9603...9604...9605...9606...9607...9608...9609...9610...9611...9612...9613...9614...9615...9616...9617...9618...9619...9620...9621...9622...9623...9624...9625...9626...9627...9628...9629...9630...9631...9632...9633...9634...9635...9636...9637...9638...9639...9640...9641...9642...9643...9644...9645...9646...9647...9648...9649...9650...9651...9652...9653...9654...9655...9656...9657...9658...9659...9660...9661...9662...9663...9664...9665...9666...9667...9668...9669...9670...9671...9672...9673...9674...9675...9676...9677...9678...9679...9680...9681...9682...9683...9684...9685...9686...9687...9688...9689...9690...9691...9692...9693...9694...9695...9696...9697...9698...9699...9700...9701...9702...9703...9704...9705...9706...9707...9708...9709...9710...9711...9712...9713...9714...9715...9716...9717...9718...9719...9720...9721...9722...9723...9724...9725...9726...9727...9728...9729...9730...9731...9732...9733...9734...9735...9736...9737...9738...9739...9740...9741...9742...9743...9744...9745...9746...9747...9748...9749...9750...9751...9752...9753...9754...9755...9756...9757...9758...9759...9760...9761...9762...9763...9764...9765...9766...9767...9768...9769...9770...9771...9772...9773...9774...9775...9776...9777...9778...9779...9780...9781...9782...9783...9784...9785...9786...9787...9788...9789...9790...9791...9792...9793...9794...9795...9796...9797...9798...9799...9800...9801...9802...9803...9804...9805...9806...9807...9808...9809...9810...9811...9812...9813...9814...9815...9816...9817...9818...9819...9820...9821...9822...9823...9824...9825...9826...9827...9828...9829...9830...9831...9832...9833...9834...9835...9836...9837...9838...9839...9840...9841...9842...9843...9845...9845...9846...9847...9848...9849...9850...9851...9852...9853...9854...9855...9856...9857...9858...9859...9860...9861...9862...9863...9864...9865...9866...9867...9868...9869...9870...9871...9872...9873...9874...9875...9876...9877...9878...9879...9880...9881...9882...9883...9884...9885...9886...9887...9888...9889...9890...9891...9892...9893...9894...9895...9896...9897...9898...9899...9900...9901...9902...9903...9904...9905...9906...9907...9908...9909...9910...9911...9912...9913...9914...9915...9916...9917...9918...9919...9920...9921...9922...9923...9924...9925...9926...9927...9928...9929...9930...9931...9932...9933...9934...9935...9936...9937...9938...9939...9940...9941...9942...9943...9944...9945...9946...9947...9948...9949...9950...9951...9952...9953...9954...9955...9956...9957...9958...9959...9960...9961...9962...9963...9964...9965...9966...9967...9968...9969...9970...9971...9972...9973...9974...9975...9976...9977...9978...9979...9980...9981...9982...9983...9984...9985...9986...9987...9988...9989...9990...9991...9992...9993...9994...9995...9996...9997...9998...9999...10000...10001...10002...10003...10004...10005...10006...10007...10008...10009...10010...10011...10012...10013...10014...10015...10016...10017...10018...10019...10020...10021...10022...10023...10024...10025...10026...10027...10028...10029...10030...10031...10032...10033...10034...10035...10036...10037...10038...10039...10040...10041...10042...10043...10044...10045...10046...10047...10048...10049...10050...10051...10052...10053...10054...10055...10056...10057...10058...10059...10060...10061...10062...10063...10064...10065...10066...10067...10068...10069...10070...10071...10072...10073...10074...10075...10076...10077...10078...10079...10080...10081...10082...10083...10084...10085...10086...10087...10088...10089...10090...10091...10092...10093...10094...10095...10096...10097...10098...10099...10100...10101...10102...10103...10104...10105...10106...10107...10108...10109...10110...10111...10112...10113...10114...10115...10116...10117...10118...10119...10120...10121...10122...10123...10124...10125...10126...10127...10128...10129...10130...10131...10132...10133...10134...10135...10136...10137...10138...10139...10140...10141...10142...10143...10144...10145...10146...10147...10148...10149...10150...10151...10152...10153...10154...10155...10156...10157...10158...10159...10160...10161...10162...10163...10164...10165...10166...10167...10168...10169...10170...10171...10172...10173...10174...10175...10176...10177...10178...10179...10180...10181...10182...10183...10184...10185...10186...10187...10188...10189...10190...10191...10192...10193...10194...10195...10196...10197...10198...10199...10200...10201...10202...10203...10204...10205...10206...10207...10208...10209...10210...10211...10212...10213...10214...10215...10216...10217...10218...10219...10220...10221...10222...10223...10224...10225...10226...10227...10228...10229...10230...10231...10232...10233...10234...10235...10236...10237...10238...10239...10240...10241...10242...10243...10244...10245...10246...10247...10248...10249...10250...10251...10252...10253...10254...10255...10256...10257...10258...10259...10260...10261...10262...10263...10264...10265...10266...10267...10268...10269...10270...10271...10272...10273...10274...10275...10276...10277...10278...10279...10280...10281...10282...10283...10284...10285...10286...10287...10288...10289...10290...10291...10292...10293...10294...10295...10296...10297...10298...10299...10300...10301...10302...10303...10304...10305...10306...10307...10308...10309...10310...10311...10312...10314...10314...10315...10316...10317...10318...10319...10320...10321...10322...10323...10324...10325...10326...10327...10328...10329...10330...10331...10332...10333...10334...10335...10336...10337...10338...10339...10340...10341...10342...10343...10344...10345...10346...10347...10348...10349...10350...10351...10352...10353...10354...10355...10356...10357...10358...10359...10360...10361...10362...10363...10364...10365...10366...10367...10368...10369...10370...10371...10372...10373...10374...10375...10376...10377...10378...10379...10380...10381...10382...10383...10384...10385...10386...10387...10388...10389...10390...10391...10392...10393...10394...10395...10396...10397...10398...10399...10400...10401...10402...10403...10404...10405...10406...10407...10408...10409...10410...10411...10412...10413...10414...10415...10416...10417...10418...10419...10420...10421...10422...10423...10424...10425...10426...10427...10428...10429...10430...10431...10432...10433...10434...10435...10436...10437...10438...10439...10440...10441...10442...10443...10444...10445...10446...10447...10448...10449...10450...10451...10452...10453...10454...10455...10456...10457...10458...10459...10460...10461...10462...10463...10464...10465...10466...10467...10468...10469...10470...10471...10472...10473...10474...10475...10476...10477...10478...10479...10480...10481...10482...10483...10484...10485...10486...10487...10488...10489...10490...10491...10492...10493...10494...10495...10496...10497...10498...10499...10500...10501...10502...10503...10504...10505...10506...10507...10508...10509...10510...10511...10512...10513...10514...10515...10516...10517...10518...10519...10520...10521...10522...10523...10524...10525...10526...10527...10528...10529...10530...10531...10532...10533...10534...10535...10536...10537...10538...10539...10540...10541...10542...10543...10544...10545...10546...10547...10548...10549...10550...10551...10552...10553...10554...10555...10556...10557...10558...10559...10560...10561...10562...10563...10564...10565...10566...10567...10568...10569...10570...10571...10572...10573...10574...10575...10576...10577...10578...10579...10580...10581...10582...10583...10584...10585...10586...10587...10588...10589...10590...10591...10592...10593...10594...10595...10596...10597...10598...10599...10600...10601...10602...10603...10604...10605...10606...10607...10608...10609...10610...10611...10612...10613...10614...10615...10616...10617...10618...10619...10620...10621...10622...10623...10624...10625...10626...10627...10628...10629...10630...10631...10632...10633...10634...10635...10636...10637...10638...10639...10640...10641...10642...10643...10644...10645...10646...10647...10648...10649...10650...10651...10652...10653...10654...10655...10656...10657...10658...10659...10660...10661...10662...10663...10664...10665...10666...10667...10668...10669...10670...10671...10672...10673...10674...10675...10676...10677...10678...10679...10680...10681...10682...10683...10684...10685...10686...10687...10688...10689...10690...10691...10692...10693...10694...10695...10696...10697...10698...10699...10700...10701...10702...10703...10704...10705...10706...10707...10708...10709...10710...10711...10712...10713...10714...10715...10716...10717...10718...10719...10720...10721...10722...10723...10724...10725...10726...10727...10728...10729...10730...10731...10732...10733...10734...10735...10736...10737...10738...10739...10740...10741...10742...10743...10744...10745...10746...10747...10748...10749...10750...10751...10752...10753...10754...10755...10756...10757...10758...10759...10760...10761...10762...10763...10764...10765...10766...10767...10768...10769...10770...10771...10772...10773...10774...10775...10776...10777...10778...10779...10780...10781...10783...10783...10784...10785...10786...10787...10788...10789...10790...10791...10792...10793...10794...10795...10796...10797...10798...10799...10800...10801...10802...10803...10804...10805...10806...10807...10808...10809...10810...10811...10812...10813...10814...10815...10816...10817...10818...10819...10820...10821...10822...10823...10824...10825...10826...10827...10828...10829...10830...10831...10832...10833...10834...10835...10836...10837...10838...10839...10840...10841...10842...10843...10844...10845...10846...10847...10848...10849...10850...10851...10852...10853...10854...10855...10856...10857...10858...10859...10860...10861...10862...10863...10864...10865...10866...10867...10868...10869...10870...10871...10872...10873...10874...10875...10876...10877...10878...10879...10880...10881...10882...10883...10884...10885...10886...10887...10888...10889...10890...10891...10892...10893...10894...10895...10896...10897...10898...10899...10900...10901...10902...10903...10904...10905...10906...10907...10908...10909...10910...10911...10912...10913...10914...10915...10916...10917...10918...10919...10920...10921...10922...10923...10924...10925...10926...10927...10928...10929...10930...10931...10932...10933...10934...10935...10936...10937...10938...10939...10940...10941...10942...10943...10944...10945...10946...10947...10948...10949...10950...10951...10952...10953...10954...10955...10956...10957...10958...10959...10960...10961...10962...10963...10964...10965...10966...10967...10968...10969...10970...10971...10972...10973...10974...10975...10976...10977...10978...10979...10980...10981...10982...10983...10984...10985...10986...10987...10988...10989...10990...10991...10992...10993...10994...10995...10996...10997...10998...10999...11000...11001...11002...11003...11004...11005...11006...11007...11008...11009...11010...11011...11012...11013...11014...11015...11016...11017...11018...11019...11020...11021...11022...11023...11024...11025...11026...11027...11028...11029...11030...11031...11032...11033...11034...11035...11036...11037...11038...11039...11040...11041...11042...11043...11044...11045...11046...11047...11048...11049...11050...11051...11052...11053...11054...11055...11056...11057...11058...11059...11060...11061...11062...11063...11064...11065...11066...11067...11068...11069...11070...11071...11072...11073...11074...11075...11076...11077...11078...11079...11080...11081...11082...11083...11084...11085...11086...11087...11088...11089...11090...11091...11092...11093...11094...11095...11096...11097...11098...11099...11100...11101...11102...11103...11104...11105...11106...11107...11108...11109...11110...11111...11112...11113...11114...11115...11116...11117...11118...11119...11120...11121...11122...11123...11124...11125...11126...11127...11128...11129...11130...11131...11132...11133...11134...11135...11136...11137...11138...11139...11140...11141...11142...11143...11144...11145...11146...11147...11148...11149...11150...11151...11152...11153...11154...11155...11156...11157...11158...11159...11160...11161...11162...11163...11164...11165...11166...11167...11168...11169...11170...11171...11172...11173...11174...11175...11176...11177...11178...11179...11180...11181...11182...11183...11184...11185...11186...11187...11188...11189...11190...11191...11192...11193...11194...11195...11196...11197...11198...11199...11200...11201...11202...11203...11204...11205...11206...11207...11208...11209...11210...11211...11212...11213...11214...11215...11216...11217...11218...11219...11220...11221...11222...11223...11224...11225...11226...11227...11228...11229...11230...11231...11232...11233...11234...11235...11236...11237...11238...11239...11240...11241...11242...11243...11244...11245...11246...11247...11248...11249...11250...11252...11252...11253...11254...11255...11256...11257...11258...11259...11260...11261...11262...11263...11264...11265...11266...11267...11268...11269...11270...11271...11272...11273...11274...11275...11276...11277...11278...11279...11280...11281...11282...11283...11284...11285...11286...11287...11288...11289...11290...11291...11292...11293...11294...11295...11296...11297...11298...11299...11300...11301...11302...11303...11304...11305...11306...11307...11308...11309...11310...11311...11312...11313...11314...11315...11316...11317...11318...11319...11320...11321...11322...11323...11324...11325...11326...11327...11328...11329...11330...11331...11332...11333...11334...11335...11336...11337...11338...11339...11340...11341...11342...11343...11344...11345...11346...11347...11348...11349...11350...11351...11352...11353...11354...11355...11356...11357...11358...11359...11360...11361...11362...11363...11364...11365...11366...11367...11368...11369...11370...11371...11372...11373...11374...11375...11376...11377...11378...11379...11380...11381...11382...11383...11384...11385...11386...11387...11388...11389...11390...11391...11392...11393...11394...11395...11396...11397...11398...11399...11400...11401...11402...11403...11404...11405...11406...11407...11408...11409...11410...11411...11412...11413...11414...11415...11416...11417...11418...11419...11420...11421...11422...11423...11424...11425...11426...11427...11428...11429...11430...11431...11432...11433...11434...11435...11436...11437...11438...11439...11440...11441...11442...11443...11444...11445...11446...11447...11448...11449...11450...11451...11452...11453...11454...11455...11456...11457...11458...11459...11460...11461...11462...11463...11464...11465...11466...11467...11468...11469...11470...11471...11472...11473...11474...11475...11476...11477...11478...11479...11480...11481...11482...11483...11484...11485...11486...11487...11488...11489...11490...11491...11492...11493...11494...11495...11496...11497...11498...11499...11500...11501...11502...11503...11504...11505...11506...11507...11508...11509...11510...11511...11512...11513...11514...11515...11516...11517...11518...11519...11520...11521...11522...11523...11524...11525...11526...11527...11528...11529...11530...11531...11532...11533...11534...11535...11536...11537...11538...11539...11540...11541...11542...11543...11544...11545...11546...11547...11548...11549...11550...11551...11552...11553...11554...11555...11556...11557...11558...11559...11560...11561...11562...11563...11564...11565...11566...11567...11568...11569...11570...11571...11572...11573...11574...11575...11576...11577...11578...11579...11580...11581...11582...11583...11584...11585...11586...11587...11588...11589...11590...11591...11592...11593...11594...11595...11596...11597...11598...11599...11600...11601...11602...11603...11604...11605...11606...11607...11608...11609...11610...11611...11612...11613...11614...11615...11616...11617...11618...11619...11620...11621...11622...11623...11624...11625...11626...11627...11628...11629...11630...11631...11632...11633...11634...11635...11636...11637...11638...11639...11640...11641...11642...11643...11644...11645...11646...11647...11648...11649...11650...11651...11652...11653...11654...11655...11656...11657...11658...11659...11660...11661...11662...11663...11664...11665...11666...11667...11668...11669...11670...11671...11672...11673...11674...11675...11676...11677...11678...11679...11680...11681...11682...11683...11684...11685...11686...11687...11688...11689...11690...11691...11692...11693...11694...11695...11696...11697...11698...11699...11700...11701...11702...11703...11704...11705...11706...11707...11708...11709...11710...11711...11712...11713...11714...11715...11716...11717...11718...11719..."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push("Pass 1\n"); + __toffee.lineno = 3; + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 8; + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.out.push("Pass 2\n"); + __toffee.lineno = 10; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + /* + print "FAIL FAIL FAIL" + #{ foo } + */ + + __toffee.state = states.TOFFEE; + __toffee.lineno = 19; + __toffee.out.push("\n"); + __toffee.lineno = 20; + __toffee.out.push("Pass 3\n"); + __toffee.lineno = 21; + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push("Pass 1\n"); + __toffee.lineno = 3; + __toffee.out.push("\n"); + __toffee.lineno = 4; + __toffee.out.push("Pass 2\n"); + __toffee.lineno = 5; + __toffee.out.push("\n"); + __toffee.lineno = 6; + __toffee.out.push("Pass 3\n"); + __toffee.lineno = 7; + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states, w, x, y, z; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + x = '"Hello world"'; + y = ''; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + __toffee.state = states.TOFFEE; + __toffee.lineno = 6; + __toffee.out.push("

\n"); + __toffee.lineno = 7; + __toffee.out.push(" default x = "); + __toffee.out.push("" + (x != null ? escape(x) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 8; + __toffee.out.push(" default y = "); + __toffee.out.push("" + (y != null ? escape(y) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.out.push(" default z = "); + __toffee.out.push("" + (z != null ? escape(z) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 10; + __toffee.out.push(" default w = "); + __toffee.out.push("" + (w != null ? escape(w) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 11; + __toffee.out.push("

\n"); + __toffee.lineno = 12; + __toffee.out.push("

\n"); + __toffee.lineno = 13; + __toffee.out.push(" raw x = "); + __toffee.out.push("" + (raw(x))); + __toffee.out.push("\n"); + __toffee.lineno = 14; + __toffee.out.push(" raw y = "); + __toffee.out.push("" + (raw(y))); + __toffee.out.push("\n"); + __toffee.lineno = 15; + __toffee.out.push(" raw z = "); + __toffee.out.push("" + (raw(z))); + __toffee.out.push("\n"); + __toffee.lineno = 16; + __toffee.out.push(" raw w = "); + __toffee.out.push("" + (raw(w))); + __toffee.out.push("\n"); + __toffee.lineno = 17; + __toffee.out.push("

\n"); + __toffee.lineno = 18; + __toffee.out.push("\n"); + __toffee.lineno = 24; + __toffee.out.push("

\n"); + __toffee.lineno = 25; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + print(" raw printed x = " + x + "\n"); + print(" raw printed y = " + y + "\n"); + print(" raw printed z = " + z + "\n"); + print(" raw printed w = " + w); + __toffee.state = states.TOFFEE; + __toffee.lineno = 30; + __toffee.out.push("\n"); + __toffee.lineno = 31; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("

\n"); + __toffee.lineno = 2; + __toffee.out.push(" default x = [\"Hello world\"]\n"); + __toffee.lineno = 3; + __toffee.out.push(" default y = []\n"); + __toffee.lineno = 4; + __toffee.out.push(" default z = [click&clack]\n"); + __toffee.lineno = 5; + __toffee.out.push(" default w = [1,2,[object Object]]\n"); + __toffee.lineno = 6; + __toffee.out.push("

\n"); + __toffee.lineno = 7; + __toffee.out.push("

\n"); + __toffee.lineno = 8; + __toffee.out.push(" raw x = \"Hello world\"\n"); + __toffee.lineno = 9; + __toffee.out.push(" raw y = \n"); + __toffee.lineno = 10; + __toffee.out.push(" raw z = click&clack\n"); + __toffee.lineno = 11; + __toffee.out.push(" raw w = 1,2,[object Object]\n"); + __toffee.lineno = 12; + __toffee.out.push("

\n"); + __toffee.lineno = 13; + __toffee.out.push("\n"); + __toffee.lineno = 19; + __toffee.out.push("

\n"); + __toffee.lineno = 20; + __toffee.out.push(" raw printed x = \"Hello world\"\n"); + __toffee.lineno = 21; + __toffee.out.push(" raw printed y = \n"); + __toffee.lineno = 22; + __toffee.out.push(" raw printed z = click&clack\n"); + __toffee.lineno = 23; + __toffee.out.push(" raw printed w = 1,2,[object Object]\n"); + __toffee.lineno = 24; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, f, friends, html, json, print, project, raw, states, _i, _len, _ref; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + this.projects = [ + { + url: "http://localhost:3000", + name: "okcupid", + description: "A site for singles" + }, { + url: "http://localhost:3001", + name: "tallygram", + description: "A site for anyone" + } + ]; + if (this.projects.length) { + _ref = this.projects; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + project = _ref[_i]; + __toffee.state = states.TOFFEE; + __toffee.lineno = 8; + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.out.push(" "); + __toffee.out.push("" + (escape(project.name))); + __toffee.out.push("\n"); + __toffee.lineno = 10; + __toffee.out.push("

"); + __toffee.out.push("" + (escape(project.description))); + __toffee.out.push("

\n"); + __toffee.lineno = 11; + __toffee.out.push(" "); + __toffee.state = states.COFFEE; + } + } else { + __toffee.state = states.TOFFEE; + __toffee.lineno = 12; + __toffee.out.push(" No projects "); + __toffee.state = states.COFFEE; + } + friends = [ + { + gender: "f", + name: "Jennie" + }, { + gender: "f", + name: "Rachel" + }, { + gender: "m", + name: "Petar" + }, { + gender: "f", + name: "Marissa" + } + ]; + __toffee.state = states.TOFFEE; + __toffee.lineno = 20; + __toffee.out.push("\n"); + __toffee.lineno = 21; + __toffee.out.push("\n"); + __toffee.lineno = 22; + __toffee.out.push("You have "); + __toffee.out.push("" + (escape(((function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { + f = friends[_j]; + if (f.gender === "f") _results.push(f); + } + return _results; + })()).length))); + __toffee.out.push(" female friends."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push(" okcupid\n"); + __toffee.lineno = 3; + __toffee.out.push("

A site for singles

\n"); + __toffee.lineno = 4; + __toffee.out.push(" \n"); + __toffee.lineno = 5; + __toffee.out.push(" tallygram\n"); + __toffee.lineno = 6; + __toffee.out.push("

A site for anyone

\n"); + __toffee.lineno = 7; + __toffee.out.push(" \n"); + __toffee.lineno = 8; + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.out.push("You have 3 female friends."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states, w, x, y, z; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + x = '"Hello world"'; + y = ''; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + __toffee.state = states.TOFFEE; + __toffee.lineno = 6; + __toffee.out.push("

\n"); + __toffee.lineno = 7; + __toffee.out.push(" default x = "); + __toffee.out.push("" + (x != null ? escape(x) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 8; + __toffee.out.push(" default y = "); + __toffee.out.push("" + (y != null ? escape(y) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.out.push(" default z = "); + __toffee.out.push("" + (z != null ? escape(z) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 10; + __toffee.out.push(" default w = "); + __toffee.out.push("" + (w != null ? escape(w) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 11; + __toffee.out.push(" default r = "); + __toffee.out.push("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); + __toffee.out.push("\n"); + __toffee.lineno = 12; + __toffee.out.push(" default w.foo = "); + __toffee.out.push("" + (escape(w.foo))); + __toffee.out.push("\n"); + __toffee.lineno = 13; + __toffee.out.push("

\n"); + __toffee.lineno = 14; + __toffee.out.push("

\n"); + __toffee.lineno = 15; + __toffee.out.push(" raw x = "); + __toffee.out.push("" + (raw(x))); + __toffee.out.push("\n"); + __toffee.lineno = 16; + __toffee.out.push(" raw y = "); + __toffee.out.push("" + (raw(y))); + __toffee.out.push("\n"); + __toffee.lineno = 17; + __toffee.out.push(" raw z = "); + __toffee.out.push("" + (raw(z))); + __toffee.out.push("\n"); + __toffee.lineno = 18; + __toffee.out.push(" raw w = "); + __toffee.out.push("" + (raw(w))); + __toffee.out.push("\n"); + __toffee.lineno = 19; + __toffee.out.push("

\n"); + __toffee.lineno = 20; + __toffee.out.push("\n"); + __toffee.lineno = 26; + __toffee.out.push("

\n"); + __toffee.lineno = 27; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + print(" raw printed x = " + x + "\n"); + print(" raw printed y = " + y + "\n"); + print(" raw printed z = " + z + "\n"); + print(" raw printed w = " + w); + __toffee.state = states.TOFFEE; + __toffee.lineno = 32; + __toffee.out.push("\n"); + __toffee.lineno = 33; + __toffee.out.push("

\n"); + __toffee.lineno = 34; + __toffee.out.push("

\n"); + __toffee.lineno = 35; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); + print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); + print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); + print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); + __toffee.state = states.TOFFEE; + __toffee.lineno = 40; + __toffee.out.push("\n"); + __toffee.lineno = 41; + __toffee.out.push("

\n"); + __toffee.lineno = 42; + __toffee.out.push("

\n"); + __toffee.lineno = 43; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); + print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); + print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); + print(" html printed longhand w = " + (__toffee.html(w))); + __toffee.state = states.TOFFEE; + __toffee.lineno = 48; + __toffee.out.push("\n"); + __toffee.lineno = 49; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("

\n"); + __toffee.lineno = 2; + __toffee.out.push(" default x = "Hello world"\n"); + __toffee.lineno = 3; + __toffee.out.push(" default y = <td>\n"); + __toffee.lineno = 4; + __toffee.out.push(" default z = click&clack\n"); + __toffee.lineno = 5; + __toffee.out.push(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + __toffee.lineno = 6; + __toffee.out.push(" default r = \n"); + __toffee.lineno = 7; + __toffee.out.push(" default w.foo = \n"); + __toffee.lineno = 8; + __toffee.out.push("

\n"); + __toffee.lineno = 9; + __toffee.out.push("

\n"); + __toffee.lineno = 10; + __toffee.out.push(" raw x = \"Hello world\"\n"); + __toffee.lineno = 11; + __toffee.out.push(" raw y = \n"); + __toffee.lineno = 12; + __toffee.out.push(" raw z = click&clack\n"); + __toffee.lineno = 13; + __toffee.out.push(" raw w = 1,2,[object Object]\n"); + __toffee.lineno = 14; + __toffee.out.push("

\n"); + __toffee.lineno = 15; + __toffee.out.push("\n"); + __toffee.lineno = 21; + __toffee.out.push("

\n"); + __toffee.lineno = 22; + __toffee.out.push(" raw printed x = \"Hello world\"\n"); + __toffee.lineno = 23; + __toffee.out.push(" raw printed y = \n"); + __toffee.lineno = 24; + __toffee.out.push(" raw printed z = click&clack\n"); + __toffee.lineno = 25; + __toffee.out.push(" raw printed w = 1,2,[object Object]\n"); + __toffee.lineno = 26; + __toffee.out.push("

\n"); + __toffee.lineno = 27; + __toffee.out.push("

\n"); + __toffee.lineno = 28; + __toffee.out.push(" json printed x = \"\"Hello world\"\"\n"); + __toffee.lineno = 29; + __toffee.out.push(" json printed y = \"\u003Ctd\u003E\"\n"); + __toffee.lineno = 30; + __toffee.out.push(" json printed z = \"click\u0026clack\"\n"); + __toffee.lineno = 31; + __toffee.out.push(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + __toffee.lineno = 32; + __toffee.out.push("

\n"); + __toffee.lineno = 33; + __toffee.out.push("

\n"); + __toffee.lineno = 34; + __toffee.out.push(" html printed longhand x = "Hello world"\n"); + __toffee.lineno = 35; + __toffee.out.push(" html printed longhand y = <td>\n"); + __toffee.lineno = 36; + __toffee.out.push(" html printed longhand z = click&clack\n"); + __toffee.lineno = 37; + __toffee.out.push(" html printed longhand w = 1,2,[object Object]\n"); + __toffee.lineno = 38; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); + __toffee.out.push(", world."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("Hello, world."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("a\n"); + __toffee.lineno = 2; + __toffee.out.push("b\n"); + __toffee.lineno = 3; + __toffee.out.push("c\n"); + __toffee.lineno = 4; + __toffee.out.push("" + (escape(passed_fn(100)))); + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("d\n"); + __toffee.lineno = 6; + __toffee.out.push("e\n"); + __toffee.lineno = 7; + __toffee.out.push("f"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("a\n"); + __toffee.lineno = 2; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + say_hi(); + __toffee.state = states.TOFFEE; + __toffee.lineno = 4; + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("b"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, say_hi, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + say_hi = function() { + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 3; + __toffee.out.push("hi"); + return __toffee.state = states.COFFEE; + }; + __toffee.state = states.TOFFEE; + __toffee.lineno = 4; + __toffee.out.push("1\n"); + __toffee.lineno = 5; + __toffee.out.push("2\n"); + __toffee.lineno = 6; + __toffee.out.push("" + (partial("child.toffee", { + say_hi: say_hi + }))); + __toffee.out.push("\n"); + __toffee.lineno = 7; + __toffee.out.push("3\n"); + __toffee.lineno = 8; + __toffee.out.push("4"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("1\n"); + __toffee.lineno = 2; + __toffee.out.push("2\n"); + __toffee.lineno = 3; + __toffee.out.push("hia\n"); + __toffee.lineno = 4; + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("b\n"); + __toffee.lineno = 6; + __toffee.out.push("3\n"); + __toffee.lineno = 7; + __toffee.out.push("4"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + if (countdown === 0) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 2; + __toffee.out.push("blastoff!"); + __toffee.state = states.COFFEE; + } else { + print("" + countdown + "..." + (partial('input.toffee', { + countdown: countdown - 1 + }))); + } + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("10...9...8...7...6...5...4...3...2...1...blastoff!"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("" + (partial("message.toffee", { + from: "Chris " + }))); + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push("" + (partial("message.toffee", { + from: "Max & Sam" + }))); + __toffee.out.push("\n"); + __toffee.lineno = 3; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + print(partial("message.toffee", { + from: "Christian" + })); + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 5; + __toffee.out.push("" + (partial("message.toffee", { + from: "Jennie" + }))); + __toffee.state = states.COFFEE; + print(partial("message.toffee", { + sender: "The enemy" + })); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, from, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + from = from || "Unknown"; + __toffee.state = states.TOFFEE; + __toffee.lineno = 3; + __toffee.out.push("From: "); + __toffee.out.push("" + (from != null ? escape(from) : '')); + __toffee.out.push(" \n"); + __toffee.lineno = 4; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 5; + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("From: Chris <ccoyne77@gmail> \n"); + __toffee.lineno = 2; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 3; + __toffee.out.push("\n"); + __toffee.lineno = 4; + __toffee.out.push("From: Max & Sam \n"); + __toffee.lineno = 5; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 6; + __toffee.out.push("\n"); + __toffee.lineno = 7; + __toffee.out.push("From: Christian \n"); + __toffee.lineno = 8; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 9; + __toffee.out.push("From: Jennie \n"); + __toffee.lineno = 10; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 11; + __toffee.out.push("From: Unknown \n"); + __toffee.lineno = 12; + __toffee.out.push("Msg: Hello, world\n"); + __toffee.lineno = 13; + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, i, json, print, raw, states, x, _i; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("
\n"); + __toffee.lineno = 2; + __toffee.out.push(" "); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 5; + __toffee.out.push("Pass1"); + __toffee.state = states.COFFEE; + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 9; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } else { + __toffee.state = states.TOFFEE; + __toffee.lineno = 11; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } + } else { + if (2 === 2) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 14; + __toffee.out.push("Pass2"); + __toffee.state = states.COFFEE; + } + } + } + } + __toffee.state = states.TOFFEE; + __toffee.lineno = 15; + __toffee.out.push("\n"); + __toffee.lineno = 16; + __toffee.out.push("
\n"); + __toffee.lineno = 17; + __toffee.out.push("\n"); + __toffee.lineno = 18; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 21; + __toffee.out.push("Pass3"); + __toffee.state = states.COFFEE; + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 25; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } else { + __toffee.state = states.TOFFEE; + __toffee.lineno = 27; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } + } else { + if (2 === 2) { + if (3 === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 30; + __toffee.out.push("Pass4"); + __toffee.state = states.COFFEE; + } + } + } + } + __toffee.state = states.TOFFEE; + __toffee.lineno = 31; + __toffee.out.push("\n"); + __toffee.lineno = 32; + __toffee.out.push("
\n"); + __toffee.lineno = 33; + __toffee.out.push("\n"); + __toffee.lineno = 34; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + if (10 === 10) { + if (20 === 20) { + if (30 === 30) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 37; + __toffee.out.push("Pass5"); + __toffee.state = states.COFFEE; + } + } + } + if (10 === 10) { + if (20 === 30) { + if (30 === 30) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 41; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } else { + __toffee.state = states.TOFFEE; + __toffee.lineno = 43; + __toffee.out.push("Fail"); + __toffee.state = states.COFFEE; + } + } else { + if (20 === 20) { + if (30 === 30) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 46; + __toffee.out.push("Pass6"); + __toffee.state = states.COFFEE; + } + } + } + } + __toffee.state = states.TOFFEE; + __toffee.lineno = 47; + __toffee.out.push("\n"); + __toffee.lineno = 48; + __toffee.out.push("\n"); + __toffee.lineno = 49; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + if (99 === 99) { + print('Pass7'); + } else { + print('Fail'); + __toffee.state = states.TOFFEE; + __toffee.lineno = 54; + __toffee.out.push("Fail8"); + __toffee.state = states.COFFEE; + } + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 55; + __toffee.out.push("Pass8"); + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 56; + __toffee.out.push("\n"); + __toffee.lineno = 57; + __toffee.out.push("\n"); + __toffee.lineno = 58; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 60; + __toffee.out.push("...passed with flying colors."); + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 61; + __toffee.out.push("\n"); + __toffee.lineno = 62; + __toffee.out.push("

\n"); + __toffee.lineno = 63; + __toffee.out.push(" "); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + x = 10; + if (x > 1) { + for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 67; + __toffee.out.push("
"); + __toffee.out.push("" + (i != null ? escape(i) : '')); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + if (i === 3) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 68; + __toffee.out.push(" (my favorite number) "); + __toffee.state = states.COFFEE; + } + } + } + __toffee.state = states.TOFFEE; + __toffee.lineno = 70; + __toffee.out.push("\n"); + __toffee.lineno = 71; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("
\n"); + __toffee.lineno = 2; + __toffee.out.push(" Pass1Pass2\n"); + __toffee.lineno = 3; + __toffee.out.push("
\n"); + __toffee.lineno = 4; + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("Pass3Pass4\n"); + __toffee.lineno = 6; + __toffee.out.push("
\n"); + __toffee.lineno = 7; + __toffee.out.push("\n"); + __toffee.lineno = 8; + __toffee.out.push("Pass5Pass6\n"); + __toffee.lineno = 9; + __toffee.out.push("\n"); + __toffee.lineno = 10; + __toffee.out.push("Pass7Pass8\n"); + __toffee.lineno = 11; + __toffee.out.push("\n"); + __toffee.lineno = 12; + __toffee.out.push("...passed with flying colors.\n"); + __toffee.lineno = 13; + __toffee.out.push("

\n"); + __toffee.lineno = 14; + __toffee.out.push("
0
1
2
3 (my favorite number)
4
5
6
7
8
9\n"); + __toffee.lineno = 15; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states, supplies, supply, _i, _len; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + supplies = ["broom", "mop", "vacuum"]; + __toffee.state = states.TOFFEE; + __toffee.lineno = 3; + __toffee.out.push("
    \n"); + __toffee.lineno = 4; + __toffee.out.push(" "); + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + for (_i = 0, _len = supplies.length; _i < _len; _i++) { + supply = supplies[_i]; + __toffee.state = states.TOFFEE; + __toffee.out.push("
  • "); + __toffee.out.push("" + (supply != null ? escape(supply) : '')); + __toffee.out.push("
  • "); + __toffee.state = states.COFFEE; + } + __toffee.state = states.TOFFEE; + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("
"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("
    \n"); + __toffee.lineno = 2; + __toffee.out.push("
  • broom
  • mop
  • vacuum
  • \n"); + __toffee.lineno = 3; + __toffee.out.push("
"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var echo_it, escape, html, json, print, print_it, print_it_twice, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + print_it = function(msg) { + __toffee.state = states.TOFFEE; + __toffee.lineno = 2; + __toffee.out.push("" + (msg != null ? escape(msg) : '')); + return __toffee.state = states.COFFEE; + }; + print_it_twice = function(msg) { + var m; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 5; + __toffee.out.push("" + (msg != null ? escape(msg) : '')); + __toffee.state = states.COFFEE; + m = msg; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 7; + __toffee.out.push("" + (m != null ? escape(m) : '')); + return __toffee.state = states.COFFEE; + }; + echo_it = function(msg) { + var v; + v = msg; + return v; + }; + print_it("Pass"); + print_it_twice("Pass"); + print(echo_it("Pass")); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("PassPassPassPass"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); + __toffee.out.push(" "); + __toffee.out.push("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("" + (escape("Hello, " + "world"))); + __toffee.lineno = 4; + __toffee.out.push("\n"); + __toffee.lineno = 5; + __toffee.out.push("
\n"); + __toffee.lineno = 6; + __toffee.out.push("" + (partial("foo.toffee", { + a: "Goodbye" + ',', + b: "world" + }))); + __toffee.lineno = 10; + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("Hello, world\n"); + __toffee.lineno = 2; + __toffee.out.push("
\n"); + __toffee.lineno = 3; + __toffee.out.push("Goodbye, world"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("Hi there."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("Hi there."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, msg, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + msg = msg || "Unknown message"; + print(msg); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, from, html, json, msg, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.COFFEE; + from = from || "Unknown sender"; + msg = msg || "Unknown message."; + print("From: " + from + "\n" + (snippet('./bar/body.toffee', { + msg: msg + }))); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("" + (partial("./foo/message.toffee"))); + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push("" + (escape(snippet("./foo/message.toffee")))); + __toffee.out.push("\n"); + __toffee.lineno = 3; + __toffee.out.push("" + (partial("./foo/message.toffee", { + from: "Sam" + }))); + __toffee.out.push("\n"); + __toffee.lineno = 4; + __toffee.out.push("" + (escape(snippet("./foo/message.toffee", { + from: "Max" + })))); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("From: Preloaded sender\n"); + __toffee.lineno = 2; + __toffee.out.push("Preloaded message.\n"); + __toffee.lineno = 3; + __toffee.out.push("From: Unknown sender\n"); + __toffee.lineno = 4; + __toffee.out.push("Unknown message.\n"); + __toffee.lineno = 5; + __toffee.out.push("From: Sam\n"); + __toffee.lineno = 6; + __toffee.out.push("Preloaded message.\n"); + __toffee.lineno = 7; + __toffee.out.push("From: Max\n"); + __toffee.lineno = 8; + __toffee.out.push("Unknown message."); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 5; + __toffee.out.push("\n"); + __toffee.lineno = 6; + __toffee.state = states.COFFEE; + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 7; + __toffee.out.push('"' + "PASSED" + '"'); + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 8; + __toffee.out.push("\n"); + __toffee.lineno = 9; + __toffee.state = states.COFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 13; + __toffee.out.push("\n"); + __toffee.lineno = 14; + __toffee.out.push("

\n"); + __toffee.lineno = 15; + __toffee.out.push(" "); + __toffee.out.push("" + (print("" + 'click & clack' + ""))); + __toffee.out.push("\n"); + __toffee.lineno = 16; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); +(function() { + var domain; + + domain = this; + + domain.toffeeTemplates = domain.toffeeTemplates || {}; + + domain.toffeeTemplates["pub"] = function(locals) { + var escape, html, json, print, raw, states; + domain = this; + locals.__toffee = {}; + with (locals) {; + + __toffee.out = []; + if (!(typeof print !== "undefined" && print !== null)) { + print = function(txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } + }; + } + __toffee.json = function(o) { + var json, res; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return res = "" + json; + }; + __toffee.html = function(o) { + var res; + return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + __toffee.raw = function(o) { + return o; + }; + if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; + if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; + if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; + }; + } + states = { + "TOFFEE": 1, + "COFFEE": 2 + }; + __toffee.state = states.TOFFEE; + __toffee.state = states.TOFFEE; + __toffee.lineno = 1; + __toffee.out.push("\n"); + __toffee.lineno = 2; + __toffee.out.push('"' + "PASSED\"\n"); + __toffee.lineno = 3; + __toffee.out.push("\n"); + __toffee.lineno = 4; + __toffee.out.push("

\n"); + __toffee.lineno = 5; + __toffee.out.push(" click & clack\n"); + __toffee.lineno = 6; + __toffee.out.push("

"); + __toffee.state = states.COFFEE; + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return domain.toffeeTemplates["pub"](__toffee_run_input); + } + +}).call(this); + diff --git a/test/run_cases.coffee b/test/run_cases.coffee index 440e464..9b6a520 100644 --- a/test/run_cases.coffee +++ b/test/run_cases.coffee @@ -56,5 +56,5 @@ run_all_case_dirs (err, time, tests_run) -> total_time += time total_tests += tests_run if countdown is 0 - console.log "SUCCESS for #{total_tests} hot tests in #{total_time}ms. #{total_time / total_tests}ms/test" + console.log "SUCCESS for #{total_tests} hot tests in #{total_time}ms. #{total_time / total_tests}ms/test" process.exit 0 \ No newline at end of file diff --git a/toffee.js b/toffee.js index 49e3007..357aaa5 100644 --- a/toffee.js +++ b/toffee.js @@ -6878,7 +6878,6 @@ if (typeof module !== 'undefined' && require.main === module) { recurseRun = function(start_path, curr_path, out_text) { var file, files, stats, sub_path, sub_stats, _i, _len; - console.log(out_text.slice(0, 1000)); stats = fs.statSync(curr_path); if (stats.isDirectory()) { files = fs.readdirSync(curr_path); From a6290311dd418bc021f717ef782497f702a59ace Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 30 Jul 2012 20:46:45 -0400 Subject: [PATCH 019/163] urgg, tough. incremental.' --- lib/command_line.js | 12 +- lib/errorHandler.js | 2 +- lib/view.js | 37 +- package.json | 2 - src/command_line.coffee | 17 +- src/errorHandler.coffee | 2 +- src/view.coffee | 116 +- test/cases/big_file/input.toffee | 179 +- test/cases/big_file/output.toffee | 2 +- .../express3/public/javascripts/test_cases.js | 2597 ++++++----------- toffee.js | 51 +- 11 files changed, 1077 insertions(+), 1940 deletions(-) diff --git a/lib/command_line.js b/lib/command_line.js index dcfbff2..65d82cf 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,12 +1,12 @@ // Generated by CoffeeScript 1.3.1 (function() { - var compile, fs, getVersionNumber, path, program, recurseRun, run, view; + var compile, fs, getCommonHeadersJs, getVersionNumber, path, program, recurseRun, run, view, _ref; fs = require('fs'); path = require('path'); - view = require('../lib/view').view; + _ref = require('../lib/view'), view = _ref.view, getCommonHeadersJs = _ref.getCommonHeadersJs; program = require('commander'); @@ -27,15 +27,14 @@ /* e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - this compiles it specifically as - {identifier}/car/thing - where identifier is "bar" if nothing passed from cmd line */ var source, v; source = fs.readFileSync(path, 'utf8'); v = new view(source, { - fileName: path + fileName: path, + bundlePath: path.slice(start_path.length), + browserMode: true }); return v._toJavaScript(); }; @@ -77,6 +76,7 @@ } start_path = path.normalize(start_path); out_text = recurseRun(start_path, start_path, ""); + out_text = getCommonHeadersJs() + out_text; return console.log(out_text); } }; diff --git a/lib/errorHandler.js b/lib/errorHandler.js index d4afd12..d6ee626 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -101,7 +101,7 @@ _results = []; for (i = _i = 0, _len = stack.length; _i < _len; i = ++_i) { line = stack[i]; - rxx_pub = RegExp("Object[\\.]" + this.view.identifier + "[\\s]\\(undefined\\:([0-9]+)\\:[0-9]+"); + rxx_pub = /Object[\.]pub[\s]\(undefined\:([0-9]+)\:[0-9]+/; m = line.match(rxx_pub); in_src_file = false; lrange = [null, null]; diff --git a/lib/view.js b/lib/view.js index eb50ad7..1be433d 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.3.1 (function() { - var TAB_SPACES, coffee, errorHandler, errorTypes, parser, states, toffeeError, utils, view, vm, _ref, _ref1; + var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; parser = require('./toffee_lang').parser; @@ -18,6 +18,22 @@ coffee = require("coffee-script"); } + getCommonHeaders = function() { + /* + each view will use this, or if they're bundled together, + it'll only be used once + */ + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.raw = (locals, o) -> o\n\ntoffee.html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.escape = (locals, o) ->\n console.log locals\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; + }; + + getCommonHeadersJs = function() { + var ch; + ch = getCommonHeaders(); + return coffee.compile(ch, { + bare: true + }); + }; + view = (function() { view.name = 'view'; @@ -31,7 +47,8 @@ var _this = this; options = options || {}; this.fileName = options.fileName || options.filename || null; - this.identifier = options.indentifier || "pub"; + this.bundlePath = options.bundlePath || "/"; + this.browserMode = options.browserMode || false; this.verbose = options.verbose || false; this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.txt = txt; @@ -253,7 +270,7 @@ } break; case "TOFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = states.TOFFEE"; + res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.TOFFEE"; _ref4 = obj[1]; for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { item = _ref4[_j]; @@ -262,7 +279,7 @@ } break; case "COFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = states.COFFEE"; + res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.COFFEE"; zone_baseline = this._getZoneBaseline(obj[1]); temp_indent_level = indent_level; _ref6 = obj[1]; @@ -275,7 +292,7 @@ break; case "TOFFEE": ind = indent_level; - res += "\n" + (this._space(ind)) + "__toffee.state = states.TOFFEE"; + res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.TOFFEE"; lineno = obj[2]; try { t_int = utils.interpolateString(obj[1]); @@ -315,7 +332,7 @@ } } res += this._printLineNo(obj[2] + (obj[1].split('\n').length - 1), ind); - res += "\n" + (this._space(ind)) + "__toffee.state = states.COFFEE"; + res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.COFFEE"; break; case "COFFEE": c = obj[1]; @@ -479,13 +496,13 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o is undefined then return ''\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\" then return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n" + ___ + ___ + ___ + "return o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { var ___; ___ = this._tabAsSpaces(); - return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return domain.toffeeTemplates[\"" + this.identifier + "\"] __toffee_run_input"; + return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return toffee.templates[\"" + this.bundlePath + "\"].pub __toffee_run_input"; }; return view; @@ -494,6 +511,10 @@ exports.view = view; + exports.getCommonHeaders = getCommonHeaders; + + exports.getCommonHeadersJs = getCommonHeadersJs; + exports.expressCompile = function(txt, options) { var v; v = new view(txt, options); diff --git a/package.json b/package.json index 9374ad2..e3e8523 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,6 @@ "author": "Chris Coyne ", "bin": "./bin/toffee", "dependencies": { - "coffee-script": "*", - "commander": "*" }, "repository": { "type": "git", diff --git a/src/command_line.coffee b/src/command_line.coffee index f3994be..b09a896 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -1,7 +1,7 @@ -fs = require 'fs' -path = require 'path' -{view} = require '../lib/view' -program = require 'commander' +fs = require 'fs' +path = require 'path' +{view, getCommonHeadersJs} = require '../lib/view' +program = require 'commander' # ----------------------------------------------------------------------------- @@ -44,12 +44,12 @@ compile = (start_path, path) -> ### e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - this compiles it specifically as - {identifier}/car/thing - where identifier is "bar" if nothing passed from cmd line ### source = fs.readFileSync path, 'utf8' - v = new view source, {fileName: path} + v = new view source, + fileName: path + bundlePath: path[start_path.length...] + browserMode: true return v._toJavaScript() # ----------------------------------------------------------------------------- @@ -83,6 +83,7 @@ run = exports.run = -> process.exit 1 start_path = path.normalize start_path out_text = recurseRun start_path, start_path, "" + out_text = getCommonHeadersJs() + out_text console.log out_text # ----------------------------------------------------------------------------- diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index a3c0268..2bdc5ae 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -78,7 +78,7 @@ class toffeeError stack = converted_err.stack for line, i in stack - rxx_pub = /// Object[\.]#{@view.identifier}[\s]\(undefined\:([0-9]+)\:[0-9]+ /// + rxx_pub = /// Object[\.]pub[\s]\(undefined\:([0-9]+)\:[0-9]+ /// m = line.match rxx_pub in_src_file = false lrange = [null, null] diff --git a/src/view.coffee b/src/view.coffee index c0ed888..195bcec 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -8,6 +8,51 @@ try catch e coffee = require "coffee-script" + +getCommonHeaders = -> + ### + each view will use this, or if they're bundled together, + it'll only be used once + ### + """ +if not toffee? then toffee = {} +if not toffee.templates then toffee.templates = {} + +toffee.states = #{JSON.stringify states} + +toffee.print = (locals, o) -> + if locals.__toffee.state is toffee.states.COFFEE + locals.__toffee.out.push o + return '' + else + return "\#{o}" + +toffee.json = (locals, o) -> + try + json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') + catch e + throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}", toffee_line_base: locals.__toffee.lineno } + "" + json + +toffee.raw = (locals, o) -> o + +toffee.html = (locals, o) -> + (""+o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') + +toffee.escape = (locals, o) -> + console.log locals + if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape + if o is undefined then return '' + if o? and (typeof o) is "object" then return locals.json o + return locals.html o + return o + +""" + +getCommonHeadersJs = -> + ch = getCommonHeaders() + coffee.compile ch, {bare: true} + class view constructor: (txt, options) -> @@ -16,9 +61,10 @@ class view cb: if this is set, compilation will happen async and cb will be executed when it's ready ### options = options or {} - @fileName = options.fileName or options.filename or null - @identifier = options.indentifier or "pub" - @verbose = options.verbose or false + @fileName = options.fileName or options.filename or null + @bundlePath = options.bundlePath or "/" # if to be included inside a bundle, this is the path inside it. + @browserMode = options.browserMode or false + @verbose = options.verbose or false @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @txt = txt @tokenObj = null # constructed as needed @@ -186,12 +232,12 @@ class view [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline res += s when "TOFFEE_ZONE" - res += "\n#{@_space indent_level}__toffee.state = states.TOFFEE" + res += "\n#{@_space indent_level}__toffee.state = toffee.states.TOFFEE" for item in obj[1] [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline res += s when "COFFEE_ZONE" - res += "\n#{@_space indent_level}__toffee.state = states.COFFEE" + res += "\n#{@_space indent_level}__toffee.state = toffee.states.COFFEE" zone_baseline = @_getZoneBaseline obj[1] temp_indent_level = indent_level for item in obj[1] @@ -200,7 +246,7 @@ class view temp_indent_level = indent_level + delta when "TOFFEE" ind = indent_level - res += "\n#{@_space ind}__toffee.state = states.TOFFEE" + res += "\n#{@_space ind}__toffee.state = toffee.states.TOFFEE" lineno = obj[2] try t_int = utils.interpolateString obj[1] @@ -230,7 +276,7 @@ class view res += "\n#{@_space ind}__toffee.out.push #{@_quoteStr(chunk + lbreak)}" if i < lines.length - 1 then lineno++ res += @_printLineNo obj[2] + (obj[1].split('\n').length-1), ind - res += "\n#{@_space ind}__toffee.state = states.COFFEE" + res += "\n#{@_space ind}__toffee.state = toffee.states.COFFEE" when "COFFEE" c = obj[1] res += "\n#{@_reindent c, indent_level, indent_baseline}" @@ -330,48 +376,22 @@ class view _coffeeHeaders: -> ___ = @_tabAsSpaces() + """ -domain = this -domain.toffeeTemplates = domain.toffeeTemplates or {} -domain.toffeeTemplates["#{@identifier}"] = (locals) -> -#{___}domain = this +#{if not @browserMode then getCommonHeaders() else ''} +toffee.templates["#{@bundlePath}"] = {} +toffee.templates["#{@bundlePath}"].pub = (locals) -> +#{___}localsPointer = locals #{___}locals.__toffee = {} + +#{___}if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o +#{___}if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o +#{___}if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o +#{___}if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o +#{___}if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o + #{___}`with (locals) {` #{___}__toffee.out = [] - -#{___}if not print? -#{___}#{___}print = (txt) -> -#{___}#{___}#{___}if __toffee.state is states.COFFEE -#{___}#{___}#{___}#{___}__toffee.out.push txt -#{___}#{___}#{___}#{___}return '' -#{___}#{___}#{___}else -#{___}#{___}#{___}#{___}return "\#{txt}x" - -#{___}__toffee.json = (o) -> -#{___}#{___}try -#{___}#{___}#{___}json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') -#{___}#{___}catch e -#{___}#{___}#{___}throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{__toffee.lineno}", toffee_line_base: __toffee.lineno } -#{___}#{___}res = "" + json - -#{___}__toffee.html = (o) -> -#{___}#{___}res = (""+o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') - -#{___}__toffee.raw = (o) -> o - -#{___}if not raw? then raw = __toffee.raw -#{___}if not html? then html = __toffee.html -#{___}if not json? then json = __toffee.json - -#{___}if not escape? -#{___}#{___}escape = (o) -> -#{___}#{___}#{___}if (not __toffee.autoEscape?) or __toffee.autoEscape -#{___}#{___}#{___}#{___}if o is undefined then return '' -#{___}#{___}#{___}#{___}if o? and (typeof o) is "object" then return __toffee.json o -#{___}#{___}#{___}#{___}return __toffee.html o -#{___}#{___}#{___}return o - -#{___}states = #{JSON.stringify states} """ _coffeeFooters: -> @@ -383,10 +403,12 @@ domain.toffeeTemplates["#{@identifier}"] = (locals) -> # sometimes we want to execute the whole thing in a sandbox # and just output results if __toffee_run_input? -#{___}return domain.toffeeTemplates["#{@identifier}"] __toffee_run_input +#{___}return toffee.templates["#{@bundlePath}"].pub __toffee_run_input """ -exports.view = view +exports.view = view +exports.getCommonHeaders = getCommonHeaders +exports.getCommonHeadersJs = getCommonHeadersJs # express 2.x support exports.expressCompile = (txt, options) -> diff --git a/test/cases/big_file/input.toffee b/test/cases/big_file/input.toffee index afa1f7a..7346588 100644 --- a/test/cases/big_file/input.toffee +++ b/test/cases/big_file/input.toffee @@ -1,119 +1,11 @@ {# count = 0 - for i in [0...5] {:#{ + for i in [0...2] {:#{ count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...{# - count += 1 - print "#{count}..." - #}#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...{# - count += 1 - print "#{count}..." - #}#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ + }...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...{# count += 1 @@ -125,73 +17,8 @@ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ }...{# count += 1 print "#{count}..." - #}#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...:} + #}:} #} \ No newline at end of file diff --git a/test/cases/big_file/output.toffee b/test/cases/big_file/output.toffee index 4831e8c..e6e0d8d 100644 --- a/test/cases/big_file/output.toffee +++ b/test/cases/big_file/output.toffee @@ -1 +1 @@ -0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...69...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...161...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...231...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...323...324...325...326...327...328...329...330...331...332...333...334...335...336...337...338...339...340...341...342...343...344...345...346...347...348...349...350...351...352...353...354...355...356...357...358...359...360...361...362...363...364...365...366...367...368...369...370...371...372...373...374...375...376...377...378...379...380...381...382...383...384...385...386...387...388...389...390...391...392...393...394...395...396...397...398...399...400...401...402...403...404...405...406...407...408...409...410...411...412...413...414...415...416...417...418...419...420...421...422...423...424...425...426...427...428...429...430...431...432...433...434...435...436...437...438...439...440...441...442...443...444...445...446...447...448...449...450...451...452...453...454...455...456...457...458...459...460...461...462...463...464...465...466...467...469...469...470...471...472...473...474...475...476...477...478...479...480...481...482...483...484...485...486...487...488...489...490...491...492...493...494...495...496...497...498...499...500...501...502...503...504...505...506...507...508...509...510...511...512...513...514...515...516...517...518...519...520...521...522...523...524...525...526...527...528...529...530...531...532...533...534...535...536...537...538...539...540...541...542...543...544...545...546...547...548...549...550...551...552...553...554...555...556...557...558...559...560...561...562...563...564...565...566...567...568...569...570...571...572...573...574...575...576...577...578...579...580...581...582...583...584...585...586...587...588...589...590...591...592...593...594...595...596...597...598...599...600...601...602...603...604...605...606...607...608...609...610...611...612...613...614...615...616...617...618...619...620...621...622...623...624...625...626...627...628...629...630...631...632...633...634...635...636...637...638...639...640...641...642...643...644...645...646...647...648...649...650...651...652...653...654...655...656...657...658...659...660...661...662...663...664...665...666...667...668...669...670...671...672...673...674...675...676...677...678...679...680...681...682...683...684...685...686...687...688...689...690...691...692...693...694...695...696...697...698...699...700...701...702...703...704...705...706...707...708...709...710...711...712...713...714...715...716...717...718...719...720...721...722...723...724...725...726...727...728...729...730...731...732...733...734...735...736...737...738...739...740...741...742...743...744...745...746...747...748...749...750...751...752...753...754...755...756...757...758...759...760...761...762...763...764...765...766...767...768...769...770...771...772...773...774...775...776...777...778...779...780...781...782...783...784...785...786...787...788...789...790...791...792...793...794...795...796...797...798...799...800...801...802...803...804...805...806...807...808...809...810...811...812...813...814...815...816...817...818...819...820...821...822...823...824...825...826...827...828...829...830...831...832...833...834...835...836...837...838...839...840...841...842...843...844...845...846...847...848...849...850...851...852...853...854...855...856...857...858...859...860...861...862...863...864...865...866...867...868...869...870...871...872...873...874...875...876...877...878...879...880...881...882...883...884...885...886...887...888...889...890...891...892...893...894...895...896...897...898...899...900...901...902...903...904...905...906...907...908...909...910...911...912...913...914...915...916...917...918...919...920...921...922...923...924...925...926...927...928...929...930...931...932...933...934...935...936...938...938...939...940...941...942...943...944...945...946...947...948...949...950...951...952...953...954...955...956...957...958...959...960...961...962...963...964...965...966...967...968...969...970...971...972...973...974...975...976...977...978...979...980...981...982...983...984...985...986...987...988...989...990...991...992...993...994...995...996...997...998...999...1000...1001...1002...1003...1004...1005...1006...1007...1008...1009...1010...1011...1012...1013...1014...1015...1016...1017...1018...1019...1020...1021...1022...1023...1024...1025...1026...1027...1028...1029...1030...1031...1032...1033...1034...1035...1036...1037...1038...1039...1040...1041...1042...1043...1044...1045...1046...1047...1048...1049...1050...1051...1052...1053...1054...1055...1056...1057...1058...1059...1060...1061...1062...1063...1064...1065...1066...1067...1068...1069...1070...1071...1072...1073...1074...1075...1076...1077...1078...1079...1080...1081...1082...1083...1084...1085...1086...1087...1088...1089...1090...1091...1092...1093...1094...1095...1096...1097...1098...1099...1100...1101...1102...1103...1104...1105...1106...1107...1108...1109...1110...1111...1112...1113...1114...1115...1116...1117...1118...1119...1120...1121...1122...1123...1124...1125...1126...1127...1128...1129...1130...1131...1132...1133...1134...1135...1136...1137...1138...1139...1140...1141...1142...1143...1144...1145...1146...1147...1148...1149...1150...1151...1152...1153...1154...1155...1156...1157...1158...1159...1160...1161...1162...1163...1164...1165...1166...1167...1168...1169...1170...1171...1172...1173...1174...1175...1176...1177...1178...1179...1180...1181...1182...1183...1184...1185...1186...1187...1188...1189...1190...1191...1192...1193...1194...1195...1196...1197...1198...1199...1200...1201...1202...1203...1204...1205...1206...1207...1208...1209...1210...1211...1212...1213...1214...1215...1216...1217...1218...1219...1220...1221...1222...1223...1224...1225...1226...1227...1228...1229...1230...1231...1232...1233...1234...1235...1236...1237...1238...1239...1240...1241...1242...1243...1244...1245...1246...1247...1248...1249...1250...1251...1252...1253...1254...1255...1256...1257...1258...1259...1260...1261...1262...1263...1264...1265...1266...1267...1268...1269...1270...1271...1272...1273...1274...1275...1276...1277...1278...1279...1280...1281...1282...1283...1284...1285...1286...1287...1288...1289...1290...1291...1292...1293...1294...1295...1296...1297...1298...1299...1300...1301...1302...1303...1304...1305...1306...1307...1308...1309...1310...1311...1312...1313...1314...1315...1316...1317...1318...1319...1320...1321...1322...1323...1324...1325...1326...1327...1328...1329...1330...1331...1332...1333...1334...1335...1336...1337...1338...1339...1340...1341...1342...1343...1344...1345...1346...1347...1348...1349...1350...1351...1352...1353...1354...1355...1356...1357...1358...1359...1360...1361...1362...1363...1364...1365...1366...1367...1368...1369...1370...1371...1372...1373...1374...1375...1376...1377...1378...1379...1380...1381...1382...1383...1384...1385...1386...1387...1388...1389...1390...1391...1392...1393...1394...1395...1396...1397...1398...1399...1400...1401...1402...1403...1404...1405...1407...1407...1408...1409...1410...1411...1412...1413...1414...1415...1416...1417...1418...1419...1420...1421...1422...1423...1424...1425...1426...1427...1428...1429...1430...1431...1432...1433...1434...1435...1436...1437...1438...1439...1440...1441...1442...1443...1444...1445...1446...1447...1448...1449...1450...1451...1452...1453...1454...1455...1456...1457...1458...1459...1460...1461...1462...1463...1464...1465...1466...1467...1468...1469...1470...1471...1472...1473...1474...1475...1476...1477...1478...1479...1480...1481...1482...1483...1484...1485...1486...1487...1488...1489...1490...1491...1492...1493...1494...1495...1496...1497...1498...1499...1500...1501...1502...1503...1504...1505...1506...1507...1508...1509...1510...1511...1512...1513...1514...1515...1516...1517...1518...1519...1520...1521...1522...1523...1524...1525...1526...1527...1528...1529...1530...1531...1532...1533...1534...1535...1536...1537...1538...1539...1540...1541...1542...1543...1544...1545...1546...1547...1548...1549...1550...1551...1552...1553...1554...1555...1556...1557...1558...1559...1560...1561...1562...1563...1564...1565...1566...1567...1568...1569...1570...1571...1572...1573...1574...1575...1576...1577...1578...1579...1580...1581...1582...1583...1584...1585...1586...1587...1588...1589...1590...1591...1592...1593...1594...1595...1596...1597...1598...1599...1600...1601...1602...1603...1604...1605...1606...1607...1608...1609...1610...1611...1612...1613...1614...1615...1616...1617...1618...1619...1620...1621...1622...1623...1624...1625...1626...1627...1628...1629...1630...1631...1632...1633...1634...1635...1636...1637...1638...1639...1640...1641...1642...1643...1644...1645...1646...1647...1648...1649...1650...1651...1652...1653...1654...1655...1656...1657...1658...1659...1660...1661...1662...1663...1664...1665...1666...1667...1668...1669...1670...1671...1672...1673...1674...1675...1676...1677...1678...1679...1680...1681...1682...1683...1684...1685...1686...1687...1688...1689...1690...1691...1692...1693...1694...1695...1696...1697...1698...1699...1700...1701...1702...1703...1704...1705...1706...1707...1708...1709...1710...1711...1712...1713...1714...1715...1716...1717...1718...1719...1720...1721...1722...1723...1724...1725...1726...1727...1728...1729...1730...1731...1732...1733...1734...1735...1736...1737...1738...1739...1740...1741...1742...1743...1744...1745...1746...1747...1748...1749...1750...1751...1752...1753...1754...1755...1756...1757...1758...1759...1760...1761...1762...1763...1764...1765...1766...1767...1768...1769...1770...1771...1772...1773...1774...1775...1776...1777...1778...1779...1780...1781...1782...1783...1784...1785...1786...1787...1788...1789...1790...1791...1792...1793...1794...1795...1796...1797...1798...1799...1800...1801...1802...1803...1804...1805...1806...1807...1808...1809...1810...1811...1812...1813...1814...1815...1816...1817...1818...1819...1820...1821...1822...1823...1824...1825...1826...1827...1828...1829...1830...1831...1832...1833...1834...1835...1836...1837...1838...1839...1840...1841...1842...1843...1844...1845...1846...1847...1848...1849...1850...1851...1852...1853...1854...1855...1856...1857...1858...1859...1860...1861...1862...1863...1864...1865...1866...1867...1868...1869...1870...1871...1872...1873...1874...1876...1876...1877...1878...1879...1880...1881...1882...1883...1884...1885...1886...1887...1888...1889...1890...1891...1892...1893...1894...1895...1896...1897...1898...1899...1900...1901...1902...1903...1904...1905...1906...1907...1908...1909...1910...1911...1912...1913...1914...1915...1916...1917...1918...1919...1920...1921...1922...1923...1924...1925...1926...1927...1928...1929...1930...1931...1932...1933...1934...1935...1936...1937...1938...1939...1940...1941...1942...1943...1944...1945...1946...1947...1948...1949...1950...1951...1952...1953...1954...1955...1956...1957...1958...1959...1960...1961...1962...1963...1964...1965...1966...1967...1968...1969...1970...1971...1972...1973...1974...1975...1976...1977...1978...1979...1980...1981...1982...1983...1984...1985...1986...1987...1988...1989...1990...1991...1992...1993...1994...1995...1996...1997...1998...1999...2000...2001...2002...2003...2004...2005...2006...2007...2008...2009...2010...2011...2012...2013...2014...2015...2016...2017...2018...2019...2020...2021...2022...2023...2024...2025...2026...2027...2028...2029...2030...2031...2032...2033...2034...2035...2036...2037...2038...2039...2040...2041...2042...2043...2044...2045...2046...2047...2048...2049...2050...2051...2052...2053...2054...2055...2056...2057...2058...2059...2060...2061...2062...2063...2064...2065...2066...2067...2068...2069...2070...2071...2072...2073...2074...2075...2076...2077...2078...2079...2080...2081...2082...2083...2084...2085...2086...2087...2088...2089...2090...2091...2092...2093...2094...2095...2096...2097...2098...2099...2100...2101...2102...2103...2104...2105...2106...2107...2108...2109...2110...2111...2112...2113...2114...2115...2116...2117...2118...2119...2120...2121...2122...2123...2124...2125...2126...2127...2128...2129...2130...2131...2132...2133...2134...2135...2136...2137...2138...2139...2140...2141...2142...2143...2144...2145...2146...2147...2148...2149...2150...2151...2152...2153...2154...2155...2156...2157...2158...2159...2160...2161...2162...2163...2164...2165...2166...2167...2168...2169...2170...2171...2172...2173...2174...2175...2176...2177...2178...2179...2180...2181...2182...2183...2184...2185...2186...2187...2188...2189...2190...2191...2192...2193...2194...2195...2196...2197...2198...2199...2200...2201...2202...2203...2204...2205...2206...2207...2208...2209...2210...2211...2212...2213...2214...2215...2216...2217...2218...2219...2220...2221...2222...2223...2224...2225...2226...2227...2228...2229...2230...2231...2232...2233...2234...2235...2236...2237...2238...2239...2240...2241...2242...2243...2244...2245...2246...2247...2248...2249...2250...2251...2252...2253...2254...2255...2256...2257...2258...2259...2260...2261...2262...2263...2264...2265...2266...2267...2268...2269...2270...2271...2272...2273...2274...2275...2276...2277...2278...2279...2280...2281...2282...2283...2284...2285...2286...2287...2288...2289...2290...2291...2292...2293...2294...2295...2296...2297...2298...2299...2300...2301...2302...2303...2304...2305...2306...2307...2308...2309...2310...2311...2312...2313...2314...2315...2316...2317...2318...2319...2320...2321...2322...2323...2324...2325...2326...2327...2328...2329...2330...2331...2332...2333...2334...2335...2336...2337...2338...2339...2340...2341...2342...2343...2344...2345...2346...2347...2348...2349...2350...2351...2352...2353...2354...2355...2356...2357...2358...2359...2360...2361...2362...2363...2364...2365...2366...2367...2368...2369...2370...2371...2372...2373...2374...2375...2376...2377...2378...2379...2380...2381...2382...2383...2384...2385...2386...2387...2388...2389...2390...2391...2392...2393...2394...2395...2396...2397...2398...2399...2400...2401...2402...2403...2404...2405...2406...2407...2408...2409...2410...2411...2412...2413...2414...2415...2416...2417...2418...2419...2420...2421...2422...2423...2424...2425...2426...2427...2428...2429...2430...2431...2432...2433...2434...2435...2436...2437...2438...2439...2440...2441...2442...2443...2444...2445...2446...2447...2448...2449...2450...2451...2452...2453...2454...2455...2456...2457...2458...2459...2460...2461...2462...2463...2464...2465...2466...2467...2468...2469...2470...2471...2472...2473...2474...2475...2476...2477...2478...2479...2480...2481...2482...2483...2484...2485...2486...2487...2488...2489...2490...2491...2492...2493...2494...2495...2496...2497...2498...2499...2500...2501...2502...2503...2504...2505...2506...2507...2508...2509...2510...2511...2512...2513...2514...2515...2516...2517...2518...2519...2520...2521...2522...2523...2524...2525...2526...2527...2528...2529...2530...2531...2532...2533...2534...2535...2536...2537...2538...2539...2540...2541...2542...2543...2544...2545...2546...2547...2548...2549...2550...2551...2552...2553...2554...2555...2556...2557...2558...2559...2560...2561...2562...2563...2564...2565...2566...2567...2568...2569...2570...2571...2572...2573...2574...2575...2576...2577...2578...2579...2580...2581...2582...2583...2584...2585...2586...2587...2588...2589...2590...2591...2592...2593...2594...2595...2596...2597...2598...2599...2600...2601...2602...2603...2604...2605...2606...2607...2608...2609...2610...2611...2612...2613...2614...2615...2616...2617...2618...2619...2620...2621...2622...2623...2624...2625...2626...2627...2628...2629...2630...2631...2632...2633...2634...2635...2636...2637...2638...2639...2640...2641...2642...2643...2644...2645...2646...2647...2648...2649...2650...2651...2652...2653...2654...2655...2656...2657...2658...2659...2660...2661...2662...2663...2664...2665...2666...2667...2668...2669...2670...2671...2672...2673...2674...2675...2676...2677...2678...2679...2680...2681...2682...2683...2684...2685...2686...2687...2688...2689...2690...2691...2692...2693...2694...2695...2696...2697...2698...2699...2700...2701...2702...2703...2704...2705...2706...2707...2708...2709...2710...2711...2712...2713...2714...2715...2716...2717...2718...2719...2720...2721...2722...2723...2724...2725...2726...2727...2728...2729...2730...2731...2732...2733...2734...2735...2736...2737...2738...2739...2740...2741...2742...2743...2744...2745...2746...2747...2748...2749...2750...2751...2752...2753...2754...2755...2756...2757...2758...2759...2760...2761...2762...2763...2764...2765...2766...2767...2768...2769...2770...2771...2772...2773...2774...2775...2776...2777...2778...2779...2780...2781...2782...2783...2784...2785...2786...2787...2788...2789...2790...2791...2792...2793...2794...2795...2796...2797...2798...2799...2800...2801...2802...2803...2804...2805...2806...2807...2808...2809...2810...2811...2813...2813...2814...2815...2816...2817...2818...2819...2820...2821...2822...2823...2824...2825...2826...2827...2828...2829...2830...2831...2832...2833...2834...2835...2836...2837...2838...2839...2840...2841...2842...2843...2844...2845...2846...2847...2848...2849...2850...2851...2852...2853...2854...2855...2856...2857...2858...2859...2860...2861...2862...2863...2864...2865...2866...2867...2868...2869...2870...2871...2872...2873...2874...2875...2876...2877...2878...2879...2880...2881...2882...2883...2884...2885...2886...2887...2888...2889...2890...2891...2892...2893...2894...2895...2896...2897...2898...2899...2900...2901...2902...2903...2904...2905...2906...2907...2908...2909...2910...2911...2912...2913...2914...2915...2916...2917...2918...2919...2920...2921...2922...2923...2924...2925...2926...2927...2928...2929...2930...2931...2932...2933...2934...2935...2936...2937...2938...2939...2940...2941...2942...2943...2944...2945...2946...2947...2948...2949...2950...2951...2952...2953...2954...2955...2956...2957...2958...2959...2960...2961...2962...2963...2964...2965...2966...2967...2968...2969...2970...2971...2972...2973...2974...2975...2976...2977...2978...2979...2980...2981...2982...2983...2984...2985...2986...2987...2988...2989...2990...2991...2992...2993...2994...2995...2996...2997...2998...2999...3000...3001...3002...3003...3004...3005...3006...3007...3008...3009...3010...3011...3012...3013...3014...3015...3016...3017...3018...3019...3020...3021...3022...3023...3024...3025...3026...3027...3028...3029...3030...3031...3032...3033...3034...3035...3036...3037...3038...3039...3040...3041...3042...3043...3044...3045...3046...3047...3048...3049...3050...3051...3052...3053...3054...3055...3056...3057...3058...3059...3060...3061...3062...3063...3064...3065...3066...3067...3068...3069...3070...3071...3072...3073...3074...3075...3076...3077...3078...3079...3080...3081...3082...3083...3084...3085...3086...3087...3088...3089...3090...3091...3092...3093...3094...3095...3096...3097...3098...3099...3100...3101...3102...3103...3104...3105...3106...3107...3108...3109...3110...3111...3112...3113...3114...3115...3116...3117...3118...3119...3120...3121...3122...3123...3124...3125...3126...3127...3128...3129...3130...3131...3132...3133...3134...3135...3136...3137...3138...3139...3140...3141...3142...3143...3144...3145...3146...3147...3148...3149...3150...3151...3152...3153...3154...3155...3156...3157...3158...3159...3160...3161...3162...3163...3164...3165...3166...3167...3168...3169...3170...3171...3172...3173...3174...3175...3176...3177...3178...3179...3180...3181...3182...3183...3184...3185...3186...3187...3188...3189...3190...3191...3192...3193...3194...3195...3196...3197...3198...3199...3200...3201...3202...3203...3204...3205...3206...3207...3208...3209...3210...3211...3212...3213...3214...3215...3216...3217...3218...3219...3220...3221...3222...3223...3224...3225...3226...3227...3228...3229...3230...3231...3232...3233...3234...3235...3236...3237...3238...3239...3240...3241...3242...3243...3244...3245...3246...3247...3248...3249...3250...3251...3252...3253...3254...3255...3256...3257...3258...3259...3260...3261...3262...3263...3264...3265...3266...3267...3268...3269...3270...3271...3272...3273...3274...3275...3276...3277...3278...3279...3280...3282...3282...3283...3284...3285...3286...3287...3288...3289...3290...3291...3292...3293...3294...3295...3296...3297...3298...3299...3300...3301...3302...3303...3304...3305...3306...3307...3308...3309...3310...3311...3312...3313...3314...3315...3316...3317...3318...3319...3320...3321...3322...3323...3324...3325...3326...3327...3328...3329...3330...3331...3332...3333...3334...3335...3336...3337...3338...3339...3340...3341...3342...3343...3344...3345...3346...3347...3348...3349...3350...3351...3352...3353...3354...3355...3356...3357...3358...3359...3360...3361...3362...3363...3364...3365...3366...3367...3368...3369...3370...3371...3372...3373...3374...3375...3376...3377...3378...3379...3380...3381...3382...3383...3384...3385...3386...3387...3388...3389...3390...3391...3392...3393...3394...3395...3396...3397...3398...3399...3400...3401...3402...3403...3404...3405...3406...3407...3408...3409...3410...3411...3412...3413...3414...3415...3416...3417...3418...3419...3420...3421...3422...3423...3424...3425...3426...3427...3428...3429...3430...3431...3432...3433...3434...3435...3436...3437...3438...3439...3440...3441...3442...3443...3444...3445...3446...3447...3448...3449...3450...3451...3452...3453...3454...3455...3456...3457...3458...3459...3460...3461...3462...3463...3464...3465...3466...3467...3468...3469...3470...3471...3472...3473...3474...3475...3476...3477...3478...3479...3480...3481...3482...3483...3484...3485...3486...3487...3488...3489...3490...3491...3492...3493...3494...3495...3496...3497...3498...3499...3500...3501...3502...3503...3504...3505...3506...3507...3508...3509...3510...3511...3512...3513...3514...3515...3516...3517...3518...3519...3520...3521...3522...3523...3524...3525...3526...3527...3528...3529...3530...3531...3532...3533...3534...3535...3536...3537...3538...3539...3540...3541...3542...3543...3544...3545...3546...3547...3548...3549...3550...3551...3552...3553...3554...3555...3556...3557...3558...3559...3560...3561...3562...3563...3564...3565...3566...3567...3568...3569...3570...3571...3572...3573...3574...3575...3576...3577...3578...3579...3580...3581...3582...3583...3584...3585...3586...3587...3588...3589...3590...3591...3592...3593...3594...3595...3596...3597...3598...3599...3600...3601...3602...3603...3604...3605...3606...3607...3608...3609...3610...3611...3612...3613...3614...3615...3616...3617...3618...3619...3620...3621...3622...3623...3624...3625...3626...3627...3628...3629...3630...3631...3632...3633...3634...3635...3636...3637...3638...3639...3640...3641...3642...3643...3644...3645...3646...3647...3648...3649...3650...3651...3652...3653...3654...3655...3656...3657...3658...3659...3660...3661...3662...3663...3664...3665...3666...3667...3668...3669...3670...3671...3672...3673...3674...3675...3676...3677...3678...3679...3680...3681...3682...3683...3684...3685...3686...3687...3688...3689...3690...3691...3692...3693...3694...3695...3696...3697...3698...3699...3700...3701...3702...3703...3704...3705...3706...3707...3708...3709...3710...3711...3712...3713...3714...3715...3716...3717...3718...3719...3720...3721...3722...3723...3724...3725...3726...3727...3728...3729...3730...3731...3732...3733...3734...3735...3736...3737...3738...3739...3740...3741...3742...3743...3744...3745...3746...3747...3748...3749...3751...3751...3752...3753...3754...3755...3756...3757...3758...3759...3760...3761...3762...3763...3764...3765...3766...3767...3768...3769...3770...3771...3772...3773...3774...3775...3776...3777...3778...3779...3780...3781...3782...3783...3784...3785...3786...3787...3788...3789...3790...3791...3792...3793...3794...3795...3796...3797...3798...3799...3800...3801...3802...3803...3804...3805...3806...3807...3808...3809...3810...3811...3812...3813...3814...3815...3816...3817...3818...3819...3820...3821...3822...3823...3824...3825...3826...3827...3828...3829...3830...3831...3832...3833...3834...3835...3836...3837...3838...3839...3840...3841...3842...3843...3844...3845...3846...3847...3848...3849...3850...3851...3852...3853...3854...3855...3856...3857...3858...3859...3860...3861...3862...3863...3864...3865...3866...3867...3868...3869...3870...3871...3872...3873...3874...3875...3876...3877...3878...3879...3880...3881...3882...3883...3884...3885...3886...3887...3888...3889...3890...3891...3892...3893...3894...3895...3896...3897...3898...3899...3900...3901...3902...3903...3904...3905...3906...3907...3908...3909...3910...3911...3912...3913...3914...3915...3916...3917...3918...3919...3920...3921...3922...3923...3924...3925...3926...3927...3928...3929...3930...3931...3932...3933...3934...3935...3936...3937...3938...3939...3940...3941...3942...3943...3944...3945...3946...3947...3948...3949...3950...3951...3952...3953...3954...3955...3956...3957...3958...3959...3960...3961...3962...3963...3964...3965...3966...3967...3968...3969...3970...3971...3972...3973...3974...3975...3976...3977...3978...3979...3980...3981...3982...3983...3984...3985...3986...3987...3988...3989...3990...3991...3992...3993...3994...3995...3996...3997...3998...3999...4000...4001...4002...4003...4004...4005...4006...4007...4008...4009...4010...4011...4012...4013...4014...4015...4016...4017...4018...4019...4020...4021...4022...4023...4024...4025...4026...4027...4028...4029...4030...4031...4032...4033...4034...4035...4036...4037...4038...4039...4040...4041...4042...4043...4044...4045...4046...4047...4048...4049...4050...4051...4052...4053...4054...4055...4056...4057...4058...4059...4060...4061...4062...4063...4064...4065...4066...4067...4068...4069...4070...4071...4072...4073...4074...4075...4076...4077...4078...4079...4080...4081...4082...4083...4084...4085...4086...4087...4088...4089...4090...4091...4092...4093...4094...4095...4096...4097...4098...4099...4100...4101...4102...4103...4104...4105...4106...4107...4108...4109...4110...4111...4112...4113...4114...4115...4116...4117...4118...4119...4120...4121...4122...4123...4124...4125...4126...4127...4128...4129...4130...4131...4132...4133...4134...4135...4136...4137...4138...4139...4140...4141...4142...4143...4144...4145...4146...4147...4148...4149...4150...4151...4152...4153...4154...4155...4156...4157...4158...4159...4160...4161...4162...4163...4164...4165...4166...4167...4168...4169...4170...4171...4172...4173...4174...4175...4176...4177...4178...4179...4180...4181...4182...4183...4184...4185...4186...4187...4188...4189...4190...4191...4192...4193...4194...4195...4196...4197...4198...4199...4200...4201...4202...4203...4204...4205...4206...4207...4208...4209...4210...4211...4212...4213...4214...4215...4216...4217...4218...4220...4220...4221...4222...4223...4224...4225...4226...4227...4228...4229...4230...4231...4232...4233...4234...4235...4236...4237...4238...4239...4240...4241...4242...4243...4244...4245...4246...4247...4248...4249...4250...4251...4252...4253...4254...4255...4256...4257...4258...4259...4260...4261...4262...4263...4264...4265...4266...4267...4268...4269...4270...4271...4272...4273...4274...4275...4276...4277...4278...4279...4280...4281...4282...4283...4284...4285...4286...4287...4288...4289...4290...4291...4292...4293...4294...4295...4296...4297...4298...4299...4300...4301...4302...4303...4304...4305...4306...4307...4308...4309...4310...4311...4312...4313...4314...4315...4316...4317...4318...4319...4320...4321...4322...4323...4324...4325...4326...4327...4328...4329...4330...4331...4332...4333...4334...4335...4336...4337...4338...4339...4340...4341...4342...4343...4344...4345...4346...4347...4348...4349...4350...4351...4352...4353...4354...4355...4356...4357...4358...4359...4360...4361...4362...4363...4364...4365...4366...4367...4368...4369...4370...4371...4372...4373...4374...4375...4376...4377...4378...4379...4380...4381...4382...4383...4384...4385...4386...4387...4388...4389...4390...4391...4392...4393...4394...4395...4396...4397...4398...4399...4400...4401...4402...4403...4404...4405...4406...4407...4408...4409...4410...4411...4412...4413...4414...4415...4416...4417...4418...4419...4420...4421...4422...4423...4424...4425...4426...4427...4428...4429...4430...4431...4432...4433...4434...4435...4436...4437...4438...4439...4440...4441...4442...4443...4444...4445...4446...4447...4448...4449...4450...4451...4452...4453...4454...4455...4456...4457...4458...4459...4460...4461...4462...4463...4464...4465...4466...4467...4468...4469...4470...4471...4472...4473...4474...4475...4476...4477...4478...4479...4480...4481...4482...4483...4484...4485...4486...4487...4488...4489...4490...4491...4492...4493...4494...4495...4496...4497...4498...4499...4500...4501...4502...4503...4504...4505...4506...4507...4508...4509...4510...4511...4512...4513...4514...4515...4516...4517...4518...4519...4520...4521...4522...4523...4524...4525...4526...4527...4528...4529...4530...4531...4532...4533...4534...4535...4536...4537...4538...4539...4540...4541...4542...4543...4544...4545...4546...4547...4548...4549...4550...4551...4552...4553...4554...4555...4556...4557...4558...4559...4560...4561...4562...4563...4564...4565...4566...4567...4568...4569...4570...4571...4572...4573...4574...4575...4576...4577...4578...4579...4580...4581...4582...4583...4584...4585...4586...4587...4588...4589...4590...4591...4592...4593...4594...4595...4596...4597...4598...4599...4600...4601...4602...4603...4604...4605...4606...4607...4608...4609...4610...4611...4612...4613...4614...4615...4616...4617...4618...4619...4620...4621...4622...4623...4624...4625...4626...4627...4628...4629...4630...4631...4632...4633...4634...4635...4636...4637...4638...4639...4640...4641...4642...4643...4644...4645...4646...4647...4648...4649...4650...4651...4652...4653...4654...4655...4656...4657...4658...4659...4660...4661...4662...4663...4664...4665...4666...4667...4668...4669...4670...4671...4672...4673...4674...4675...4676...4677...4678...4679...4680...4681...4682...4683...4684...4685...4686...4687...4688...4689...4690...4691...4692...4693...4694...4695...4696...4697...4698...4699...4700...4701...4702...4703...4704...4705...4706...4707...4708...4709...4710...4711...4712...4713...4714...4715...4716...4717...4718...4719...4720...4721...4722...4723...4724...4725...4726...4727...4728...4729...4730...4731...4732...4733...4734...4735...4736...4737...4738...4739...4740...4741...4742...4743...4744...4745...4746...4747...4748...4749...4750...4751...4752...4753...4754...4755...4756...4757...4758...4759...4760...4761...4762...4763...4764...4765...4766...4767...4768...4769...4770...4771...4772...4773...4774...4775...4776...4777...4778...4779...4780...4781...4782...4783...4784...4785...4786...4787...4788...4789...4790...4791...4792...4793...4794...4795...4796...4797...4798...4799...4800...4801...4802...4803...4804...4805...4806...4807...4808...4809...4810...4811...4812...4813...4814...4815...4816...4817...4818...4819...4820...4821...4822...4823...4824...4825...4826...4827...4828...4829...4830...4831...4832...4833...4834...4835...4836...4837...4838...4839...4840...4841...4842...4843...4844...4845...4846...4847...4848...4849...4850...4851...4852...4853...4854...4855...4856...4857...4858...4859...4860...4861...4862...4863...4864...4865...4866...4867...4868...4869...4870...4871...4872...4873...4874...4875...4876...4877...4878...4879...4880...4881...4882...4883...4884...4885...4886...4887...4888...4889...4890...4891...4892...4893...4894...4895...4896...4897...4898...4899...4900...4901...4902...4903...4904...4905...4906...4907...4908...4909...4910...4911...4912...4913...4914...4915...4916...4917...4918...4919...4920...4921...4922...4923...4924...4925...4926...4927...4928...4929...4930...4931...4932...4933...4934...4935...4936...4937...4938...4939...4940...4941...4942...4943...4944...4945...4946...4947...4948...4949...4950...4951...4952...4953...4954...4955...4956...4957...4958...4959...4960...4961...4962...4963...4964...4965...4966...4967...4968...4969...4970...4971...4972...4973...4974...4975...4976...4977...4978...4979...4980...4981...4982...4983...4984...4985...4986...4987...4988...4989...4990...4991...4992...4993...4994...4995...4996...4997...4998...4999...5000...5001...5002...5003...5004...5005...5006...5007...5008...5009...5010...5011...5012...5013...5014...5015...5016...5017...5018...5019...5020...5021...5022...5023...5024...5025...5026...5027...5028...5029...5030...5031...5032...5033...5034...5035...5036...5037...5038...5039...5040...5041...5042...5043...5044...5045...5046...5047...5048...5049...5050...5051...5052...5053...5054...5055...5056...5057...5058...5059...5060...5061...5062...5063...5064...5065...5066...5067...5068...5069...5070...5071...5072...5073...5074...5075...5076...5077...5078...5079...5080...5081...5082...5083...5084...5085...5086...5087...5088...5089...5090...5091...5092...5093...5094...5095...5096...5097...5098...5099...5100...5101...5102...5103...5104...5105...5106...5107...5108...5109...5110...5111...5112...5113...5114...5115...5116...5117...5118...5119...5120...5121...5122...5123...5124...5125...5126...5127...5128...5129...5130...5131...5132...5133...5134...5135...5136...5137...5138...5139...5140...5141...5142...5143...5144...5145...5146...5147...5148...5149...5150...5151...5152...5153...5154...5155...5157...5157...5158...5159...5160...5161...5162...5163...5164...5165...5166...5167...5168...5169...5170...5171...5172...5173...5174...5175...5176...5177...5178...5179...5180...5181...5182...5183...5184...5185...5186...5187...5188...5189...5190...5191...5192...5193...5194...5195...5196...5197...5198...5199...5200...5201...5202...5203...5204...5205...5206...5207...5208...5209...5210...5211...5212...5213...5214...5215...5216...5217...5218...5219...5220...5221...5222...5223...5224...5225...5226...5227...5228...5229...5230...5231...5232...5233...5234...5235...5236...5237...5238...5239...5240...5241...5242...5243...5244...5245...5246...5247...5248...5249...5250...5251...5252...5253...5254...5255...5256...5257...5258...5259...5260...5261...5262...5263...5264...5265...5266...5267...5268...5269...5270...5271...5272...5273...5274...5275...5276...5277...5278...5279...5280...5281...5282...5283...5284...5285...5286...5287...5288...5289...5290...5291...5292...5293...5294...5295...5296...5297...5298...5299...5300...5301...5302...5303...5304...5305...5306...5307...5308...5309...5310...5311...5312...5313...5314...5315...5316...5317...5318...5319...5320...5321...5322...5323...5324...5325...5326...5327...5328...5329...5330...5331...5332...5333...5334...5335...5336...5337...5338...5339...5340...5341...5342...5343...5344...5345...5346...5347...5348...5349...5350...5351...5352...5353...5354...5355...5356...5357...5358...5359...5360...5361...5362...5363...5364...5365...5366...5367...5368...5369...5370...5371...5372...5373...5374...5375...5376...5377...5378...5379...5380...5381...5382...5383...5384...5385...5386...5387...5388...5389...5390...5391...5392...5393...5394...5395...5396...5397...5398...5399...5400...5401...5402...5403...5404...5405...5406...5407...5408...5409...5410...5411...5412...5413...5414...5415...5416...5417...5418...5419...5420...5421...5422...5423...5424...5425...5426...5427...5428...5429...5430...5431...5432...5433...5434...5435...5436...5437...5438...5439...5440...5441...5442...5443...5444...5445...5446...5447...5448...5449...5450...5451...5452...5453...5454...5455...5456...5457...5458...5459...5460...5461...5462...5463...5464...5465...5466...5467...5468...5469...5470...5471...5472...5473...5474...5475...5476...5477...5478...5479...5480...5481...5482...5483...5484...5485...5486...5487...5488...5489...5490...5491...5492...5493...5494...5495...5496...5497...5498...5499...5500...5501...5502...5503...5504...5505...5506...5507...5508...5509...5510...5511...5512...5513...5514...5515...5516...5517...5518...5519...5520...5521...5522...5523...5524...5525...5526...5527...5528...5529...5530...5531...5532...5533...5534...5535...5536...5537...5538...5539...5540...5541...5542...5543...5544...5545...5546...5547...5548...5549...5550...5551...5552...5553...5554...5555...5556...5557...5558...5559...5560...5561...5562...5563...5564...5565...5566...5567...5568...5569...5570...5571...5572...5573...5574...5575...5576...5577...5578...5579...5580...5581...5582...5583...5584...5585...5586...5587...5588...5589...5590...5591...5592...5593...5594...5595...5596...5597...5598...5599...5600...5601...5602...5603...5604...5605...5606...5607...5608...5609...5610...5611...5612...5613...5614...5615...5616...5617...5618...5619...5620...5621...5622...5623...5624...5626...5626...5627...5628...5629...5630...5631...5632...5633...5634...5635...5636...5637...5638...5639...5640...5641...5642...5643...5644...5645...5646...5647...5648...5649...5650...5651...5652...5653...5654...5655...5656...5657...5658...5659...5660...5661...5662...5663...5664...5665...5666...5667...5668...5669...5670...5671...5672...5673...5674...5675...5676...5677...5678...5679...5680...5681...5682...5683...5684...5685...5686...5687...5688...5689...5690...5691...5692...5693...5694...5695...5696...5697...5698...5699...5700...5701...5702...5703...5704...5705...5706...5707...5708...5709...5710...5711...5712...5713...5714...5715...5716...5717...5718...5719...5720...5721...5722...5723...5724...5725...5726...5727...5728...5729...5730...5731...5732...5733...5734...5735...5736...5737...5738...5739...5740...5741...5742...5743...5744...5745...5746...5747...5748...5749...5750...5751...5752...5753...5754...5755...5756...5757...5758...5759...5760...5761...5762...5763...5764...5765...5766...5767...5768...5769...5770...5771...5772...5773...5774...5775...5776...5777...5778...5779...5780...5781...5782...5783...5784...5785...5786...5787...5788...5789...5790...5791...5792...5793...5794...5795...5796...5797...5798...5799...5800...5801...5802...5803...5804...5805...5806...5807...5808...5809...5810...5811...5812...5813...5814...5815...5816...5817...5818...5819...5820...5821...5822...5823...5824...5825...5826...5827...5828...5829...5830...5831...5832...5833...5834...5835...5836...5837...5838...5839...5840...5841...5842...5843...5844...5845...5846...5847...5848...5849...5850...5851...5852...5853...5854...5855...5856...5857...5858...5859...5860...5861...5862...5863...5864...5865...5866...5867...5868...5869...5870...5871...5872...5873...5874...5875...5876...5877...5878...5879...5880...5881...5882...5883...5884...5885...5886...5887...5888...5889...5890...5891...5892...5893...5894...5895...5896...5897...5898...5899...5900...5901...5902...5903...5904...5905...5906...5907...5908...5909...5910...5911...5912...5913...5914...5915...5916...5917...5918...5919...5920...5921...5922...5923...5924...5925...5926...5927...5928...5929...5930...5931...5932...5933...5934...5935...5936...5937...5938...5939...5940...5941...5942...5943...5944...5945...5946...5947...5948...5949...5950...5951...5952...5953...5954...5955...5956...5957...5958...5959...5960...5961...5962...5963...5964...5965...5966...5967...5968...5969...5970...5971...5972...5973...5974...5975...5976...5977...5978...5979...5980...5981...5982...5983...5984...5985...5986...5987...5988...5989...5990...5991...5992...5993...5994...5995...5996...5997...5998...5999...6000...6001...6002...6003...6004...6005...6006...6007...6008...6009...6010...6011...6012...6013...6014...6015...6016...6017...6018...6019...6020...6021...6022...6023...6024...6025...6026...6027...6028...6029...6030...6031...6032...6033...6034...6035...6036...6037...6038...6039...6040...6041...6042...6043...6044...6045...6046...6047...6048...6049...6050...6051...6052...6053...6054...6055...6056...6057...6058...6059...6060...6061...6062...6063...6064...6065...6066...6067...6068...6069...6070...6071...6072...6073...6074...6075...6076...6077...6078...6079...6080...6081...6082...6083...6084...6085...6086...6087...6088...6089...6090...6091...6092...6093...6095...6095...6096...6097...6098...6099...6100...6101...6102...6103...6104...6105...6106...6107...6108...6109...6110...6111...6112...6113...6114...6115...6116...6117...6118...6119...6120...6121...6122...6123...6124...6125...6126...6127...6128...6129...6130...6131...6132...6133...6134...6135...6136...6137...6138...6139...6140...6141...6142...6143...6144...6145...6146...6147...6148...6149...6150...6151...6152...6153...6154...6155...6156...6157...6158...6159...6160...6161...6162...6163...6164...6165...6166...6167...6168...6169...6170...6171...6172...6173...6174...6175...6176...6177...6178...6179...6180...6181...6182...6183...6184...6185...6186...6187...6188...6189...6190...6191...6192...6193...6194...6195...6196...6197...6198...6199...6200...6201...6202...6203...6204...6205...6206...6207...6208...6209...6210...6211...6212...6213...6214...6215...6216...6217...6218...6219...6220...6221...6222...6223...6224...6225...6226...6227...6228...6229...6230...6231...6232...6233...6234...6235...6236...6237...6238...6239...6240...6241...6242...6243...6244...6245...6246...6247...6248...6249...6250...6251...6252...6253...6254...6255...6256...6257...6258...6259...6260...6261...6262...6263...6264...6265...6266...6267...6268...6269...6270...6271...6272...6273...6274...6275...6276...6277...6278...6279...6280...6281...6282...6283...6284...6285...6286...6287...6288...6289...6290...6291...6292...6293...6294...6295...6296...6297...6298...6299...6300...6301...6302...6303...6304...6305...6306...6307...6308...6309...6310...6311...6312...6313...6314...6315...6316...6317...6318...6319...6320...6321...6322...6323...6324...6325...6326...6327...6328...6329...6330...6331...6332...6333...6334...6335...6336...6337...6338...6339...6340...6341...6342...6343...6344...6345...6346...6347...6348...6349...6350...6351...6352...6353...6354...6355...6356...6357...6358...6359...6360...6361...6362...6363...6364...6365...6366...6367...6368...6369...6370...6371...6372...6373...6374...6375...6376...6377...6378...6379...6380...6381...6382...6383...6384...6385...6386...6387...6388...6389...6390...6391...6392...6393...6394...6395...6396...6397...6398...6399...6400...6401...6402...6403...6404...6405...6406...6407...6408...6409...6410...6411...6412...6413...6414...6415...6416...6417...6418...6419...6420...6421...6422...6423...6424...6425...6426...6427...6428...6429...6430...6431...6432...6433...6434...6435...6436...6437...6438...6439...6440...6441...6442...6443...6444...6445...6446...6447...6448...6449...6450...6451...6452...6453...6454...6455...6456...6457...6458...6459...6460...6461...6462...6463...6464...6465...6466...6467...6468...6469...6470...6471...6472...6473...6474...6475...6476...6477...6478...6479...6480...6481...6482...6483...6484...6485...6486...6487...6488...6489...6490...6491...6492...6493...6494...6495...6496...6497...6498...6499...6500...6501...6502...6503...6504...6505...6506...6507...6508...6509...6510...6511...6512...6513...6514...6515...6516...6517...6518...6519...6520...6521...6522...6523...6524...6525...6526...6527...6528...6529...6530...6531...6532...6533...6534...6535...6536...6537...6538...6539...6540...6541...6542...6543...6544...6545...6546...6547...6548...6549...6550...6551...6552...6553...6554...6555...6556...6557...6558...6559...6560...6561...6562...6564...6564...6565...6566...6567...6568...6569...6570...6571...6572...6573...6574...6575...6576...6577...6578...6579...6580...6581...6582...6583...6584...6585...6586...6587...6588...6589...6590...6591...6592...6593...6594...6595...6596...6597...6598...6599...6600...6601...6602...6603...6604...6605...6606...6607...6608...6609...6610...6611...6612...6613...6614...6615...6616...6617...6618...6619...6620...6621...6622...6623...6624...6625...6626...6627...6628...6629...6630...6631...6632...6633...6634...6635...6636...6637...6638...6639...6640...6641...6642...6643...6644...6645...6646...6647...6648...6649...6650...6651...6652...6653...6654...6655...6656...6657...6658...6659...6660...6661...6662...6663...6664...6665...6666...6667...6668...6669...6670...6671...6672...6673...6674...6675...6676...6677...6678...6679...6680...6681...6682...6683...6684...6685...6686...6687...6688...6689...6690...6691...6692...6693...6694...6695...6696...6697...6698...6699...6700...6701...6702...6703...6704...6705...6706...6707...6708...6709...6710...6711...6712...6713...6714...6715...6716...6717...6718...6719...6720...6721...6722...6723...6724...6725...6726...6727...6728...6729...6730...6731...6732...6733...6734...6735...6736...6737...6738...6739...6740...6741...6742...6743...6744...6745...6746...6747...6748...6749...6750...6751...6752...6753...6754...6755...6756...6757...6758...6759...6760...6761...6762...6763...6764...6765...6766...6767...6768...6769...6770...6771...6772...6773...6774...6775...6776...6777...6778...6779...6780...6781...6782...6783...6784...6785...6786...6787...6788...6789...6790...6791...6792...6793...6794...6795...6796...6797...6798...6799...6800...6801...6802...6803...6804...6805...6806...6807...6808...6809...6810...6811...6812...6813...6814...6815...6816...6817...6818...6819...6820...6821...6822...6823...6824...6825...6826...6827...6828...6829...6830...6831...6832...6833...6834...6835...6836...6837...6838...6839...6840...6841...6842...6843...6844...6845...6846...6847...6848...6849...6850...6851...6852...6853...6854...6855...6856...6857...6858...6859...6860...6861...6862...6863...6864...6865...6866...6867...6868...6869...6870...6871...6872...6873...6874...6875...6876...6877...6878...6879...6880...6881...6882...6883...6884...6885...6886...6887...6888...6889...6890...6891...6892...6893...6894...6895...6896...6897...6898...6899...6900...6901...6902...6903...6904...6905...6906...6907...6908...6909...6910...6911...6912...6913...6914...6915...6916...6917...6918...6919...6920...6921...6922...6923...6924...6925...6926...6927...6928...6929...6930...6931...6932...6933...6934...6935...6936...6937...6938...6939...6940...6941...6942...6943...6944...6945...6946...6947...6948...6949...6950...6951...6952...6953...6954...6955...6956...6957...6958...6959...6960...6961...6962...6963...6964...6965...6966...6967...6968...6969...6970...6971...6972...6973...6974...6975...6976...6977...6978...6979...6980...6981...6982...6983...6984...6985...6986...6987...6988...6989...6990...6991...6992...6993...6994...6995...6996...6997...6998...6999...7000...7001...7002...7003...7004...7005...7006...7007...7008...7009...7010...7011...7012...7013...7014...7015...7016...7017...7018...7019...7020...7021...7022...7023...7024...7025...7026...7027...7028...7029...7030...7031...7032...7033...7034...7035...7036...7037...7038...7039...7040...7041...7042...7043...7044...7045...7046...7047...7048...7049...7050...7051...7052...7053...7054...7055...7056...7057...7058...7059...7060...7061...7062...7063...7064...7065...7066...7067...7068...7069...7070...7071...7072...7073...7074...7075...7076...7077...7078...7079...7080...7081...7082...7083...7084...7085...7086...7087...7088...7089...7090...7091...7092...7093...7094...7095...7096...7097...7098...7099...7100...7101...7102...7103...7104...7105...7106...7107...7108...7109...7110...7111...7112...7113...7114...7115...7116...7117...7118...7119...7120...7121...7122...7123...7124...7125...7126...7127...7128...7129...7130...7131...7132...7133...7134...7135...7136...7137...7138...7139...7140...7141...7142...7143...7144...7145...7146...7147...7148...7149...7150...7151...7152...7153...7154...7155...7156...7157...7158...7159...7160...7161...7162...7163...7164...7165...7166...7167...7168...7169...7170...7171...7172...7173...7174...7175...7176...7177...7178...7179...7180...7181...7182...7183...7184...7185...7186...7187...7188...7189...7190...7191...7192...7193...7194...7195...7196...7197...7198...7199...7200...7201...7202...7203...7204...7205...7206...7207...7208...7209...7210...7211...7212...7213...7214...7215...7216...7217...7218...7219...7220...7221...7222...7223...7224...7225...7226...7227...7228...7229...7230...7231...7232...7233...7234...7235...7236...7237...7238...7239...7240...7241...7242...7243...7244...7245...7246...7247...7248...7249...7250...7251...7252...7253...7254...7255...7256...7257...7258...7259...7260...7261...7262...7263...7264...7265...7266...7267...7268...7269...7270...7271...7272...7273...7274...7275...7276...7277...7278...7279...7280...7281...7282...7283...7284...7285...7286...7287...7288...7289...7290...7291...7292...7293...7294...7295...7296...7297...7298...7299...7300...7301...7302...7303...7304...7305...7306...7307...7308...7309...7310...7311...7312...7313...7314...7315...7316...7317...7318...7319...7320...7321...7322...7323...7324...7325...7326...7327...7328...7329...7330...7331...7332...7333...7334...7335...7336...7337...7338...7339...7340...7341...7342...7343...7344...7345...7346...7347...7348...7349...7350...7351...7352...7353...7354...7355...7356...7357...7358...7359...7360...7361...7362...7363...7364...7365...7366...7367...7368...7369...7370...7371...7372...7373...7374...7375...7376...7377...7378...7379...7380...7381...7382...7383...7384...7385...7386...7387...7388...7389...7390...7391...7392...7393...7394...7395...7396...7397...7398...7399...7400...7401...7402...7403...7404...7405...7406...7407...7408...7409...7410...7411...7412...7413...7414...7415...7416...7417...7418...7419...7420...7421...7422...7423...7424...7425...7426...7427...7428...7429...7430...7431...7432...7433...7434...7435...7436...7437...7438...7439...7440...7441...7442...7443...7444...7445...7446...7447...7448...7449...7450...7451...7452...7453...7454...7455...7456...7457...7458...7459...7460...7461...7462...7463...7464...7465...7466...7467...7468...7469...7470...7471...7472...7473...7474...7475...7476...7477...7478...7479...7480...7481...7482...7483...7484...7485...7486...7487...7488...7489...7490...7491...7492...7493...7494...7495...7496...7497...7498...7499...7501...7501...7502...7503...7504...7505...7506...7507...7508...7509...7510...7511...7512...7513...7514...7515...7516...7517...7518...7519...7520...7521...7522...7523...7524...7525...7526...7527...7528...7529...7530...7531...7532...7533...7534...7535...7536...7537...7538...7539...7540...7541...7542...7543...7544...7545...7546...7547...7548...7549...7550...7551...7552...7553...7554...7555...7556...7557...7558...7559...7560...7561...7562...7563...7564...7565...7566...7567...7568...7569...7570...7571...7572...7573...7574...7575...7576...7577...7578...7579...7580...7581...7582...7583...7584...7585...7586...7587...7588...7589...7590...7591...7592...7593...7594...7595...7596...7597...7598...7599...7600...7601...7602...7603...7604...7605...7606...7607...7608...7609...7610...7611...7612...7613...7614...7615...7616...7617...7618...7619...7620...7621...7622...7623...7624...7625...7626...7627...7628...7629...7630...7631...7632...7633...7634...7635...7636...7637...7638...7639...7640...7641...7642...7643...7644...7645...7646...7647...7648...7649...7650...7651...7652...7653...7654...7655...7656...7657...7658...7659...7660...7661...7662...7663...7664...7665...7666...7667...7668...7669...7670...7671...7672...7673...7674...7675...7676...7677...7678...7679...7680...7681...7682...7683...7684...7685...7686...7687...7688...7689...7690...7691...7692...7693...7694...7695...7696...7697...7698...7699...7700...7701...7702...7703...7704...7705...7706...7707...7708...7709...7710...7711...7712...7713...7714...7715...7716...7717...7718...7719...7720...7721...7722...7723...7724...7725...7726...7727...7728...7729...7730...7731...7732...7733...7734...7735...7736...7737...7738...7739...7740...7741...7742...7743...7744...7745...7746...7747...7748...7749...7750...7751...7752...7753...7754...7755...7756...7757...7758...7759...7760...7761...7762...7763...7764...7765...7766...7767...7768...7769...7770...7771...7772...7773...7774...7775...7776...7777...7778...7779...7780...7781...7782...7783...7784...7785...7786...7787...7788...7789...7790...7791...7792...7793...7794...7795...7796...7797...7798...7799...7800...7801...7802...7803...7804...7805...7806...7807...7808...7809...7810...7811...7812...7813...7814...7815...7816...7817...7818...7819...7820...7821...7822...7823...7824...7825...7826...7827...7828...7829...7830...7831...7832...7833...7834...7835...7836...7837...7838...7839...7840...7841...7842...7843...7844...7845...7846...7847...7848...7849...7850...7851...7852...7853...7854...7855...7856...7857...7858...7859...7860...7861...7862...7863...7864...7865...7866...7867...7868...7869...7870...7871...7872...7873...7874...7875...7876...7877...7878...7879...7880...7881...7882...7883...7884...7885...7886...7887...7888...7889...7890...7891...7892...7893...7894...7895...7896...7897...7898...7899...7900...7901...7902...7903...7904...7905...7906...7907...7908...7909...7910...7911...7912...7913...7914...7915...7916...7917...7918...7919...7920...7921...7922...7923...7924...7925...7926...7927...7928...7929...7930...7931...7932...7933...7934...7935...7936...7937...7938...7939...7940...7941...7942...7943...7944...7945...7946...7947...7948...7949...7950...7951...7952...7953...7954...7955...7956...7957...7958...7959...7960...7961...7962...7963...7964...7965...7966...7967...7968...7970...7970...7971...7972...7973...7974...7975...7976...7977...7978...7979...7980...7981...7982...7983...7984...7985...7986...7987...7988...7989...7990...7991...7992...7993...7994...7995...7996...7997...7998...7999...8000...8001...8002...8003...8004...8005...8006...8007...8008...8009...8010...8011...8012...8013...8014...8015...8016...8017...8018...8019...8020...8021...8022...8023...8024...8025...8026...8027...8028...8029...8030...8031...8032...8033...8034...8035...8036...8037...8038...8039...8040...8041...8042...8043...8044...8045...8046...8047...8048...8049...8050...8051...8052...8053...8054...8055...8056...8057...8058...8059...8060...8061...8062...8063...8064...8065...8066...8067...8068...8069...8070...8071...8072...8073...8074...8075...8076...8077...8078...8079...8080...8081...8082...8083...8084...8085...8086...8087...8088...8089...8090...8091...8092...8093...8094...8095...8096...8097...8098...8099...8100...8101...8102...8103...8104...8105...8106...8107...8108...8109...8110...8111...8112...8113...8114...8115...8116...8117...8118...8119...8120...8121...8122...8123...8124...8125...8126...8127...8128...8129...8130...8131...8132...8133...8134...8135...8136...8137...8138...8139...8140...8141...8142...8143...8144...8145...8146...8147...8148...8149...8150...8151...8152...8153...8154...8155...8156...8157...8158...8159...8160...8161...8162...8163...8164...8165...8166...8167...8168...8169...8170...8171...8172...8173...8174...8175...8176...8177...8178...8179...8180...8181...8182...8183...8184...8185...8186...8187...8188...8189...8190...8191...8192...8193...8194...8195...8196...8197...8198...8199...8200...8201...8202...8203...8204...8205...8206...8207...8208...8209...8210...8211...8212...8213...8214...8215...8216...8217...8218...8219...8220...8221...8222...8223...8224...8225...8226...8227...8228...8229...8230...8231...8232...8233...8234...8235...8236...8237...8238...8239...8240...8241...8242...8243...8244...8245...8246...8247...8248...8249...8250...8251...8252...8253...8254...8255...8256...8257...8258...8259...8260...8261...8262...8263...8264...8265...8266...8267...8268...8269...8270...8271...8272...8273...8274...8275...8276...8277...8278...8279...8280...8281...8282...8283...8284...8285...8286...8287...8288...8289...8290...8291...8292...8293...8294...8295...8296...8297...8298...8299...8300...8301...8302...8303...8304...8305...8306...8307...8308...8309...8310...8311...8312...8313...8314...8315...8316...8317...8318...8319...8320...8321...8322...8323...8324...8325...8326...8327...8328...8329...8330...8331...8332...8333...8334...8335...8336...8337...8338...8339...8340...8341...8342...8343...8344...8345...8346...8347...8348...8349...8350...8351...8352...8353...8354...8355...8356...8357...8358...8359...8360...8361...8362...8363...8364...8365...8366...8367...8368...8369...8370...8371...8372...8373...8374...8375...8376...8377...8378...8379...8380...8381...8382...8383...8384...8385...8386...8387...8388...8389...8390...8391...8392...8393...8394...8395...8396...8397...8398...8399...8400...8401...8402...8403...8404...8405...8406...8407...8408...8409...8410...8411...8412...8413...8414...8415...8416...8417...8418...8419...8420...8421...8422...8423...8424...8425...8426...8427...8428...8429...8430...8431...8432...8433...8434...8435...8436...8437...8439...8439...8440...8441...8442...8443...8444...8445...8446...8447...8448...8449...8450...8451...8452...8453...8454...8455...8456...8457...8458...8459...8460...8461...8462...8463...8464...8465...8466...8467...8468...8469...8470...8471...8472...8473...8474...8475...8476...8477...8478...8479...8480...8481...8482...8483...8484...8485...8486...8487...8488...8489...8490...8491...8492...8493...8494...8495...8496...8497...8498...8499...8500...8501...8502...8503...8504...8505...8506...8507...8508...8509...8510...8511...8512...8513...8514...8515...8516...8517...8518...8519...8520...8521...8522...8523...8524...8525...8526...8527...8528...8529...8530...8531...8532...8533...8534...8535...8536...8537...8538...8539...8540...8541...8542...8543...8544...8545...8546...8547...8548...8549...8550...8551...8552...8553...8554...8555...8556...8557...8558...8559...8560...8561...8562...8563...8564...8565...8566...8567...8568...8569...8570...8571...8572...8573...8574...8575...8576...8577...8578...8579...8580...8581...8582...8583...8584...8585...8586...8587...8588...8589...8590...8591...8592...8593...8594...8595...8596...8597...8598...8599...8600...8601...8602...8603...8604...8605...8606...8607...8608...8609...8610...8611...8612...8613...8614...8615...8616...8617...8618...8619...8620...8621...8622...8623...8624...8625...8626...8627...8628...8629...8630...8631...8632...8633...8634...8635...8636...8637...8638...8639...8640...8641...8642...8643...8644...8645...8646...8647...8648...8649...8650...8651...8652...8653...8654...8655...8656...8657...8658...8659...8660...8661...8662...8663...8664...8665...8666...8667...8668...8669...8670...8671...8672...8673...8674...8675...8676...8677...8678...8679...8680...8681...8682...8683...8684...8685...8686...8687...8688...8689...8690...8691...8692...8693...8694...8695...8696...8697...8698...8699...8700...8701...8702...8703...8704...8705...8706...8707...8708...8709...8710...8711...8712...8713...8714...8715...8716...8717...8718...8719...8720...8721...8722...8723...8724...8725...8726...8727...8728...8729...8730...8731...8732...8733...8734...8735...8736...8737...8738...8739...8740...8741...8742...8743...8744...8745...8746...8747...8748...8749...8750...8751...8752...8753...8754...8755...8756...8757...8758...8759...8760...8761...8762...8763...8764...8765...8766...8767...8768...8769...8770...8771...8772...8773...8774...8775...8776...8777...8778...8779...8780...8781...8782...8783...8784...8785...8786...8787...8788...8789...8790...8791...8792...8793...8794...8795...8796...8797...8798...8799...8800...8801...8802...8803...8804...8805...8806...8807...8808...8809...8810...8811...8812...8813...8814...8815...8816...8817...8818...8819...8820...8821...8822...8823...8824...8825...8826...8827...8828...8829...8830...8831...8832...8833...8834...8835...8836...8837...8838...8839...8840...8841...8842...8843...8844...8845...8846...8847...8848...8849...8850...8851...8852...8853...8854...8855...8856...8857...8858...8859...8860...8861...8862...8863...8864...8865...8866...8867...8868...8869...8870...8871...8872...8873...8874...8875...8876...8877...8878...8879...8880...8881...8882...8883...8884...8885...8886...8887...8888...8889...8890...8891...8892...8893...8894...8895...8896...8897...8898...8899...8900...8901...8902...8903...8904...8905...8906...8908...8908...8909...8910...8911...8912...8913...8914...8915...8916...8917...8918...8919...8920...8921...8922...8923...8924...8925...8926...8927...8928...8929...8930...8931...8932...8933...8934...8935...8936...8937...8938...8939...8940...8941...8942...8943...8944...8945...8946...8947...8948...8949...8950...8951...8952...8953...8954...8955...8956...8957...8958...8959...8960...8961...8962...8963...8964...8965...8966...8967...8968...8969...8970...8971...8972...8973...8974...8975...8976...8977...8978...8979...8980...8981...8982...8983...8984...8985...8986...8987...8988...8989...8990...8991...8992...8993...8994...8995...8996...8997...8998...8999...9000...9001...9002...9003...9004...9005...9006...9007...9008...9009...9010...9011...9012...9013...9014...9015...9016...9017...9018...9019...9020...9021...9022...9023...9024...9025...9026...9027...9028...9029...9030...9031...9032...9033...9034...9035...9036...9037...9038...9039...9040...9041...9042...9043...9044...9045...9046...9047...9048...9049...9050...9051...9052...9053...9054...9055...9056...9057...9058...9059...9060...9061...9062...9063...9064...9065...9066...9067...9068...9069...9070...9071...9072...9073...9074...9075...9076...9077...9078...9079...9080...9081...9082...9083...9084...9085...9086...9087...9088...9089...9090...9091...9092...9093...9094...9095...9096...9097...9098...9099...9100...9101...9102...9103...9104...9105...9106...9107...9108...9109...9110...9111...9112...9113...9114...9115...9116...9117...9118...9119...9120...9121...9122...9123...9124...9125...9126...9127...9128...9129...9130...9131...9132...9133...9134...9135...9136...9137...9138...9139...9140...9141...9142...9143...9144...9145...9146...9147...9148...9149...9150...9151...9152...9153...9154...9155...9156...9157...9158...9159...9160...9161...9162...9163...9164...9165...9166...9167...9168...9169...9170...9171...9172...9173...9174...9175...9176...9177...9178...9179...9180...9181...9182...9183...9184...9185...9186...9187...9188...9189...9190...9191...9192...9193...9194...9195...9196...9197...9198...9199...9200...9201...9202...9203...9204...9205...9206...9207...9208...9209...9210...9211...9212...9213...9214...9215...9216...9217...9218...9219...9220...9221...9222...9223...9224...9225...9226...9227...9228...9229...9230...9231...9232...9233...9234...9235...9236...9237...9238...9239...9240...9241...9242...9243...9244...9245...9246...9247...9248...9249...9250...9251...9252...9253...9254...9255...9256...9257...9258...9259...9260...9261...9262...9263...9264...9265...9266...9267...9268...9269...9270...9271...9272...9273...9274...9275...9276...9277...9278...9279...9280...9281...9282...9283...9284...9285...9286...9287...9288...9289...9290...9291...9292...9293...9294...9295...9296...9297...9298...9299...9300...9301...9302...9303...9304...9305...9306...9307...9308...9309...9310...9311...9312...9313...9314...9315...9316...9317...9318...9319...9320...9321...9322...9323...9324...9325...9326...9327...9328...9329...9330...9331...9332...9333...9334...9335...9336...9337...9338...9339...9340...9341...9342...9343...9344...9345...9346...9347...9348...9349...9350...9351...9352...9353...9354...9355...9356...9357...9358...9359...9360...9361...9362...9363...9364...9365...9366...9367...9368...9369...9370...9371...9372...9373...9374...9375...9376...9377...9378...9379...9380...9381...9382...9383...9384...9385...9386...9387...9388...9389...9390...9391...9392...9393...9394...9395...9396...9397...9398...9399...9400...9401...9402...9403...9404...9405...9406...9407...9408...9409...9410...9411...9412...9413...9414...9415...9416...9417...9418...9419...9420...9421...9422...9423...9424...9425...9426...9427...9428...9429...9430...9431...9432...9433...9434...9435...9436...9437...9438...9439...9440...9441...9442...9443...9444...9445...9446...9447...9448...9449...9450...9451...9452...9453...9454...9455...9456...9457...9458...9459...9460...9461...9462...9463...9464...9465...9466...9467...9468...9469...9470...9471...9472...9473...9474...9475...9476...9477...9478...9479...9480...9481...9482...9483...9484...9485...9486...9487...9488...9489...9490...9491...9492...9493...9494...9495...9496...9497...9498...9499...9500...9501...9502...9503...9504...9505...9506...9507...9508...9509...9510...9511...9512...9513...9514...9515...9516...9517...9518...9519...9520...9521...9522...9523...9524...9525...9526...9527...9528...9529...9530...9531...9532...9533...9534...9535...9536...9537...9538...9539...9540...9541...9542...9543...9544...9545...9546...9547...9548...9549...9550...9551...9552...9553...9554...9555...9556...9557...9558...9559...9560...9561...9562...9563...9564...9565...9566...9567...9568...9569...9570...9571...9572...9573...9574...9575...9576...9577...9578...9579...9580...9581...9582...9583...9584...9585...9586...9587...9588...9589...9590...9591...9592...9593...9594...9595...9596...9597...9598...9599...9600...9601...9602...9603...9604...9605...9606...9607...9608...9609...9610...9611...9612...9613...9614...9615...9616...9617...9618...9619...9620...9621...9622...9623...9624...9625...9626...9627...9628...9629...9630...9631...9632...9633...9634...9635...9636...9637...9638...9639...9640...9641...9642...9643...9644...9645...9646...9647...9648...9649...9650...9651...9652...9653...9654...9655...9656...9657...9658...9659...9660...9661...9662...9663...9664...9665...9666...9667...9668...9669...9670...9671...9672...9673...9674...9675...9676...9677...9678...9679...9680...9681...9682...9683...9684...9685...9686...9687...9688...9689...9690...9691...9692...9693...9694...9695...9696...9697...9698...9699...9700...9701...9702...9703...9704...9705...9706...9707...9708...9709...9710...9711...9712...9713...9714...9715...9716...9717...9718...9719...9720...9721...9722...9723...9724...9725...9726...9727...9728...9729...9730...9731...9732...9733...9734...9735...9736...9737...9738...9739...9740...9741...9742...9743...9744...9745...9746...9747...9748...9749...9750...9751...9752...9753...9754...9755...9756...9757...9758...9759...9760...9761...9762...9763...9764...9765...9766...9767...9768...9769...9770...9771...9772...9773...9774...9775...9776...9777...9778...9779...9780...9781...9782...9783...9784...9785...9786...9787...9788...9789...9790...9791...9792...9793...9794...9795...9796...9797...9798...9799...9800...9801...9802...9803...9804...9805...9806...9807...9808...9809...9810...9811...9812...9813...9814...9815...9816...9817...9818...9819...9820...9821...9822...9823...9824...9825...9826...9827...9828...9829...9830...9831...9832...9833...9834...9835...9836...9837...9838...9839...9840...9841...9842...9843...9845...9845...9846...9847...9848...9849...9850...9851...9852...9853...9854...9855...9856...9857...9858...9859...9860...9861...9862...9863...9864...9865...9866...9867...9868...9869...9870...9871...9872...9873...9874...9875...9876...9877...9878...9879...9880...9881...9882...9883...9884...9885...9886...9887...9888...9889...9890...9891...9892...9893...9894...9895...9896...9897...9898...9899...9900...9901...9902...9903...9904...9905...9906...9907...9908...9909...9910...9911...9912...9913...9914...9915...9916...9917...9918...9919...9920...9921...9922...9923...9924...9925...9926...9927...9928...9929...9930...9931...9932...9933...9934...9935...9936...9937...9938...9939...9940...9941...9942...9943...9944...9945...9946...9947...9948...9949...9950...9951...9952...9953...9954...9955...9956...9957...9958...9959...9960...9961...9962...9963...9964...9965...9966...9967...9968...9969...9970...9971...9972...9973...9974...9975...9976...9977...9978...9979...9980...9981...9982...9983...9984...9985...9986...9987...9988...9989...9990...9991...9992...9993...9994...9995...9996...9997...9998...9999...10000...10001...10002...10003...10004...10005...10006...10007...10008...10009...10010...10011...10012...10013...10014...10015...10016...10017...10018...10019...10020...10021...10022...10023...10024...10025...10026...10027...10028...10029...10030...10031...10032...10033...10034...10035...10036...10037...10038...10039...10040...10041...10042...10043...10044...10045...10046...10047...10048...10049...10050...10051...10052...10053...10054...10055...10056...10057...10058...10059...10060...10061...10062...10063...10064...10065...10066...10067...10068...10069...10070...10071...10072...10073...10074...10075...10076...10077...10078...10079...10080...10081...10082...10083...10084...10085...10086...10087...10088...10089...10090...10091...10092...10093...10094...10095...10096...10097...10098...10099...10100...10101...10102...10103...10104...10105...10106...10107...10108...10109...10110...10111...10112...10113...10114...10115...10116...10117...10118...10119...10120...10121...10122...10123...10124...10125...10126...10127...10128...10129...10130...10131...10132...10133...10134...10135...10136...10137...10138...10139...10140...10141...10142...10143...10144...10145...10146...10147...10148...10149...10150...10151...10152...10153...10154...10155...10156...10157...10158...10159...10160...10161...10162...10163...10164...10165...10166...10167...10168...10169...10170...10171...10172...10173...10174...10175...10176...10177...10178...10179...10180...10181...10182...10183...10184...10185...10186...10187...10188...10189...10190...10191...10192...10193...10194...10195...10196...10197...10198...10199...10200...10201...10202...10203...10204...10205...10206...10207...10208...10209...10210...10211...10212...10213...10214...10215...10216...10217...10218...10219...10220...10221...10222...10223...10224...10225...10226...10227...10228...10229...10230...10231...10232...10233...10234...10235...10236...10237...10238...10239...10240...10241...10242...10243...10244...10245...10246...10247...10248...10249...10250...10251...10252...10253...10254...10255...10256...10257...10258...10259...10260...10261...10262...10263...10264...10265...10266...10267...10268...10269...10270...10271...10272...10273...10274...10275...10276...10277...10278...10279...10280...10281...10282...10283...10284...10285...10286...10287...10288...10289...10290...10291...10292...10293...10294...10295...10296...10297...10298...10299...10300...10301...10302...10303...10304...10305...10306...10307...10308...10309...10310...10311...10312...10314...10314...10315...10316...10317...10318...10319...10320...10321...10322...10323...10324...10325...10326...10327...10328...10329...10330...10331...10332...10333...10334...10335...10336...10337...10338...10339...10340...10341...10342...10343...10344...10345...10346...10347...10348...10349...10350...10351...10352...10353...10354...10355...10356...10357...10358...10359...10360...10361...10362...10363...10364...10365...10366...10367...10368...10369...10370...10371...10372...10373...10374...10375...10376...10377...10378...10379...10380...10381...10382...10383...10384...10385...10386...10387...10388...10389...10390...10391...10392...10393...10394...10395...10396...10397...10398...10399...10400...10401...10402...10403...10404...10405...10406...10407...10408...10409...10410...10411...10412...10413...10414...10415...10416...10417...10418...10419...10420...10421...10422...10423...10424...10425...10426...10427...10428...10429...10430...10431...10432...10433...10434...10435...10436...10437...10438...10439...10440...10441...10442...10443...10444...10445...10446...10447...10448...10449...10450...10451...10452...10453...10454...10455...10456...10457...10458...10459...10460...10461...10462...10463...10464...10465...10466...10467...10468...10469...10470...10471...10472...10473...10474...10475...10476...10477...10478...10479...10480...10481...10482...10483...10484...10485...10486...10487...10488...10489...10490...10491...10492...10493...10494...10495...10496...10497...10498...10499...10500...10501...10502...10503...10504...10505...10506...10507...10508...10509...10510...10511...10512...10513...10514...10515...10516...10517...10518...10519...10520...10521...10522...10523...10524...10525...10526...10527...10528...10529...10530...10531...10532...10533...10534...10535...10536...10537...10538...10539...10540...10541...10542...10543...10544...10545...10546...10547...10548...10549...10550...10551...10552...10553...10554...10555...10556...10557...10558...10559...10560...10561...10562...10563...10564...10565...10566...10567...10568...10569...10570...10571...10572...10573...10574...10575...10576...10577...10578...10579...10580...10581...10582...10583...10584...10585...10586...10587...10588...10589...10590...10591...10592...10593...10594...10595...10596...10597...10598...10599...10600...10601...10602...10603...10604...10605...10606...10607...10608...10609...10610...10611...10612...10613...10614...10615...10616...10617...10618...10619...10620...10621...10622...10623...10624...10625...10626...10627...10628...10629...10630...10631...10632...10633...10634...10635...10636...10637...10638...10639...10640...10641...10642...10643...10644...10645...10646...10647...10648...10649...10650...10651...10652...10653...10654...10655...10656...10657...10658...10659...10660...10661...10662...10663...10664...10665...10666...10667...10668...10669...10670...10671...10672...10673...10674...10675...10676...10677...10678...10679...10680...10681...10682...10683...10684...10685...10686...10687...10688...10689...10690...10691...10692...10693...10694...10695...10696...10697...10698...10699...10700...10701...10702...10703...10704...10705...10706...10707...10708...10709...10710...10711...10712...10713...10714...10715...10716...10717...10718...10719...10720...10721...10722...10723...10724...10725...10726...10727...10728...10729...10730...10731...10732...10733...10734...10735...10736...10737...10738...10739...10740...10741...10742...10743...10744...10745...10746...10747...10748...10749...10750...10751...10752...10753...10754...10755...10756...10757...10758...10759...10760...10761...10762...10763...10764...10765...10766...10767...10768...10769...10770...10771...10772...10773...10774...10775...10776...10777...10778...10779...10780...10781...10783...10783...10784...10785...10786...10787...10788...10789...10790...10791...10792...10793...10794...10795...10796...10797...10798...10799...10800...10801...10802...10803...10804...10805...10806...10807...10808...10809...10810...10811...10812...10813...10814...10815...10816...10817...10818...10819...10820...10821...10822...10823...10824...10825...10826...10827...10828...10829...10830...10831...10832...10833...10834...10835...10836...10837...10838...10839...10840...10841...10842...10843...10844...10845...10846...10847...10848...10849...10850...10851...10852...10853...10854...10855...10856...10857...10858...10859...10860...10861...10862...10863...10864...10865...10866...10867...10868...10869...10870...10871...10872...10873...10874...10875...10876...10877...10878...10879...10880...10881...10882...10883...10884...10885...10886...10887...10888...10889...10890...10891...10892...10893...10894...10895...10896...10897...10898...10899...10900...10901...10902...10903...10904...10905...10906...10907...10908...10909...10910...10911...10912...10913...10914...10915...10916...10917...10918...10919...10920...10921...10922...10923...10924...10925...10926...10927...10928...10929...10930...10931...10932...10933...10934...10935...10936...10937...10938...10939...10940...10941...10942...10943...10944...10945...10946...10947...10948...10949...10950...10951...10952...10953...10954...10955...10956...10957...10958...10959...10960...10961...10962...10963...10964...10965...10966...10967...10968...10969...10970...10971...10972...10973...10974...10975...10976...10977...10978...10979...10980...10981...10982...10983...10984...10985...10986...10987...10988...10989...10990...10991...10992...10993...10994...10995...10996...10997...10998...10999...11000...11001...11002...11003...11004...11005...11006...11007...11008...11009...11010...11011...11012...11013...11014...11015...11016...11017...11018...11019...11020...11021...11022...11023...11024...11025...11026...11027...11028...11029...11030...11031...11032...11033...11034...11035...11036...11037...11038...11039...11040...11041...11042...11043...11044...11045...11046...11047...11048...11049...11050...11051...11052...11053...11054...11055...11056...11057...11058...11059...11060...11061...11062...11063...11064...11065...11066...11067...11068...11069...11070...11071...11072...11073...11074...11075...11076...11077...11078...11079...11080...11081...11082...11083...11084...11085...11086...11087...11088...11089...11090...11091...11092...11093...11094...11095...11096...11097...11098...11099...11100...11101...11102...11103...11104...11105...11106...11107...11108...11109...11110...11111...11112...11113...11114...11115...11116...11117...11118...11119...11120...11121...11122...11123...11124...11125...11126...11127...11128...11129...11130...11131...11132...11133...11134...11135...11136...11137...11138...11139...11140...11141...11142...11143...11144...11145...11146...11147...11148...11149...11150...11151...11152...11153...11154...11155...11156...11157...11158...11159...11160...11161...11162...11163...11164...11165...11166...11167...11168...11169...11170...11171...11172...11173...11174...11175...11176...11177...11178...11179...11180...11181...11182...11183...11184...11185...11186...11187...11188...11189...11190...11191...11192...11193...11194...11195...11196...11197...11198...11199...11200...11201...11202...11203...11204...11205...11206...11207...11208...11209...11210...11211...11212...11213...11214...11215...11216...11217...11218...11219...11220...11221...11222...11223...11224...11225...11226...11227...11228...11229...11230...11231...11232...11233...11234...11235...11236...11237...11238...11239...11240...11241...11242...11243...11244...11245...11246...11247...11248...11249...11250...11252...11252...11253...11254...11255...11256...11257...11258...11259...11260...11261...11262...11263...11264...11265...11266...11267...11268...11269...11270...11271...11272...11273...11274...11275...11276...11277...11278...11279...11280...11281...11282...11283...11284...11285...11286...11287...11288...11289...11290...11291...11292...11293...11294...11295...11296...11297...11298...11299...11300...11301...11302...11303...11304...11305...11306...11307...11308...11309...11310...11311...11312...11313...11314...11315...11316...11317...11318...11319...11320...11321...11322...11323...11324...11325...11326...11327...11328...11329...11330...11331...11332...11333...11334...11335...11336...11337...11338...11339...11340...11341...11342...11343...11344...11345...11346...11347...11348...11349...11350...11351...11352...11353...11354...11355...11356...11357...11358...11359...11360...11361...11362...11363...11364...11365...11366...11367...11368...11369...11370...11371...11372...11373...11374...11375...11376...11377...11378...11379...11380...11381...11382...11383...11384...11385...11386...11387...11388...11389...11390...11391...11392...11393...11394...11395...11396...11397...11398...11399...11400...11401...11402...11403...11404...11405...11406...11407...11408...11409...11410...11411...11412...11413...11414...11415...11416...11417...11418...11419...11420...11421...11422...11423...11424...11425...11426...11427...11428...11429...11430...11431...11432...11433...11434...11435...11436...11437...11438...11439...11440...11441...11442...11443...11444...11445...11446...11447...11448...11449...11450...11451...11452...11453...11454...11455...11456...11457...11458...11459...11460...11461...11462...11463...11464...11465...11466...11467...11468...11469...11470...11471...11472...11473...11474...11475...11476...11477...11478...11479...11480...11481...11482...11483...11484...11485...11486...11487...11488...11489...11490...11491...11492...11493...11494...11495...11496...11497...11498...11499...11500...11501...11502...11503...11504...11505...11506...11507...11508...11509...11510...11511...11512...11513...11514...11515...11516...11517...11518...11519...11520...11521...11522...11523...11524...11525...11526...11527...11528...11529...11530...11531...11532...11533...11534...11535...11536...11537...11538...11539...11540...11541...11542...11543...11544...11545...11546...11547...11548...11549...11550...11551...11552...11553...11554...11555...11556...11557...11558...11559...11560...11561...11562...11563...11564...11565...11566...11567...11568...11569...11570...11571...11572...11573...11574...11575...11576...11577...11578...11579...11580...11581...11582...11583...11584...11585...11586...11587...11588...11589...11590...11591...11592...11593...11594...11595...11596...11597...11598...11599...11600...11601...11602...11603...11604...11605...11606...11607...11608...11609...11610...11611...11612...11613...11614...11615...11616...11617...11618...11619...11620...11621...11622...11623...11624...11625...11626...11627...11628...11629...11630...11631...11632...11633...11634...11635...11636...11637...11638...11639...11640...11641...11642...11643...11644...11645...11646...11647...11648...11649...11650...11651...11652...11653...11654...11655...11656...11657...11658...11659...11660...11661...11662...11663...11664...11665...11666...11667...11668...11669...11670...11671...11672...11673...11674...11675...11676...11677...11678...11679...11680...11681...11682...11683...11684...11685...11686...11687...11688...11689...11690...11691...11692...11693...11694...11695...11696...11697...11698...11699...11700...11701...11702...11703...11704...11705...11706...11707...11708...11709...11710...11711...11712...11713...11714...11715...11716...11717...11718...11719... \ No newline at end of file +0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...70...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...162...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...232...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...324... \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 7657247..1765974 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,58 +1,82 @@ -(function() { - var domain; +var toffee; + +if (!toffee) toffee = {}; - domain = this; +if (!toffee.templates) toffee.templates = {}; + +toffee.print = function(__toffee, txt) { + if (__toffee.state === states.COFFEE) { + __toffee.out.push(txt); + return ''; + } else { + return "" + txt + "x"; + } +}; + +toffee.json = function(__toffee, o) { + var json; + try { + json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + } catch (e) { + throw { + stack: [], + message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, + toffee_line_base: __toffee.lineno + }; + } + return "" + json; +}; + +toffee.raw = function(__toffee, o) { + return o; +}; + +toffee.html = function(__toffee, o) { + return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); +}; + +toffee.escape = function(__toffee, o) { + if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { + if (o === void 0) return ''; + if ((o != null) && (typeof o) === "object") return __toffee.json(o); + return __toffee.html(o); + } + return o; +}; +(function() { - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/big_file/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var count, escape, html, i, json, print, raw, states, _i; - domain = this; + toffee.templates["/big_file/input.toffee"].pub = function(locals) { + var count, escape, html, i, json, print, raw, states, _i, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -4958,65 +4982,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/big_file/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/big_file/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/big_file/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5034,65 +5037,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/big_file/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/comments/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/comments/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5133,65 +5115,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/comments/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/comments/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/comments/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5220,65 +5181,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/comments/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/custom_escape/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states, w, x, y, z; - domain = this; + toffee.templates["/custom_escape/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, w, x, y, z, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5377,65 +5317,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/custom_escape/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/custom_escape/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/custom_escape/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5499,65 +5418,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/custom_escape/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/eco_compare/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, f, friends, html, json, print, project, raw, states, _i, _len, _ref; - domain = this; + toffee.templates["/eco_compare/input.toffee"].pub = function(locals) { + var escape, f, friends, html, json, print, project, raw, states, _i, _len, _ref, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5643,65 +5541,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/eco_compare/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/eco_compare/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/eco_compare/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5735,65 +5612,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/eco_compare/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/escape/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states, w, x, y, z; - domain = this; + toffee.templates["/escape/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, w, x, y, z, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -5928,65 +5784,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/escape/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/escape/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/escape/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6078,65 +5913,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/escape/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/hello_world/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/hello_world/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6155,65 +5969,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/hello_world/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/hello_world/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/hello_world/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6231,65 +6024,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/hello_world/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/hello_world/temp.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/hello_world/temp.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6320,65 +6092,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/hello_world/temp.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_order/child.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_order/child.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6405,65 +6156,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_order/child.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_order/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, say_hi, states; - domain = this; + toffee.templates["/include_order/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, say_hi, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6500,65 +6230,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_order/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_order/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_order/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6588,65 +6297,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_order/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_recursion/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_recursion/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6671,68 +6359,47 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_recursion/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_recursion/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_recursion/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); }; } - states = { + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); + }; + } + if (!(typeof escape !== "undefined" && escape !== null)) { + escape = function(o) { + return _toffeePtr.escape(__toffee, o); + }; + } + states = { "TOFFEE": 1, "COFFEE": 2 }; @@ -6747,65 +6414,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_recursion/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_techniques/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_techniques/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6846,65 +6492,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_techniques/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/include_techniques/message.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, from, html, json, print, raw, states; - domain = this; + toffee.templates["/include_techniques/message.toffee"].pub = function(locals) { + var escape, from, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -6929,65 +6554,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_techniques/message.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/include_techniques/output.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/include_techniques/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7028,65 +6632,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/include_techniques/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/indent_attack/input.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, i, json, print, raw, states, x, _i; - domain = this; + toffee.templates["/indent_attack/input.toffee"].pub = function(locals) { + var escape, html, i, json, print, raw, states, x, _i, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7296,65 +6879,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/indent_attack/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/indent_attack/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/indent_attack/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7400,65 +6962,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/indent_attack/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/junk/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states, supplies, supply, _i, _len; - domain = this; + toffee.templates["/junk/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, supplies, supply, _i, _len, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7494,65 +7035,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/junk/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/junk/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/junk/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7574,65 +7094,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/junk/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/lambda_fns/input.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var echo_it, escape, html, json, print, print_it, print_it_twice, raw, states; - domain = this; + toffee.templates["/lambda_fns/input.toffee"].pub = function(locals) { + var echo_it, escape, html, json, print, print_it, print_it_twice, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7675,65 +7174,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/lambda_fns/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/lambda_fns/output.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/lambda_fns/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7751,65 +7229,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/lambda_fns/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/multiline_interpolation/foo.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/multiline_interpolation/foo.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7829,65 +7286,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/multiline_interpolation/foo.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/multiline_interpolation/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/multiline_interpolation/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7915,65 +7351,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/multiline_interpolation/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/multiline_interpolation/output.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/multiline_interpolation/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -7995,65 +7410,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/multiline_interpolation/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/plaintext/input.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/plaintext/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8071,65 +7465,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/plaintext/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/plaintext/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/plaintext/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8147,65 +7520,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/plaintext/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/snippets/foo/bar/body.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, msg, print, raw, states; - domain = this; + toffee.templates["/snippets/foo/bar/body.toffee"].pub = function(locals) { + var escape, html, json, msg, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8222,65 +7574,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/snippets/foo/bar/body.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/snippets/foo/message.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, from, html, json, msg, print, raw, states; - domain = this; + toffee.templates["/snippets/foo/message.toffee"].pub = function(locals) { + var escape, from, html, json, msg, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8300,65 +7631,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/snippets/foo/message.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/snippets/input.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/snippets/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8389,65 +7699,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/snippets/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - domain = this; + toffee.templates["/snippets/output.toffee"] = {}; - domain.toffeeTemplates = domain.toffeeTemplates || {}; - - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/snippets/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8479,65 +7768,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/snippets/output.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/special_cases/input.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/special_cases/input.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8579,65 +7847,44 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/special_cases/input.toffee"].pub(__toffee_run_input); } }).call(this); (function() { - var domain; - - domain = this; - domain.toffeeTemplates = domain.toffeeTemplates || {}; + toffee.templates["/special_cases/output.toffee"] = {}; - domain.toffeeTemplates["pub"] = function(locals) { - var escape, html, json, print, raw, states; - domain = this; + toffee.templates["/special_cases/output.toffee"].pub = function(locals) { + var escape, html, json, print, raw, states, _toffeePtr; + _toffeePtr = toffee; locals.__toffee = {}; with (locals) {; __toffee.out = []; if (!(typeof print !== "undefined" && print !== null)) { - print = function(txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); - return ''; - } else { - return "" + txt + "x"; - } + print = function(o) { + return _toffeePtr.print(__toffee, o); + }; + } + if (!(typeof json !== "undefined" && json !== null)) { + json = function(o) { + return _toffeePtr.json(__toffee, o); + }; + } + if (!(typeof raw !== "undefined" && raw !== null)) { + raw = function(o) { + return _toffeePtr.raw(__toffee, o); + }; + } + if (!(typeof html !== "undefined" && html !== null)) { + html = function(o) { + return _toffeePtr.html(__toffee, o); }; } - __toffee.json = function(o) { - var json, res; - try { - json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno - }; - } - return res = "" + json; - }; - __toffee.html = function(o) { - var res; - return res = ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - }; - __toffee.raw = function(o) { - return o; - }; - if (!(typeof raw !== "undefined" && raw !== null)) raw = __toffee.raw; - if (!(typeof html !== "undefined" && html !== null)) html = __toffee.html; - if (!(typeof json !== "undefined" && json !== null)) json = __toffee.json; if (!(typeof escape !== "undefined" && escape !== null)) { escape = function(o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); - } - return o; + return _toffeePtr.escape(__toffee, o); }; } states = { @@ -8665,7 +7912,7 @@ }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return domain.toffeeTemplates["pub"](__toffee_run_input); + return toffee.templates["/special_cases/output.toffee"].pub(__toffee_run_input); } }).call(this); diff --git a/toffee.js b/toffee.js index 357aaa5..50006bb 100644 --- a/toffee.js +++ b/toffee.js @@ -6836,13 +6836,13 @@ if (typeof module !== 'undefined' && require.main === module) { }).call(this); }, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { - var compile, fs, getVersionNumber, path, program, recurseRun, run, view; + var compile, fs, getCommonHeadersJs, getVersionNumber, path, program, recurseRun, run, view, _ref; fs = require('fs'); path = require('path'); - view = require('../lib/view').view; + _ref = require('../lib/view'), view = _ref.view, getCommonHeadersJs = _ref.getCommonHeadersJs; program = require('commander'); @@ -6863,15 +6863,14 @@ if (typeof module !== 'undefined' && require.main === module) { /* e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - this compiles it specifically as - {identifier}/car/thing - where identifier is "bar" if nothing passed from cmd line */ var source, v; source = fs.readFileSync(path, 'utf8'); v = new view(source, { - fileName: path + fileName: path, + bundlePath: path.slice(start_path.length), + browserMode: true }); return v._toJavaScript(); }; @@ -6913,6 +6912,7 @@ if (typeof module !== 'undefined' && require.main === module) { } start_path = path.normalize(start_path); out_text = recurseRun(start_path, start_path, ""); + out_text = getCommonHeadersJs() + out_text; return console.log(out_text); } }; @@ -7254,7 +7254,7 @@ if (typeof module !== 'undefined' && require.main === module) { _results = []; for (i = _i = 0, _len = stack.length; _i < _len; i = ++_i) { line = stack[i]; - rxx_pub = RegExp("Object[\\.]" + this.view.identifier + "[\\s]\\(undefined\\:([0-9]+)\\:[0-9]+"); + rxx_pub = /Object[\.]pub[\s]\(undefined\:([0-9]+)\:[0-9]+/; m = line.match(rxx_pub); in_src_file = false; lrange = [null, null]; @@ -8059,7 +8059,7 @@ if (typeof module !== 'undefined' && require.main === module) { }).call(this); }, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 (function() { - var TAB_SPACES, coffee, errorHandler, errorTypes, parser, states, toffeeError, utils, view, vm, _ref, _ref1; + var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; parser = require('./toffee_lang').parser; @@ -8077,6 +8077,22 @@ if (typeof module !== 'undefined' && require.main === module) { coffee = require("coffee-script"); } + getCommonHeaders = function() { + /* + each view will use this, or if they're bundled together, + it'll only be used once + */ + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.raw = (locals, o) -> o\n\ntoffee.html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.escape = (locals, o) ->\n console.log locals\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; + }; + + getCommonHeadersJs = function() { + var ch; + ch = getCommonHeaders(); + return coffee.compile(ch, { + bare: true + }); + }; + view = (function() { view.name = 'view'; @@ -8090,7 +8106,8 @@ if (typeof module !== 'undefined' && require.main === module) { var _this = this; options = options || {}; this.fileName = options.fileName || options.filename || null; - this.identifier = options.indentifier || "pub"; + this.bundlePath = options.bundlePath || "/"; + this.browserMode = options.browserMode || false; this.verbose = options.verbose || false; this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.txt = txt; @@ -8312,7 +8329,7 @@ if (typeof module !== 'undefined' && require.main === module) { } break; case "TOFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = states.TOFFEE"; + res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.TOFFEE"; _ref4 = obj[1]; for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { item = _ref4[_j]; @@ -8321,7 +8338,7 @@ if (typeof module !== 'undefined' && require.main === module) { } break; case "COFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = states.COFFEE"; + res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.COFFEE"; zone_baseline = this._getZoneBaseline(obj[1]); temp_indent_level = indent_level; _ref6 = obj[1]; @@ -8334,7 +8351,7 @@ if (typeof module !== 'undefined' && require.main === module) { break; case "TOFFEE": ind = indent_level; - res += "\n" + (this._space(ind)) + "__toffee.state = states.TOFFEE"; + res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.TOFFEE"; lineno = obj[2]; try { t_int = utils.interpolateString(obj[1]); @@ -8374,7 +8391,7 @@ if (typeof module !== 'undefined' && require.main === module) { } } res += this._printLineNo(obj[2] + (obj[1].split('\n').length - 1), ind); - res += "\n" + (this._space(ind)) + "__toffee.state = states.COFFEE"; + res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.COFFEE"; break; case "COFFEE": c = obj[1]; @@ -8538,13 +8555,13 @@ if (typeof module !== 'undefined' && require.main === module) { view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "domain = this\ndomain.toffeeTemplates = domain.toffeeTemplates or {}\ndomain.toffeeTemplates[\"" + this.identifier + "\"] = (locals) ->\n" + ___ + "domain = this\n" + ___ + "locals.__toffee = {}\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []\n\n" + ___ + "if not print?\n" + ___ + ___ + "print = (txt) ->\n" + ___ + ___ + ___ + "if __toffee.state is states.COFFEE\n" + ___ + ___ + ___ + ___ + "__toffee.out.push txt\n" + ___ + ___ + ___ + ___ + "return ''\n" + ___ + ___ + ___ + "else\n" + ___ + ___ + ___ + ___ + "return \"\#{txt}x\"\n\n" + ___ + "__toffee.json = (o) ->\n" + ___ + ___ + "try\n" + ___ + ___ + ___ + "json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n" + ___ + ___ + "catch e\n" + ___ + ___ + ___ + "throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{__toffee.lineno}\", toffee_line_base: __toffee.lineno }\n" + ___ + ___ + "res = \"\" + json\n\n" + ___ + "__toffee.html = (o) ->\n" + ___ + ___ + "res = (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + ___ + "__toffee.raw = (o) -> o\n\n" + ___ + "if not raw? then raw = __toffee.raw\n" + ___ + "if not html? then html = __toffee.html\n" + ___ + "if not json? then json = __toffee.json\n\n" + ___ + "if not escape?\n" + ___ + ___ + "escape = (o) ->\n" + ___ + ___ + ___ + "if (not __toffee.autoEscape?) or __toffee.autoEscape\n" + ___ + ___ + ___ + ___ + "if o is undefined then return ''\n" + ___ + ___ + ___ + ___ + "if o? and (typeof o) is \"object\" then return __toffee.json o\n" + ___ + ___ + ___ + ___ + "return __toffee.html o\n" + ___ + ___ + ___ + "return o\n\n" + ___ + "states = " + (JSON.stringify(states)); + return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { var ___; ___ = this._tabAsSpaces(); - return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return domain.toffeeTemplates[\"" + this.identifier + "\"] __toffee_run_input"; + return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return toffee.templates[\"" + this.bundlePath + "\"].pub __toffee_run_input"; }; return view; @@ -8553,6 +8570,10 @@ if (typeof module !== 'undefined' && require.main === module) { exports.view = view; + exports.getCommonHeaders = getCommonHeaders; + + exports.getCommonHeadersJs = getCommonHeadersJs; + exports.expressCompile = function(txt, options) { var v; v = new view(txt, options); From acc4d027b46f256a7db4fb3cc5e7f35649e63d92 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 31 Jul 2012 09:22:59 -0400 Subject: [PATCH 020/163] incremental' --- index.js | 2 +- lib/command_line.js | 2 +- lib/consts.js | 2 +- lib/engine.js | 4 +--- lib/errorHandler.js | 4 +--- lib/utils.js | 2 +- lib/view.js | 8 +++----- src/view.coffee | 27 ++++++++++++++++----------- toffee.js | 22 ++++++++-------------- 9 files changed, 33 insertions(+), 40 deletions(-) diff --git a/index.js b/index.js index cd2ae2b..5d397bc 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var e, eclass; diff --git a/lib/command_line.js b/lib/command_line.js index 65d82cf..5ee25ca 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, path, program, recurseRun, run, view, _ref; diff --git a/lib/consts.js b/lib/consts.js index c249598..cd77ed6 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { exports.states = { diff --git a/lib/engine.js b/lib/engine.js index 2bb8747..b0ba08a 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var engine, fs, path, states, util, utils, view, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -17,8 +17,6 @@ engine = (function() { - engine.name = 'engine'; - function engine(options) { this._fn_partial = __bind(this._fn_partial, this); diff --git a/lib/errorHandler.js b/lib/errorHandler.js index d6ee626..03c6edb 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var eh, errorTypes, path, toffeeError, util, _ppEscape; @@ -15,8 +15,6 @@ toffeeError = (function() { - toffeeError.name = 'toffeeError'; - function toffeeError(view, err_type, e) { this.errType = err_type; this.view = view; diff --git a/lib/utils.js b/lib/utils.js index dac3474..28733ef 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var lex, lexer; diff --git a/lib/view.js b/lib/view.js index 1be433d..198cdcd 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.3.1 +// Generated by CoffeeScript 1.3.3 (function() { var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; @@ -23,7 +23,7 @@ each view will use this, or if they're bundled together, it'll only be used once */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.raw = (locals, o) -> o\n\ntoffee.html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.escape = (locals, o) ->\n console.log locals\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; }; getCommonHeadersJs = function() { @@ -36,8 +36,6 @@ view = (function() { - view.name = 'view'; - function view(txt, options) { /* important options: @@ -496,7 +494,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o\n\n" + ___ + "locals.__toffee.print = locals.print\n" + ___ + "locals.__toffee.json = locals.json\n" + ___ + "locals.__toffee.raw = locals.raw\n" + ___ + "locals.__toffee.html = locals.html\n" + ___ + "locals.__toffee.escape = locals.escape\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index 195bcec..8308303 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -20,27 +20,26 @@ if not toffee.templates then toffee.templates = {} toffee.states = #{JSON.stringify states} -toffee.print = (locals, o) -> +toffee.__print = (locals, o) -> if locals.__toffee.state is toffee.states.COFFEE locals.__toffee.out.push o return '' else return "\#{o}" -toffee.json = (locals, o) -> +toffee.__json = (locals, o) -> try json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') catch e throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}", toffee_line_base: locals.__toffee.lineno } "" + json -toffee.raw = (locals, o) -> o +toffee.__raw = (locals, o) -> o -toffee.html = (locals, o) -> +toffee.__html = (locals, o) -> (""+o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') -toffee.escape = (locals, o) -> - console.log locals +toffee.__escape = (locals, o) -> if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape if o is undefined then return '' if o? and (typeof o) is "object" then return locals.json o @@ -384,11 +383,17 @@ toffee.templates["#{@bundlePath}"].pub = (locals) -> #{___}localsPointer = locals #{___}locals.__toffee = {} -#{___}if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o -#{___}if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o -#{___}if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o -#{___}if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o -#{___}if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o +#{___}if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o +#{___}if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o +#{___}if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o +#{___}if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o +#{___}if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o + +#{___}locals.__toffee.print = locals.print +#{___}locals.__toffee.json = locals.json +#{___}locals.__toffee.raw = locals.raw +#{___}locals.__toffee.html = locals.html +#{___}locals.__toffee.escape = locals.escape #{___}`with (locals) {` #{___}__toffee.out = [] diff --git a/toffee.js b/toffee.js index 50006bb..1e519fc 100644 --- a/toffee.js +++ b/toffee.js @@ -6834,7 +6834,7 @@ if (typeof module !== 'undefined' && require.main === module) { })(); }).call(this); -}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, path, program, recurseRun, run, view, _ref; @@ -6922,7 +6922,7 @@ if (typeof module !== 'undefined' && require.main === module) { } }).call(this); -}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { exports.states = { @@ -6933,7 +6933,7 @@ if (typeof module !== 'undefined' && require.main === module) { exports.TAB_SPACES = 2; }).call(this); -}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { var engine, fs, path, states, util, utils, view, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -6952,8 +6952,6 @@ if (typeof module !== 'undefined' && require.main === module) { engine = (function() { - engine.name = 'engine'; - function engine(options) { this._fn_partial = __bind(this._fn_partial, this); @@ -7151,7 +7149,7 @@ if (typeof module !== 'undefined' && require.main === module) { exports.engine = engine; }).call(this); -}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { var eh, errorTypes, path, toffeeError, util, _ppEscape; @@ -7168,8 +7166,6 @@ if (typeof module !== 'undefined' && require.main === module) { toffeeError = (function() { - toffeeError.name = 'toffeeError'; - function toffeeError(view, err_type, e) { this.errType = err_type; this.view = view; @@ -7989,7 +7985,7 @@ exports.main = function commonjsMain(args) { if (typeof module !== 'undefined' && require.main === module) { exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); } -}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { var lex, lexer; @@ -8057,7 +8053,7 @@ if (typeof module !== 'undefined' && require.main === module) { }; }).call(this); -}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 +}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 (function() { var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; @@ -8082,7 +8078,7 @@ if (typeof module !== 'undefined' && require.main === module) { each view will use this, or if they're bundled together, it'll only be used once */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.raw = (locals, o) -> o\n\ntoffee.html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.escape = (locals, o) ->\n console.log locals\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; }; getCommonHeadersJs = function() { @@ -8095,8 +8091,6 @@ if (typeof module !== 'undefined' && require.main === module) { view = (function() { - view.name = 'view'; - function view(txt, options) { /* important options: @@ -8555,7 +8549,7 @@ if (typeof module !== 'undefined' && require.main === module) { view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.escape localsPointer, o\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o\n\n" + ___ + "locals.__toffee.print = locals.print\n" + ___ + "locals.__toffee.json = locals.json\n" + ___ + "locals.__toffee.raw = locals.raw\n" + ___ + "locals.__toffee.html = locals.html\n" + ___ + "locals.__toffee.escape = locals.escape\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { From a71b4941af92218ff6a022b1976169cb7cecb861 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 31 Jul 2012 18:04:52 -0300 Subject: [PATCH 021/163] Update README.md --- README.md | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 5e1ad49..356e37c 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,16 @@ Beta! And usable! If you hit any snags, let me know and I'll act fast. examples ======== Printing variables is easy. Just use CoffeeScript's #{} syntax: -``` -

+```html +

Hey, #{user.name}. #{flirty_welcome_msg} -

+
``` The `#{}` syntax is powerful, so be responsible. -``` +```html

You have #{(f for f in friends when f.gender is "f").length} female friends.

@@ -28,7 +28,7 @@ The `#{}` syntax is powerful, so be responsible. Including other files is possible thanks to the function `partial`. This works in Express 3.0, too. -``` +```html

#{partial "navigation.toffee", {username: user.name, age: 22} }

@@ -37,7 +37,7 @@ Including other files is possible thanks to the function `partial`. This works i But the greatest pleasure arises when you enter `coffee mode`. Note the `{# ... #}` region. -``` +```html

{# ten_numbers = (Math.random() for i in [0...10]) @@ -49,15 +49,13 @@ But the greatest pleasure arises when you enter Further, inside `coffee mode`, you can switch back to `toffee mode` with `{: ... :}`. It's endlessly nestable. -``` +```html

{# if projects.length for project in projects {:
- #{project.title} | - #{project.description} Read more
:} @@ -77,14 +75,14 @@ EJS, verbose and weak. ``` TOFFEE, so elegant and proud. -``` +```html {# for supply in supplies {:
  • #{supply}
  • :} #} ``` Or, using the built-in `print`: -``` +```html {# for supply in supplies print "
  • #{supply}
  • " @@ -96,16 +94,16 @@ is customizable. More on that below. With nested code, indentation is inferred. -``` +```html {# - for name, info of friends when info.age < 21 {: + for name, profile of friends when profile.is_responsible {:

    You know, #{name} would make a great designated driver. - And she only lives #{info.distance} miles away. + And she only lives #{profile.distance}km away. {# - info.cars.sort (a,b) -> b.speed - a.speed - if info.cars.length {: And wow, she drives a #{info.cars[0].model} :} - else {: But, alas, she has no wheels. :} + profile.cars.sort (a,b) -> b.speed - a.speed + if profile.cars.length {: And wow, she drives a #{profile.cars[0].model} :} + else {: But, alas, she has no wheels. :} #}

    :} @@ -150,7 +148,7 @@ In your CoffeeScript, the `print` function lets you print the raw value of a var But in toffee mode, `#{some_expression}` output is escaped intelligently by default: -``` +```html

    #{danger_code}

    ``` @@ -176,7 +174,7 @@ built in escape function. These functions are also available to you in coffee mode. -``` +```html

    Want to read some JSON, human? {# @@ -219,7 +217,7 @@ ECO ``` TOFFEE -``` +```html {# if @projects.length for project in @projects @@ -293,17 +291,17 @@ So it doesn't matter how you indent things, as long as it makes local sense insi For example, these are all identical: -``` +```html

    {# if x is 0 {:Yay!:} else {:Burned:} #}

    ``` -``` +```html

    {# if x is 0 {:Yay!:} else {:Burned:} #}

    ``` -``` +```html

    {# if x is 0 {:Yay!:} @@ -314,7 +312,7 @@ For example, these are all identical: However, this would cause an error: ERROR -``` +```html

    {# if x is 0 {:Yay!:} @@ -325,7 +323,7 @@ ERROR As would this more subtle case: ERROR -``` +```html

    {# if x is 0 {:Yay!:} else {:Burned:} From 83900558af92be1601368253bcb3b155d7242f61 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 31 Jul 2012 18:06:44 -0300 Subject: [PATCH 022/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 356e37c..9689929 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ examples ======== Printing variables is easy. Just use CoffeeScript's #{} syntax: ```html -

    +
    Hey, #{user.name}. #{flirty_welcome_msg}
    From 648bb92f64d058601ad69288aef6701503d65bec Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 31 Jul 2012 18:08:34 -0300 Subject: [PATCH 023/163] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9689929..8793049 100644 --- a/README.md +++ b/README.md @@ -50,13 +50,13 @@ But the greatest pleasure arises when you enter Further, inside `coffee mode`, you can switch back to `toffee mode` with `{: ... :}`. It's endlessly nestable. ```html -
    -
    +
    +
    {# if projects.length for project in projects {: -
    - Read more + :} #} From 72e4919ded1c5cf668a03442b7cae39fe8d8cf38 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 31 Jul 2012 17:29:26 -0400 Subject: [PATCH 024/163] added dependencies back in --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index e3e8523..ae8f3eb 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "author": "Chris Coyne ", "bin": "./bin/toffee", "dependencies": { + "coffee-script": "*", + "commander": "*" }, "repository": { "type": "git", From 8f669123dd80ff06a2335c5074574396d434d3e4 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 31 Jul 2012 17:33:08 -0400 Subject: [PATCH 025/163] no need for the stitched toffee.js right now --- Cakefile | 20 +- toffee.js | 8586 ----------------------------------------------------- 2 files changed, 10 insertions(+), 8596 deletions(-) delete mode 100644 toffee.js diff --git a/Cakefile b/Cakefile index 951d120..1836137 100644 --- a/Cakefile +++ b/Cakefile @@ -11,9 +11,9 @@ task 'build', 'build the whole jam', (cb) -> buildParser -> runCoffee ['-c', '-o', 'lib/'].concat(files), -> runCoffee ['-c', 'index.coffee'], -> - stitchIt -> - console.log "Done building." - cb() if typeof cb is 'function' + #stitchIt -> + console.log "Done building." + cb() if typeof cb is 'function' runCoffee = (args, cb) -> proc = spawn 'coffee', args @@ -23,13 +23,13 @@ runCoffee = (args, cb) -> process.exit(1) if status != 0 cb() if typeof cb is 'function' -stitchIt = (cb) -> - s = stitch.createPackage { paths: ['lib'] } - s.compile (err, source) -> - fs.writeFile 'toffee.js', source, (err) -> - if err then throw err - console.log "Stitched." - cb() +#stitchIt = (cb) -> +# s = stitch.createPackage { paths: ['lib'] } +# s.compile (err, source) -> +# fs.writeFile 'toffee.js', source, (err) -> +# if err then throw err +# console.log "Stitched." +# cb() clearLibJs = (cb) -> files = fs.readdirSync 'lib' diff --git a/toffee.js b/toffee.js deleted file mode 100644 index 1e519fc..0000000 --- a/toffee.js +++ /dev/null @@ -1,8586 +0,0 @@ - -(function(/*! Stitch !*/) { - if (!this.require) { - var modules = {}, cache = {}, require = function(name, root) { - var path = expand(root, name), module = cache[path], fn; - if (module) { - return module.exports; - } else if (fn = modules[path] || modules[path = expand(path, './index')]) { - module = {id: path, exports: {}}; - try { - cache[path] = module; - fn(module.exports, function(name) { - return require(name, dirname(path)); - }, module); - return module.exports; - } catch (err) { - delete cache[path]; - throw err; - } - } else { - throw 'module \'' + name + '\' not found'; - } - }, expand = function(root, name) { - var results = [], parts, part; - if (/^\.\.?(\/|$)/.test(name)) { - parts = [root, name].join('/').split('/'); - } else { - parts = name.split('/'); - } - for (var i = 0, length = parts.length; i < length; i++) { - part = parts[i]; - if (part == '..') { - results.pop(); - } else if (part != '.' && part != '') { - results.push(part); - } - } - return results.join('/'); - }, dirname = function(path) { - return path.split('/').slice(0, -1).join('/'); - }; - this.require = function(name) { - return require(name, ''); - } - this.require.define = function(bundle) { - for (var key in bundle) - modules[key] = bundle[key]; - }; - } - return this.require.define; -}).call(this)({"coffee-script/browser": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var CoffeeScript, runScripts; - - CoffeeScript = require('./coffee-script'); - - CoffeeScript.require = require; - - CoffeeScript["eval"] = function(code, options) { - if (options == null) { - options = {}; - } - if (options.bare == null) { - options.bare = true; - } - return eval(CoffeeScript.compile(code, options)); - }; - - CoffeeScript.run = function(code, options) { - if (options == null) { - options = {}; - } - options.bare = true; - return Function(CoffeeScript.compile(code, options))(); - }; - - if (typeof window === "undefined" || window === null) { - return; - } - - CoffeeScript.load = function(url, callback) { - var xhr; - xhr = new (window.ActiveXObject || XMLHttpRequest)('Microsoft.XMLHTTP'); - xhr.open('GET', url, true); - if ('overrideMimeType' in xhr) { - xhr.overrideMimeType('text/plain'); - } - xhr.onreadystatechange = function() { - var _ref; - if (xhr.readyState === 4) { - if ((_ref = xhr.status) === 0 || _ref === 200) { - CoffeeScript.run(xhr.responseText); - } else { - throw new Error("Could not load " + url); - } - if (callback) { - return callback(); - } - } - }; - return xhr.send(null); - }; - - runScripts = function() { - var coffees, execute, index, length, s, scripts; - scripts = document.getElementsByTagName('script'); - coffees = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = scripts.length; _i < _len; _i++) { - s = scripts[_i]; - if (s.type === 'text/coffeescript') { - _results.push(s); - } - } - return _results; - })(); - index = 0; - length = coffees.length; - (execute = function() { - var script; - script = coffees[index++]; - if ((script != null ? script.type : void 0) === 'text/coffeescript') { - if (script.src) { - return CoffeeScript.load(script.src, execute); - } else { - CoffeeScript.run(script.innerHTML); - return execute(); - } - } - })(); - return null; - }; - - if (window.addEventListener) { - addEventListener('DOMContentLoaded', runScripts, false); - } else { - attachEvent('onload', runScripts); - } - -}).call(this); -}, "coffee-script/cake": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var CoffeeScript, cakefileDirectory, fatalError, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks; - - fs = require('fs'); - - path = require('path'); - - helpers = require('./helpers'); - - optparse = require('./optparse'); - - CoffeeScript = require('./coffee-script'); - - tasks = {}; - - options = {}; - - switches = []; - - oparse = null; - - helpers.extend(global, { - task: function(name, description, action) { - var _ref; - if (!action) { - _ref = [description, action], action = _ref[0], description = _ref[1]; - } - return tasks[name] = { - name: name, - description: description, - action: action - }; - }, - option: function(letter, flag, description) { - return switches.push([letter, flag, description]); - }, - invoke: function(name) { - if (!tasks[name]) { - missingTask(name); - } - return tasks[name].action(options); - } - }); - - exports.run = function() { - var arg, args, _i, _len, _ref, _results; - global.__originalDirname = fs.realpathSync('.'); - process.chdir(cakefileDirectory(__originalDirname)); - args = process.argv.slice(2); - CoffeeScript.run(fs.readFileSync('Cakefile').toString(), { - filename: 'Cakefile' - }); - oparse = new optparse.OptionParser(switches); - if (!args.length) { - return printTasks(); - } - try { - options = oparse.parse(args); - } catch (e) { - return fatalError("" + e); - } - _ref = options["arguments"]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - arg = _ref[_i]; - _results.push(invoke(arg)); - } - return _results; - }; - - printTasks = function() { - var cakefilePath, desc, name, relative, spaces, task; - relative = path.relative || path.resolve; - cakefilePath = path.join(relative(__originalDirname, process.cwd()), 'Cakefile'); - console.log("" + cakefilePath + " defines the following tasks:\n"); - for (name in tasks) { - task = tasks[name]; - spaces = 20 - name.length; - spaces = spaces > 0 ? Array(spaces + 1).join(' ') : ''; - desc = task.description ? "# " + task.description : ''; - console.log("cake " + name + spaces + " " + desc); - } - if (switches.length) { - return console.log(oparse.help()); - } - }; - - fatalError = function(message) { - console.error(message + '\n'); - console.log('To see a list of all tasks/options, run "cake"'); - return process.exit(1); - }; - - missingTask = function(task) { - return fatalError("No such task: " + task); - }; - - cakefileDirectory = function(dir) { - var parent; - if (path.existsSync(path.join(dir, 'Cakefile'))) { - return dir; - } - parent = path.normalize(path.join(dir, '..')); - if (parent !== dir) { - return cakefileDirectory(parent); - } - throw new Error("Cakefile not found in " + (process.cwd())); - }; - -}).call(this); -}, "coffee-script/coffee-script": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var Lexer, RESERVED, compile, fs, lexer, parser, path, vm, _ref, - __hasProp = {}.hasOwnProperty; - - fs = require('fs'); - - path = require('path'); - - _ref = require('./lexer'), Lexer = _ref.Lexer, RESERVED = _ref.RESERVED; - - parser = require('./parser').parser; - - vm = require('vm'); - - if (require.extensions) { - require.extensions['.coffee'] = function(module, filename) { - var content; - content = compile(fs.readFileSync(filename, 'utf8'), { - filename: filename - }); - return module._compile(content, filename); - }; - } else if (require.registerExtension) { - require.registerExtension('.coffee', function(content) { - return compile(content); - }); - } - - exports.VERSION = '1.3.1'; - - exports.RESERVED = RESERVED; - - exports.helpers = require('./helpers'); - - exports.compile = compile = function(code, options) { - var header, js, merge; - if (options == null) { - options = {}; - } - merge = exports.helpers.merge; - try { - js = (parser.parse(lexer.tokenize(code))).compile(options); - if (!options.header) { - return js; - } - } catch (err) { - if (options.filename) { - err.message = "In " + options.filename + ", " + err.message; - } - throw err; - } - header = "Generated by CoffeeScript " + this.VERSION; - return "// " + header + "\n" + js; - }; - - exports.tokens = function(code, options) { - return lexer.tokenize(code, options); - }; - - exports.nodes = function(source, options) { - if (typeof source === 'string') { - return parser.parse(lexer.tokenize(source, options)); - } else { - return parser.parse(source); - } - }; - - exports.run = function(code, options) { - var mainModule; - if (options == null) { - options = {}; - } - mainModule = require.main; - mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.'; - mainModule.moduleCache && (mainModule.moduleCache = {}); - mainModule.paths = require('module')._nodeModulePaths(path.dirname(fs.realpathSync(options.filename))); - if (path.extname(mainModule.filename) !== '.coffee' || require.extensions) { - return mainModule._compile(compile(code, options), mainModule.filename); - } else { - return mainModule._compile(code, mainModule.filename); - } - }; - - exports["eval"] = function(code, options) { - var Module, Script, js, k, o, r, sandbox, v, _i, _len, _module, _ref1, _ref2, _require; - if (options == null) { - options = {}; - } - if (!(code = code.trim())) { - return; - } - Script = vm.Script; - if (Script) { - if (options.sandbox != null) { - if (options.sandbox instanceof Script.createContext().constructor) { - sandbox = options.sandbox; - } else { - sandbox = Script.createContext(); - _ref1 = options.sandbox; - for (k in _ref1) { - if (!__hasProp.call(_ref1, k)) continue; - v = _ref1[k]; - sandbox[k] = v; - } - } - sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox; - } else { - sandbox = global; - } - sandbox.__filename = options.filename || 'eval'; - sandbox.__dirname = path.dirname(sandbox.__filename); - if (!(sandbox !== global || sandbox.module || sandbox.require)) { - Module = require('module'); - sandbox.module = _module = new Module(options.modulename || 'eval'); - sandbox.require = _require = function(path) { - return Module._load(path, _module, true); - }; - _module.filename = sandbox.__filename; - _ref2 = Object.getOwnPropertyNames(require); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - r = _ref2[_i]; - if (r !== 'paths') { - _require[r] = require[r]; - } - } - _require.paths = _module.paths = Module._nodeModulePaths(process.cwd()); - _require.resolve = function(request) { - return Module._resolveFilename(request, _module); - }; - } - } - o = {}; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - o[k] = v; - } - o.bare = true; - js = compile(code, o); - if (sandbox === global) { - return vm.runInThisContext(js); - } else { - return vm.runInContext(js, sandbox); - } - }; - - lexer = new Lexer; - - parser.lexer = { - lex: function() { - var tag, _ref1; - _ref1 = this.tokens[this.pos++] || [''], tag = _ref1[0], this.yytext = _ref1[1], this.yylineno = _ref1[2]; - return tag; - }, - setInput: function(tokens) { - this.tokens = tokens; - return this.pos = 0; - }, - upcomingInput: function() { - return ""; - } - }; - - parser.yy = require('./nodes'); - -}).call(this); -}, "coffee-script/command": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var BANNER, CoffeeScript, EventEmitter, SWITCHES, compileJoin, compileOptions, compilePath, compileScript, compileStdio, exec, forkNode, fs, helpers, hidden, joinTimeout, lint, loadRequires, notSources, optionParser, optparse, opts, outputPath, parseOptions, path, printLine, printTokens, printWarn, removeSource, sourceCode, sources, spawn, timeLog, unwatchDir, usage, version, wait, watch, watchDir, watchers, writeJs, _ref; - - fs = require('fs'); - - path = require('path'); - - helpers = require('./helpers'); - - optparse = require('./optparse'); - - CoffeeScript = require('./coffee-script'); - - _ref = require('child_process'), spawn = _ref.spawn, exec = _ref.exec; - - EventEmitter = require('events').EventEmitter; - - helpers.extend(CoffeeScript, new EventEmitter); - - printLine = function(line) { - return process.stdout.write(line + '\n'); - }; - - printWarn = function(line) { - return process.stderr.write(line + '\n'); - }; - - hidden = function(file) { - return /^\.|~$/.test(file); - }; - - BANNER = 'Usage: coffee [options] path/to/script.coffee -- [args]\n\nIf called without options, `coffee` will run your script.'; - - SWITCHES = [['-b', '--bare', 'compile without a top-level function wrapper'], ['-c', '--compile', 'compile to JavaScript and save as .js files'], ['-e', '--eval', 'pass a string from the command line as input'], ['-h', '--help', 'display this help message'], ['-i', '--interactive', 'run an interactive CoffeeScript REPL'], ['-j', '--join [FILE]', 'concatenate the source CoffeeScript before compiling'], ['-l', '--lint', 'pipe the compiled JavaScript through JavaScript Lint'], ['-n', '--nodes', 'print out the parse tree that the parser produces'], ['--nodejs [ARGS]', 'pass options directly to the "node" binary'], ['-o', '--output [DIR]', 'set the output directory for compiled JavaScript'], ['-p', '--print', 'print out the compiled JavaScript'], ['-r', '--require [FILE*]', 'require a library before executing your script'], ['-s', '--stdio', 'listen for and compile scripts over stdio'], ['-t', '--tokens', 'print out the tokens that the lexer/rewriter produce'], ['-v', '--version', 'display the version number'], ['-w', '--watch', 'watch scripts for changes and rerun commands']]; - - opts = {}; - - sources = []; - - sourceCode = []; - - notSources = {}; - - watchers = {}; - - optionParser = null; - - exports.run = function() { - var literals, source, _i, _len, _results; - parseOptions(); - if (opts.nodejs) { - return forkNode(); - } - if (opts.help) { - return usage(); - } - if (opts.version) { - return version(); - } - if (opts.require) { - loadRequires(); - } - if (opts.interactive) { - return require('./repl'); - } - if (opts.watch && !fs.watch) { - return printWarn("The --watch feature depends on Node v0.6.0+. You are running " + process.version + "."); - } - if (opts.stdio) { - return compileStdio(); - } - if (opts["eval"]) { - return compileScript(null, sources[0]); - } - if (!sources.length) { - return require('./repl'); - } - literals = opts.run ? sources.splice(1) : []; - process.argv = process.argv.slice(0, 2).concat(literals); - process.argv[0] = 'coffee'; - process.execPath = require.main.filename; - _results = []; - for (_i = 0, _len = sources.length; _i < _len; _i++) { - source = sources[_i]; - _results.push(compilePath(source, true, path.normalize(source))); - } - return _results; - }; - - compilePath = function(source, topLevel, base) { - return fs.stat(source, function(err, stats) { - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - if (topLevel && source.slice(-7) !== '.coffee') { - source = sources[sources.indexOf(source)] = "" + source + ".coffee"; - return compilePath(source, topLevel, base); - } - if (topLevel) { - console.error("File not found: " + source); - process.exit(1); - } - return; - } - if (stats.isDirectory()) { - if (opts.watch) { - watchDir(source, base); - } - return fs.readdir(source, function(err, files) { - var file, index, _i, _len, _ref1, _ref2, _results; - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - return; - } - index = sources.indexOf(source); - [].splice.apply(sources, [index, index - index + 1].concat(_ref1 = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - _results.push(path.join(source, file)); - } - return _results; - })())), _ref1; - [].splice.apply(sourceCode, [index, index - index + 1].concat(_ref2 = files.map(function() { - return null; - }))), _ref2; - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - if (!hidden(file)) { - _results.push(compilePath(path.join(source, file), false, base)); - } - } - return _results; - }); - } else if (topLevel || path.extname(source) === '.coffee') { - if (opts.watch) { - watch(source, base); - } - return fs.readFile(source, function(err, code) { - if (err && err.code !== 'ENOENT') { - throw err; - } - if ((err != null ? err.code : void 0) === 'ENOENT') { - return; - } - return compileScript(source, code.toString(), base); - }); - } else { - notSources[source] = true; - return removeSource(source, base); - } - }); - }; - - compileScript = function(file, input, base) { - var o, options, t, task; - o = opts; - options = compileOptions(file); - try { - t = task = { - file: file, - input: input, - options: options - }; - CoffeeScript.emit('compile', task); - if (o.tokens) { - return printTokens(CoffeeScript.tokens(t.input)); - } else if (o.nodes) { - return printLine(CoffeeScript.nodes(t.input).toString().trim()); - } else if (o.run) { - return CoffeeScript.run(t.input, t.options); - } else if (o.join && t.file !== o.join) { - sourceCode[sources.indexOf(t.file)] = t.input; - return compileJoin(); - } else { - t.output = CoffeeScript.compile(t.input, t.options); - CoffeeScript.emit('success', task); - if (o.print) { - return printLine(t.output.trim()); - } else if (o.compile) { - return writeJs(t.file, t.output, base); - } else if (o.lint) { - return lint(t.file, t.output); - } - } - } catch (err) { - CoffeeScript.emit('failure', err, task); - if (CoffeeScript.listeners('failure').length) { - return; - } - if (o.watch) { - return printLine(err.message + '\x07'); - } - printWarn(err instanceof Error && err.stack || ("ERROR: " + err)); - return process.exit(1); - } - }; - - compileStdio = function() { - var code, stdin; - code = ''; - stdin = process.openStdin(); - stdin.on('data', function(buffer) { - if (buffer) { - return code += buffer.toString(); - } - }); - return stdin.on('end', function() { - return compileScript(null, code); - }); - }; - - joinTimeout = null; - - compileJoin = function() { - if (!opts.join) { - return; - } - if (!sourceCode.some(function(code) { - return code === null; - })) { - clearTimeout(joinTimeout); - return joinTimeout = wait(100, function() { - return compileScript(opts.join, sourceCode.join('\n'), opts.join); - }); - } - }; - - loadRequires = function() { - var realFilename, req, _i, _len, _ref1; - realFilename = module.filename; - module.filename = '.'; - _ref1 = opts.require; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - req = _ref1[_i]; - require(req); - } - return module.filename = realFilename; - }; - - watch = function(source, base) { - var compile, compileTimeout, prevStats, rewatch, watchErr, watcher; - prevStats = null; - compileTimeout = null; - watchErr = function(e) { - if (e.code === 'ENOENT') { - if (sources.indexOf(source) === -1) { - return; - } - try { - rewatch(); - return compile(); - } catch (e) { - removeSource(source, base, true); - return compileJoin(); - } - } else { - throw e; - } - }; - compile = function() { - clearTimeout(compileTimeout); - return compileTimeout = wait(25, function() { - return fs.stat(source, function(err, stats) { - if (err) { - return watchErr(err); - } - if (prevStats && stats.size === prevStats.size && stats.mtime.getTime() === prevStats.mtime.getTime()) { - return rewatch(); - } - prevStats = stats; - return fs.readFile(source, function(err, code) { - if (err) { - return watchErr(err); - } - compileScript(source, code.toString(), base); - return rewatch(); - }); - }); - }); - }; - try { - watcher = fs.watch(source, compile); - } catch (e) { - watchErr(e); - } - return rewatch = function() { - if (watcher != null) { - watcher.close(); - } - return watcher = fs.watch(source, compile); - }; - }; - - watchDir = function(source, base) { - var readdirTimeout, watcher; - readdirTimeout = null; - try { - return watcher = fs.watch(source, function() { - clearTimeout(readdirTimeout); - return readdirTimeout = wait(25, function() { - return fs.readdir(source, function(err, files) { - var file, _i, _len, _results; - if (err) { - if (err.code !== 'ENOENT') { - throw err; - } - watcher.close(); - return unwatchDir(source, base); - } - _results = []; - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - if (!(!hidden(file) && !notSources[file])) { - continue; - } - file = path.join(source, file); - if (sources.some(function(s) { - return s.indexOf(file) >= 0; - })) { - continue; - } - sources.push(file); - sourceCode.push(null); - _results.push(compilePath(file, false, base)); - } - return _results; - }); - }); - }); - } catch (e) { - if (e.code !== 'ENOENT') { - throw e; - } - } - }; - - unwatchDir = function(source, base) { - var file, prevSources, toRemove, _i, _len; - prevSources = sources.slice(0); - toRemove = (function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = sources.length; _i < _len; _i++) { - file = sources[_i]; - if (file.indexOf(source) >= 0) { - _results.push(file); - } - } - return _results; - })(); - for (_i = 0, _len = toRemove.length; _i < _len; _i++) { - file = toRemove[_i]; - removeSource(file, base, true); - } - if (!sources.some(function(s, i) { - return prevSources[i] !== s; - })) { - return; - } - return compileJoin(); - }; - - removeSource = function(source, base, removeJs) { - var index, jsPath; - index = sources.indexOf(source); - sources.splice(index, 1); - sourceCode.splice(index, 1); - if (removeJs && !opts.join) { - jsPath = outputPath(source, base); - return path.exists(jsPath, function(exists) { - if (exists) { - return fs.unlink(jsPath, function(err) { - if (err && err.code !== 'ENOENT') { - throw err; - } - return timeLog("removed " + source); - }); - } - }); - } - }; - - outputPath = function(source, base) { - var baseDir, dir, filename, srcDir; - filename = path.basename(source, path.extname(source)) + '.js'; - srcDir = path.dirname(source); - baseDir = base === '.' ? srcDir : srcDir.substring(base.length); - dir = opts.output ? path.join(opts.output, baseDir) : srcDir; - return path.join(dir, filename); - }; - - writeJs = function(source, js, base) { - var compile, jsDir, jsPath; - jsPath = outputPath(source, base); - jsDir = path.dirname(jsPath); - compile = function() { - if (js.length <= 0) { - js = ' '; - } - return fs.writeFile(jsPath, js, function(err) { - if (err) { - return printLine(err.message); - } else if (opts.compile && opts.watch) { - return timeLog("compiled " + source); - } - }); - }; - return path.exists(jsDir, function(exists) { - if (exists) { - return compile(); - } else { - return exec("mkdir -p " + jsDir, compile); - } - }); - }; - - wait = function(milliseconds, func) { - return setTimeout(func, milliseconds); - }; - - timeLog = function(message) { - return console.log("" + ((new Date).toLocaleTimeString()) + " - " + message); - }; - - lint = function(file, js) { - var conf, jsl, printIt; - printIt = function(buffer) { - return printLine(file + ':\t' + buffer.toString().trim()); - }; - conf = __dirname + '/../../extras/jsl.conf'; - jsl = spawn('jsl', ['-nologo', '-stdin', '-conf', conf]); - jsl.stdout.on('data', printIt); - jsl.stderr.on('data', printIt); - jsl.stdin.write(js); - return jsl.stdin.end(); - }; - - printTokens = function(tokens) { - var strings, tag, token, value; - strings = (function() { - var _i, _len, _ref1, _results; - _results = []; - for (_i = 0, _len = tokens.length; _i < _len; _i++) { - token = tokens[_i]; - _ref1 = [token[0], token[1].toString().replace(/\n/, '\\n')], tag = _ref1[0], value = _ref1[1]; - _results.push("[" + tag + " " + value + "]"); - } - return _results; - })(); - return printLine(strings.join(' ')); - }; - - parseOptions = function() { - var i, o, source, _i, _len; - optionParser = new optparse.OptionParser(SWITCHES, BANNER); - o = opts = optionParser.parse(process.argv.slice(2)); - o.compile || (o.compile = !!o.output); - o.run = !(o.compile || o.print || o.lint); - o.print = !!(o.print || (o["eval"] || o.stdio && o.compile)); - sources = o["arguments"]; - for (i = _i = 0, _len = sources.length; _i < _len; i = ++_i) { - source = sources[i]; - sourceCode[i] = null; - } - }; - - compileOptions = function(filename) { - return { - filename: filename, - bare: opts.bare, - header: opts.compile - }; - }; - - forkNode = function() { - var args, nodeArgs; - nodeArgs = opts.nodejs.split(/\s+/); - args = process.argv.slice(1); - args.splice(args.indexOf('--nodejs'), 2); - return spawn(process.execPath, nodeArgs.concat(args), { - cwd: process.cwd(), - env: process.env, - customFds: [0, 1, 2] - }); - }; - - usage = function() { - return printLine((new optparse.OptionParser(SWITCHES, BANNER)).help()); - }; - - version = function() { - return printLine("CoffeeScript version " + CoffeeScript.VERSION); - }; - -}).call(this); -}, "coffee-script/grammar": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var Parser, alt, alternatives, grammar, name, o, operators, token, tokens, unwrap; - - Parser = require('jison').Parser; - - unwrap = /^function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/; - - o = function(patternString, action, options) { - var match; - patternString = patternString.replace(/\s{2,}/g, ' '); - if (!action) { - return [patternString, '$$ = $1;', options]; - } - action = (match = unwrap.exec(action)) ? match[1] : "(" + action + "())"; - action = action.replace(/\bnew /g, '$&yy.'); - action = action.replace(/\b(?:Block\.wrap|extend)\b/g, 'yy.$&'); - return [patternString, "$$ = " + action + ";", options]; - }; - - grammar = { - Root: [ - o('', function() { - return new Block; - }), o('Body'), o('Block TERMINATOR') - ], - Body: [ - o('Line', function() { - return Block.wrap([$1]); - }), o('Body TERMINATOR Line', function() { - return $1.push($3); - }), o('Body TERMINATOR') - ], - Line: [o('Expression'), o('Statement')], - Statement: [ - o('Return'), o('Comment'), o('STATEMENT', function() { - return new Literal($1); - }) - ], - Expression: [o('Value'), o('Invocation'), o('Code'), o('Operation'), o('Assign'), o('If'), o('Try'), o('While'), o('For'), o('Switch'), o('Class'), o('Throw')], - Block: [ - o('INDENT OUTDENT', function() { - return new Block; - }), o('INDENT Body OUTDENT', function() { - return $2; - }) - ], - Identifier: [ - o('IDENTIFIER', function() { - return new Literal($1); - }) - ], - AlphaNumeric: [ - o('NUMBER', function() { - return new Literal($1); - }), o('STRING', function() { - return new Literal($1); - }) - ], - Literal: [ - o('AlphaNumeric'), o('JS', function() { - return new Literal($1); - }), o('REGEX', function() { - return new Literal($1); - }), o('DEBUGGER', function() { - return new Literal($1); - }), o('BOOL', function() { - var val; - val = new Literal($1); - if ($1 === 'undefined') { - val.isUndefined = true; - } - return val; - }) - ], - Assign: [ - o('Assignable = Expression', function() { - return new Assign($1, $3); - }), o('Assignable = TERMINATOR Expression', function() { - return new Assign($1, $4); - }), o('Assignable = INDENT Expression OUTDENT', function() { - return new Assign($1, $4); - }) - ], - AssignObj: [ - o('ObjAssignable', function() { - return new Value($1); - }), o('ObjAssignable : Expression', function() { - return new Assign(new Value($1), $3, 'object'); - }), o('ObjAssignable :\ - INDENT Expression OUTDENT', function() { - return new Assign(new Value($1), $4, 'object'); - }), o('Comment') - ], - ObjAssignable: [o('Identifier'), o('AlphaNumeric'), o('ThisProperty')], - Return: [ - o('RETURN Expression', function() { - return new Return($2); - }), o('RETURN', function() { - return new Return; - }) - ], - Comment: [ - o('HERECOMMENT', function() { - return new Comment($1); - }) - ], - Code: [ - o('PARAM_START ParamList PARAM_END FuncGlyph Block', function() { - return new Code($2, $5, $4); - }), o('FuncGlyph Block', function() { - return new Code([], $2, $1); - }) - ], - FuncGlyph: [ - o('->', function() { - return 'func'; - }), o('=>', function() { - return 'boundfunc'; - }) - ], - OptComma: [o(''), o(',')], - ParamList: [ - o('', function() { - return []; - }), o('Param', function() { - return [$1]; - }), o('ParamList , Param', function() { - return $1.concat($3); - }) - ], - Param: [ - o('ParamVar', function() { - return new Param($1); - }), o('ParamVar ...', function() { - return new Param($1, null, true); - }), o('ParamVar = Expression', function() { - return new Param($1, $3); - }) - ], - ParamVar: [o('Identifier'), o('ThisProperty'), o('Array'), o('Object')], - Splat: [ - o('Expression ...', function() { - return new Splat($1); - }) - ], - SimpleAssignable: [ - o('Identifier', function() { - return new Value($1); - }), o('Value Accessor', function() { - return $1.add($2); - }), o('Invocation Accessor', function() { - return new Value($1, [].concat($2)); - }), o('ThisProperty') - ], - Assignable: [ - o('SimpleAssignable'), o('Array', function() { - return new Value($1); - }), o('Object', function() { - return new Value($1); - }) - ], - Value: [ - o('Assignable'), o('Literal', function() { - return new Value($1); - }), o('Parenthetical', function() { - return new Value($1); - }), o('Range', function() { - return new Value($1); - }), o('This') - ], - Accessor: [ - o('. Identifier', function() { - return new Access($2); - }), o('?. Identifier', function() { - return new Access($2, 'soak'); - }), o(':: Identifier', function() { - return [new Access(new Literal('prototype')), new Access($2)]; - }), o('::', function() { - return new Access(new Literal('prototype')); - }), o('Index') - ], - Index: [ - o('INDEX_START IndexValue INDEX_END', function() { - return $2; - }), o('INDEX_SOAK Index', function() { - return extend($2, { - soak: true - }); - }) - ], - IndexValue: [ - o('Expression', function() { - return new Index($1); - }), o('Slice', function() { - return new Slice($1); - }) - ], - Object: [ - o('{ AssignList OptComma }', function() { - return new Obj($2, $1.generated); - }) - ], - AssignList: [ - o('', function() { - return []; - }), o('AssignObj', function() { - return [$1]; - }), o('AssignList , AssignObj', function() { - return $1.concat($3); - }), o('AssignList OptComma TERMINATOR AssignObj', function() { - return $1.concat($4); - }), o('AssignList OptComma INDENT AssignList OptComma OUTDENT', function() { - return $1.concat($4); - }) - ], - Class: [ - o('CLASS', function() { - return new Class; - }), o('CLASS Block', function() { - return new Class(null, null, $2); - }), o('CLASS EXTENDS Expression', function() { - return new Class(null, $3); - }), o('CLASS EXTENDS Expression Block', function() { - return new Class(null, $3, $4); - }), o('CLASS SimpleAssignable', function() { - return new Class($2); - }), o('CLASS SimpleAssignable Block', function() { - return new Class($2, null, $3); - }), o('CLASS SimpleAssignable EXTENDS Expression', function() { - return new Class($2, $4); - }), o('CLASS SimpleAssignable EXTENDS Expression Block', function() { - return new Class($2, $4, $5); - }) - ], - Invocation: [ - o('Value OptFuncExist Arguments', function() { - return new Call($1, $3, $2); - }), o('Invocation OptFuncExist Arguments', function() { - return new Call($1, $3, $2); - }), o('SUPER', function() { - return new Call('super', [new Splat(new Literal('arguments'))]); - }), o('SUPER Arguments', function() { - return new Call('super', $2); - }) - ], - OptFuncExist: [ - o('', function() { - return false; - }), o('FUNC_EXIST', function() { - return true; - }) - ], - Arguments: [ - o('CALL_START CALL_END', function() { - return []; - }), o('CALL_START ArgList OptComma CALL_END', function() { - return $2; - }) - ], - This: [ - o('THIS', function() { - return new Value(new Literal('this')); - }), o('@', function() { - return new Value(new Literal('this')); - }) - ], - ThisProperty: [ - o('@ Identifier', function() { - return new Value(new Literal('this'), [new Access($2)], 'this'); - }) - ], - Array: [ - o('[ ]', function() { - return new Arr([]); - }), o('[ ArgList OptComma ]', function() { - return new Arr($2); - }) - ], - RangeDots: [ - o('..', function() { - return 'inclusive'; - }), o('...', function() { - return 'exclusive'; - }) - ], - Range: [ - o('[ Expression RangeDots Expression ]', function() { - return new Range($2, $4, $3); - }) - ], - Slice: [ - o('Expression RangeDots Expression', function() { - return new Range($1, $3, $2); - }), o('Expression RangeDots', function() { - return new Range($1, null, $2); - }), o('RangeDots Expression', function() { - return new Range(null, $2, $1); - }), o('RangeDots', function() { - return new Range(null, null, $1); - }) - ], - ArgList: [ - o('Arg', function() { - return [$1]; - }), o('ArgList , Arg', function() { - return $1.concat($3); - }), o('ArgList OptComma TERMINATOR Arg', function() { - return $1.concat($4); - }), o('INDENT ArgList OptComma OUTDENT', function() { - return $2; - }), o('ArgList OptComma INDENT ArgList OptComma OUTDENT', function() { - return $1.concat($4); - }) - ], - Arg: [o('Expression'), o('Splat')], - SimpleArgs: [ - o('Expression'), o('SimpleArgs , Expression', function() { - return [].concat($1, $3); - }) - ], - Try: [ - o('TRY Block', function() { - return new Try($2); - }), o('TRY Block Catch', function() { - return new Try($2, $3[0], $3[1]); - }), o('TRY Block FINALLY Block', function() { - return new Try($2, null, null, $4); - }), o('TRY Block Catch FINALLY Block', function() { - return new Try($2, $3[0], $3[1], $5); - }) - ], - Catch: [ - o('CATCH Identifier Block', function() { - return [$2, $3]; - }) - ], - Throw: [ - o('THROW Expression', function() { - return new Throw($2); - }) - ], - Parenthetical: [ - o('( Body )', function() { - return new Parens($2); - }), o('( INDENT Body OUTDENT )', function() { - return new Parens($3); - }) - ], - WhileSource: [ - o('WHILE Expression', function() { - return new While($2); - }), o('WHILE Expression WHEN Expression', function() { - return new While($2, { - guard: $4 - }); - }), o('UNTIL Expression', function() { - return new While($2, { - invert: true - }); - }), o('UNTIL Expression WHEN Expression', function() { - return new While($2, { - invert: true, - guard: $4 - }); - }) - ], - While: [ - o('WhileSource Block', function() { - return $1.addBody($2); - }), o('Statement WhileSource', function() { - return $2.addBody(Block.wrap([$1])); - }), o('Expression WhileSource', function() { - return $2.addBody(Block.wrap([$1])); - }), o('Loop', function() { - return $1; - }) - ], - Loop: [ - o('LOOP Block', function() { - return new While(new Literal('true')).addBody($2); - }), o('LOOP Expression', function() { - return new While(new Literal('true')).addBody(Block.wrap([$2])); - }) - ], - For: [ - o('Statement ForBody', function() { - return new For($1, $2); - }), o('Expression ForBody', function() { - return new For($1, $2); - }), o('ForBody Block', function() { - return new For($2, $1); - }) - ], - ForBody: [ - o('FOR Range', function() { - return { - source: new Value($2) - }; - }), o('ForStart ForSource', function() { - $2.own = $1.own; - $2.name = $1[0]; - $2.index = $1[1]; - return $2; - }) - ], - ForStart: [ - o('FOR ForVariables', function() { - return $2; - }), o('FOR OWN ForVariables', function() { - $3.own = true; - return $3; - }) - ], - ForValue: [ - o('Identifier'), o('Array', function() { - return new Value($1); - }), o('Object', function() { - return new Value($1); - }) - ], - ForVariables: [ - o('ForValue', function() { - return [$1]; - }), o('ForValue , ForValue', function() { - return [$1, $3]; - }) - ], - ForSource: [ - o('FORIN Expression', function() { - return { - source: $2 - }; - }), o('FOROF Expression', function() { - return { - source: $2, - object: true - }; - }), o('FORIN Expression WHEN Expression', function() { - return { - source: $2, - guard: $4 - }; - }), o('FOROF Expression WHEN Expression', function() { - return { - source: $2, - guard: $4, - object: true - }; - }), o('FORIN Expression BY Expression', function() { - return { - source: $2, - step: $4 - }; - }), o('FORIN Expression WHEN Expression BY Expression', function() { - return { - source: $2, - guard: $4, - step: $6 - }; - }), o('FORIN Expression BY Expression WHEN Expression', function() { - return { - source: $2, - step: $4, - guard: $6 - }; - }) - ], - Switch: [ - o('SWITCH Expression INDENT Whens OUTDENT', function() { - return new Switch($2, $4); - }), o('SWITCH Expression INDENT Whens ELSE Block OUTDENT', function() { - return new Switch($2, $4, $6); - }), o('SWITCH INDENT Whens OUTDENT', function() { - return new Switch(null, $3); - }), o('SWITCH INDENT Whens ELSE Block OUTDENT', function() { - return new Switch(null, $3, $5); - }) - ], - Whens: [ - o('When'), o('Whens When', function() { - return $1.concat($2); - }) - ], - When: [ - o('LEADING_WHEN SimpleArgs Block', function() { - return [[$2, $3]]; - }), o('LEADING_WHEN SimpleArgs Block TERMINATOR', function() { - return [[$2, $3]]; - }) - ], - IfBlock: [ - o('IF Expression Block', function() { - return new If($2, $3, { - type: $1 - }); - }), o('IfBlock ELSE IF Expression Block', function() { - return $1.addElse(new If($4, $5, { - type: $3 - })); - }) - ], - If: [ - o('IfBlock'), o('IfBlock ELSE Block', function() { - return $1.addElse($3); - }), o('Statement POST_IF Expression', function() { - return new If($3, Block.wrap([$1]), { - type: $2, - statement: true - }); - }), o('Expression POST_IF Expression', function() { - return new If($3, Block.wrap([$1]), { - type: $2, - statement: true - }); - }) - ], - Operation: [ - o('UNARY Expression', function() { - return new Op($1, $2); - }), o('- Expression', (function() { - return new Op('-', $2); - }), { - prec: 'UNARY' - }), o('+ Expression', (function() { - return new Op('+', $2); - }), { - prec: 'UNARY' - }), o('-- SimpleAssignable', function() { - return new Op('--', $2); - }), o('++ SimpleAssignable', function() { - return new Op('++', $2); - }), o('SimpleAssignable --', function() { - return new Op('--', $1, null, true); - }), o('SimpleAssignable ++', function() { - return new Op('++', $1, null, true); - }), o('Expression ?', function() { - return new Existence($1); - }), o('Expression + Expression', function() { - return new Op('+', $1, $3); - }), o('Expression - Expression', function() { - return new Op('-', $1, $3); - }), o('Expression MATH Expression', function() { - return new Op($2, $1, $3); - }), o('Expression SHIFT Expression', function() { - return new Op($2, $1, $3); - }), o('Expression COMPARE Expression', function() { - return new Op($2, $1, $3); - }), o('Expression LOGIC Expression', function() { - return new Op($2, $1, $3); - }), o('Expression RELATION Expression', function() { - if ($2.charAt(0) === '!') { - return new Op($2.slice(1), $1, $3).invert(); - } else { - return new Op($2, $1, $3); - } - }), o('SimpleAssignable COMPOUND_ASSIGN\ - Expression', function() { - return new Assign($1, $3, $2); - }), o('SimpleAssignable COMPOUND_ASSIGN\ - INDENT Expression OUTDENT', function() { - return new Assign($1, $4, $2); - }), o('SimpleAssignable EXTENDS Expression', function() { - return new Extends($1, $3); - }) - ] - }; - - operators = [['left', '.', '?.', '::'], ['left', 'CALL_START', 'CALL_END'], ['nonassoc', '++', '--'], ['left', '?'], ['right', 'UNARY'], ['left', 'MATH'], ['left', '+', '-'], ['left', 'SHIFT'], ['left', 'RELATION'], ['left', 'COMPARE'], ['left', 'LOGIC'], ['nonassoc', 'INDENT', 'OUTDENT'], ['right', '=', ':', 'COMPOUND_ASSIGN', 'RETURN', 'THROW', 'EXTENDS'], ['right', 'FORIN', 'FOROF', 'BY', 'WHEN'], ['right', 'IF', 'ELSE', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'SUPER', 'CLASS'], ['right', 'POST_IF']]; - - tokens = []; - - for (name in grammar) { - alternatives = grammar[name]; - grammar[name] = (function() { - var _i, _j, _len, _len1, _ref, _results; - _results = []; - for (_i = 0, _len = alternatives.length; _i < _len; _i++) { - alt = alternatives[_i]; - _ref = alt[0].split(' '); - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - token = _ref[_j]; - if (!grammar[token]) { - tokens.push(token); - } - } - if (name === 'Root') { - alt[1] = "return " + alt[1]; - } - _results.push(alt); - } - return _results; - })(); - } - - exports.parser = new Parser({ - tokens: tokens.join(' '), - bnf: grammar, - operators: operators.reverse(), - startSymbol: 'Root' - }); - -}).call(this); -}, "coffee-script/helpers": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var extend, flatten; - - exports.starts = function(string, literal, start) { - return literal === string.substr(start, literal.length); - }; - - exports.ends = function(string, literal, back) { - var len; - len = literal.length; - return literal === string.substr(string.length - len - (back || 0), len); - }; - - exports.compact = function(array) { - var item, _i, _len, _results; - _results = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - item = array[_i]; - if (item) { - _results.push(item); - } - } - return _results; - }; - - exports.count = function(string, substr) { - var num, pos; - num = pos = 0; - if (!substr.length) { - return 1 / 0; - } - while (pos = 1 + string.indexOf(substr, pos)) { - num++; - } - return num; - }; - - exports.merge = function(options, overrides) { - return extend(extend({}, options), overrides); - }; - - extend = exports.extend = function(object, properties) { - var key, val; - for (key in properties) { - val = properties[key]; - object[key] = val; - } - return object; - }; - - exports.flatten = flatten = function(array) { - var element, flattened, _i, _len; - flattened = []; - for (_i = 0, _len = array.length; _i < _len; _i++) { - element = array[_i]; - if (element instanceof Array) { - flattened = flattened.concat(flatten(element)); - } else { - flattened.push(element); - } - } - return flattened; - }; - - exports.del = function(obj, key) { - var val; - val = obj[key]; - delete obj[key]; - return val; - }; - - exports.last = function(array, back) { - return array[array.length - (back || 0) - 1]; - }; - -}).call(this); -}, "coffee-script/index": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var key, val, _ref; - - _ref = require('./coffee-script'); - for (key in _ref) { - val = _ref[key]; - exports[key] = val; - } - -}).call(this); -}, "coffee-script/lexer": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, key, last, starts, _ref, _ref1, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES; - - _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last; - - exports.Lexer = Lexer = (function() { - - Lexer.name = 'Lexer'; - - function Lexer() {} - - Lexer.prototype.tokenize = function(code, opts) { - var i, tag; - if (opts == null) { - opts = {}; - } - if (WHITESPACE.test(code)) { - code = "\n" + code; - } - code = code.replace(/\r/g, '').replace(TRAILING_SPACES, ''); - this.code = code; - this.line = opts.line || 0; - this.indent = 0; - this.indebt = 0; - this.outdebt = 0; - this.indents = []; - this.ends = []; - this.tokens = []; - i = 0; - while (this.chunk = code.slice(i)) { - i += this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken(); - } - this.closeIndentation(); - if (tag = this.ends.pop()) { - this.error("missing " + tag); - } - if (opts.rewrite === false) { - return this.tokens; - } - return (new Rewriter).rewrite(this.tokens); - }; - - Lexer.prototype.identifierToken = function() { - var colon, forcedIdentifier, id, input, match, prev, tag, _ref2, _ref3; - if (!(match = IDENTIFIER.exec(this.chunk))) { - return 0; - } - input = match[0], id = match[1], colon = match[2]; - if (id === 'own' && this.tag() === 'FOR') { - this.token('OWN', id); - return id.length; - } - forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::') || !prev.spaced && prev[0] === '@'); - tag = 'IDENTIFIER'; - if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) { - tag = id.toUpperCase(); - if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) { - tag = 'LEADING_WHEN'; - } else if (tag === 'FOR') { - this.seenFor = true; - } else if (tag === 'UNLESS') { - tag = 'IF'; - } else if (__indexOf.call(UNARY, tag) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(RELATION, tag) >= 0) { - if (tag !== 'INSTANCEOF' && this.seenFor) { - tag = 'FOR' + tag; - this.seenFor = false; - } else { - tag = 'RELATION'; - if (this.value() === '!') { - this.tokens.pop(); - id = '!' + id; - } - } - } - } - if (__indexOf.call(JS_FORBIDDEN, id) >= 0) { - if (forcedIdentifier) { - tag = 'IDENTIFIER'; - id = new String(id); - id.reserved = true; - } else if (__indexOf.call(RESERVED, id) >= 0) { - this.error("reserved word \"" + id + "\""); - } - } - if (!forcedIdentifier) { - if (__indexOf.call(COFFEE_ALIASES, id) >= 0) { - id = COFFEE_ALIAS_MAP[id]; - } - tag = (function() { - switch (id) { - case '!': - return 'UNARY'; - case '==': - case '!=': - return 'COMPARE'; - case '&&': - case '||': - return 'LOGIC'; - case 'true': - case 'false': - case 'null': - case 'undefined': - return 'BOOL'; - case 'break': - case 'continue': - return 'STATEMENT'; - default: - return tag; - } - })(); - } - this.token(tag, id); - if (colon) { - this.token(':', ':'); - } - return input.length; - }; - - Lexer.prototype.numberToken = function() { - var binaryLiteral, lexedLength, match, number, octalLiteral; - if (!(match = NUMBER.exec(this.chunk))) { - return 0; - } - number = match[0]; - if (/^0[BOX]/.test(number)) { - this.error("radix prefix '" + number + "' must be lowercase"); - } else if (/E/.test(number) && !/^0x/.test(number)) { - this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'"); - } else if (/^0\d*[89]/.test(number)) { - this.error("decimal literal '" + number + "' must not be prefixed with '0'"); - } else if (/^0\d+/.test(number)) { - this.error("octal literal '" + number + "' must be prefixed with '0o'"); - } - lexedLength = number.length; - if (octalLiteral = /^0o([0-7]+)/.exec(number)) { - number = '0x' + (parseInt(octalLiteral[1], 8)).toString(16); - } - if (binaryLiteral = /^0b([01]+)/.exec(number)) { - number = '0x' + (parseInt(binaryLiteral[1], 2)).toString(16); - } - this.token('NUMBER', number); - return lexedLength; - }; - - Lexer.prototype.stringToken = function() { - var match, octalEsc, string; - switch (this.chunk.charAt(0)) { - case "'": - if (!(match = SIMPLESTR.exec(this.chunk))) { - return 0; - } - this.token('STRING', (string = match[0]).replace(MULTILINER, '\\\n')); - break; - case '"': - if (!(string = this.balancedString(this.chunk, '"'))) { - return 0; - } - if (0 < string.indexOf('#{', 1)) { - this.interpolateString(string.slice(1, -1)); - } else { - this.token('STRING', this.escapeLines(string)); - } - break; - default: - return 0; - } - if (octalEsc = /^(?:\\.|[^\\])*\\[0-7]/.test(string)) { - this.error("octal escape sequences " + string + " are not allowed"); - } - this.line += count(string, '\n'); - return string.length; - }; - - Lexer.prototype.heredocToken = function() { - var doc, heredoc, match, quote; - if (!(match = HEREDOC.exec(this.chunk))) { - return 0; - } - heredoc = match[0]; - quote = heredoc.charAt(0); - doc = this.sanitizeHeredoc(match[2], { - quote: quote, - indent: null - }); - if (quote === '"' && 0 <= doc.indexOf('#{')) { - this.interpolateString(doc, { - heredoc: true - }); - } else { - this.token('STRING', this.makeString(doc, quote, true)); - } - this.line += count(heredoc, '\n'); - return heredoc.length; - }; - - Lexer.prototype.commentToken = function() { - var comment, here, match; - if (!(match = this.chunk.match(COMMENT))) { - return 0; - } - comment = match[0], here = match[1]; - if (here) { - this.token('HERECOMMENT', this.sanitizeHeredoc(here, { - herecomment: true, - indent: Array(this.indent + 1).join(' ') - })); - } - this.line += count(comment, '\n'); - return comment.length; - }; - - Lexer.prototype.jsToken = function() { - var match, script; - if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) { - return 0; - } - this.token('JS', (script = match[0]).slice(1, -1)); - return script.length; - }; - - Lexer.prototype.regexToken = function() { - var flags, length, match, prev, regex, _ref2, _ref3; - if (this.chunk.charAt(0) !== '/') { - return 0; - } - if (match = HEREGEX.exec(this.chunk)) { - length = this.heregexToken(match); - this.line += count(match[0], '\n'); - return length; - } - prev = last(this.tokens); - if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) { - return 0; - } - if (!(match = REGEX.exec(this.chunk))) { - return 0; - } - _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2]; - if (regex.slice(0, 2) === '/*') { - this.error('regular expressions cannot begin with `*`'); - } - if (regex === '//') { - regex = '/(?:)/'; - } - this.token('REGEX', "" + regex + flags); - return match.length; - }; - - Lexer.prototype.heregexToken = function(match) { - var body, flags, heregex, re, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4, _ref5; - heregex = match[0], body = match[1], flags = match[2]; - if (0 > body.indexOf('#{')) { - re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/'); - if (re.match(/^\*/)) { - this.error('regular expressions cannot begin with `*`'); - } - this.token('REGEX', "/" + (re || '(?:)') + "/" + flags); - return heregex.length; - } - this.token('IDENTIFIER', 'RegExp'); - this.tokens.push(['CALL_START', '(']); - tokens = []; - _ref2 = this.interpolateString(body, { - regex: true - }); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - _ref3 = _ref2[_i], tag = _ref3[0], value = _ref3[1]; - if (tag === 'TOKENS') { - tokens.push.apply(tokens, value); - } else { - if (!(value = value.replace(HEREGEX_OMIT, ''))) { - continue; - } - value = value.replace(/\\/g, '\\\\'); - tokens.push(['STRING', this.makeString(value, '"', true)]); - } - tokens.push(['+', '+']); - } - tokens.pop(); - if (((_ref4 = tokens[0]) != null ? _ref4[0] : void 0) !== 'STRING') { - this.tokens.push(['STRING', '""'], ['+', '+']); - } - (_ref5 = this.tokens).push.apply(_ref5, tokens); - if (flags) { - this.tokens.push([',', ','], ['STRING', '"' + flags + '"']); - } - this.token(')', ')'); - return heregex.length; - }; - - Lexer.prototype.lineToken = function() { - var diff, indent, match, noNewlines, prev, size; - if (!(match = MULTI_DENT.exec(this.chunk))) { - return 0; - } - indent = match[0]; - this.line += count(indent, '\n'); - this.seenFor = false; - prev = last(this.tokens, 1); - size = indent.length - 1 - indent.lastIndexOf('\n'); - noNewlines = this.unfinished(); - if (size - this.indebt === this.indent) { - if (noNewlines) { - this.suppressNewlines(); - } else { - this.newlineToken(); - } - return indent.length; - } - if (size > this.indent) { - if (noNewlines) { - this.indebt = size - this.indent; - this.suppressNewlines(); - return indent.length; - } - diff = size - this.indent + this.outdebt; - this.token('INDENT', diff); - this.indents.push(diff); - this.ends.push('OUTDENT'); - this.outdebt = this.indebt = 0; - } else { - this.indebt = 0; - this.outdentToken(this.indent - size, noNewlines); - } - this.indent = size; - return indent.length; - }; - - Lexer.prototype.outdentToken = function(moveOut, noNewlines) { - var dent, len; - while (moveOut > 0) { - len = this.indents.length - 1; - if (this.indents[len] === void 0) { - moveOut = 0; - } else if (this.indents[len] === this.outdebt) { - moveOut -= this.outdebt; - this.outdebt = 0; - } else if (this.indents[len] < this.outdebt) { - this.outdebt -= this.indents[len]; - moveOut -= this.indents[len]; - } else { - dent = this.indents.pop() - this.outdebt; - moveOut -= dent; - this.outdebt = 0; - this.pair('OUTDENT'); - this.token('OUTDENT', dent); - } - } - if (dent) { - this.outdebt -= moveOut; - } - while (this.value() === ';') { - this.tokens.pop(); - } - if (!(this.tag() === 'TERMINATOR' || noNewlines)) { - this.token('TERMINATOR', '\n'); - } - return this; - }; - - Lexer.prototype.whitespaceToken = function() { - var match, nline, prev; - if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) { - return 0; - } - prev = last(this.tokens); - if (prev) { - prev[match ? 'spaced' : 'newLine'] = true; - } - if (match) { - return match[0].length; - } else { - return 0; - } - }; - - Lexer.prototype.newlineToken = function() { - while (this.value() === ';') { - this.tokens.pop(); - } - if (this.tag() !== 'TERMINATOR') { - this.token('TERMINATOR', '\n'); - } - return this; - }; - - Lexer.prototype.suppressNewlines = function() { - if (this.value() === '\\') { - this.tokens.pop(); - } - return this; - }; - - Lexer.prototype.literalToken = function() { - var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5; - if (match = OPERATOR.exec(this.chunk)) { - value = match[0]; - if (CODE.test(value)) { - this.tagParameters(); - } - } else { - value = this.chunk.charAt(0); - } - tag = value; - prev = last(this.tokens); - if (value === '=' && prev) { - if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) { - this.error("reserved word \"" + (this.value()) + "\" can't be assigned"); - } - if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') { - prev[0] = 'COMPOUND_ASSIGN'; - prev[1] += '='; - return value.length; - } - } - if (value === ';') { - this.seenFor = false; - tag = 'TERMINATOR'; - } else if (__indexOf.call(MATH, value) >= 0) { - tag = 'MATH'; - } else if (__indexOf.call(COMPARE, value) >= 0) { - tag = 'COMPARE'; - } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) { - tag = 'COMPOUND_ASSIGN'; - } else if (__indexOf.call(UNARY, value) >= 0) { - tag = 'UNARY'; - } else if (__indexOf.call(SHIFT, value) >= 0) { - tag = 'SHIFT'; - } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) { - tag = 'LOGIC'; - } else if (prev && !prev.spaced) { - if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) { - if (prev[0] === '?') { - prev[0] = 'FUNC_EXIST'; - } - tag = 'CALL_START'; - } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) { - tag = 'INDEX_START'; - switch (prev[0]) { - case '?': - prev[0] = 'INDEX_SOAK'; - } - } - } - switch (value) { - case '(': - case '{': - case '[': - this.ends.push(INVERSES[value]); - break; - case ')': - case '}': - case ']': - this.pair(value); - } - this.token(tag, value); - return value.length; - }; - - Lexer.prototype.sanitizeHeredoc = function(doc, options) { - var attempt, herecomment, indent, match, _ref2; - indent = options.indent, herecomment = options.herecomment; - if (herecomment) { - if (HEREDOC_ILLEGAL.test(doc)) { - this.error("block comment cannot contain \"*/\", starting"); - } - if (doc.indexOf('\n') <= 0) { - return doc; - } - } else { - while (match = HEREDOC_INDENT.exec(doc)) { - attempt = match[1]; - if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) { - indent = attempt; - } - } - } - if (indent) { - doc = doc.replace(RegExp("\\n" + indent, "g"), '\n'); - } - if (!herecomment) { - doc = doc.replace(/^\n/, ''); - } - return doc; - }; - - Lexer.prototype.tagParameters = function() { - var i, stack, tok, tokens; - if (this.tag() !== ')') { - return this; - } - stack = []; - tokens = this.tokens; - i = tokens.length; - tokens[--i][0] = 'PARAM_END'; - while (tok = tokens[--i]) { - switch (tok[0]) { - case ')': - stack.push(tok); - break; - case '(': - case 'CALL_START': - if (stack.length) { - stack.pop(); - } else if (tok[0] === '(') { - tok[0] = 'PARAM_START'; - return this; - } else { - return this; - } - } - } - return this; - }; - - Lexer.prototype.closeIndentation = function() { - return this.outdentToken(this.indent); - }; - - Lexer.prototype.balancedString = function(str, end) { - var continueCount, i, letter, match, prev, stack, _i, _ref2; - continueCount = 0; - stack = [end]; - for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) { - if (continueCount) { - --continueCount; - continue; - } - switch (letter = str.charAt(i)) { - case '\\': - ++continueCount; - continue; - case end: - stack.pop(); - if (!stack.length) { - return str.slice(0, i + 1 || 9e9); - } - end = stack[stack.length - 1]; - continue; - } - if (end === '}' && (letter === '"' || letter === "'")) { - stack.push(end = letter); - } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) { - continueCount += match[0].length - 1; - } else if (end === '}' && letter === '{') { - stack.push(end = '}'); - } else if (end === '"' && prev === '#' && letter === '{') { - stack.push(end = '}'); - } - prev = letter; - } - return this.error("missing " + (stack.pop()) + ", starting"); - }; - - Lexer.prototype.interpolateString = function(str, options) { - var expr, heredoc, i, inner, interpolated, len, letter, nested, pi, regex, tag, tokens, value, _i, _len, _ref2, _ref3, _ref4; - if (options == null) { - options = {}; - } - heredoc = options.heredoc, regex = options.regex; - tokens = []; - pi = 0; - i = -1; - while (letter = str.charAt(i += 1)) { - if (letter === '\\') { - i += 1; - continue; - } - if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) { - continue; - } - if (pi < i) { - tokens.push(['NEOSTRING', str.slice(pi, i)]); - } - inner = expr.slice(1, -1); - if (inner.length) { - nested = new Lexer().tokenize(inner, { - line: this.line, - rewrite: false - }); - nested.pop(); - if (((_ref2 = nested[0]) != null ? _ref2[0] : void 0) === 'TERMINATOR') { - nested.shift(); - } - if (len = nested.length) { - if (len > 1) { - nested.unshift(['(', '(', this.line]); - nested.push([')', ')', this.line]); - } - tokens.push(['TOKENS', nested]); - } - } - i += expr.length; - pi = i + 1; - } - if ((i > pi && pi < str.length)) { - tokens.push(['NEOSTRING', str.slice(pi)]); - } - if (regex) { - return tokens; - } - if (!tokens.length) { - return this.token('STRING', '""'); - } - if (tokens[0][0] !== 'NEOSTRING') { - tokens.unshift(['', '']); - } - if (interpolated = tokens.length > 1) { - this.token('(', '('); - } - for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { - _ref3 = tokens[i], tag = _ref3[0], value = _ref3[1]; - if (i) { - this.token('+', '+'); - } - if (tag === 'TOKENS') { - (_ref4 = this.tokens).push.apply(_ref4, value); - } else { - this.token('STRING', this.makeString(value, '"', heredoc)); - } - } - if (interpolated) { - this.token(')', ')'); - } - return tokens; - }; - - Lexer.prototype.pair = function(tag) { - var size, wanted; - if (tag !== (wanted = last(this.ends))) { - if ('OUTDENT' !== wanted) { - this.error("unmatched " + tag); - } - this.indent -= size = last(this.indents); - this.outdentToken(size, true); - return this.pair(tag); - } - return this.ends.pop(); - }; - - Lexer.prototype.token = function(tag, value) { - return this.tokens.push([tag, value, this.line]); - }; - - Lexer.prototype.tag = function(index, tag) { - var tok; - return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]); - }; - - Lexer.prototype.value = function(index, val) { - var tok; - return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]); - }; - - Lexer.prototype.unfinished = function() { - var _ref2; - return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS'); - }; - - Lexer.prototype.escapeLines = function(str, heredoc) { - return str.replace(MULTILINER, heredoc ? '\\n' : ''); - }; - - Lexer.prototype.makeString = function(body, quote, heredoc) { - if (!body) { - return quote + quote; - } - body = body.replace(/\\([\s\S])/g, function(match, contents) { - if (contents === '\n' || contents === quote) { - return contents; - } else { - return match; - } - }); - body = body.replace(RegExp("" + quote, "g"), '\\$&'); - return quote + this.escapeLines(body, heredoc) + quote; - }; - - Lexer.prototype.error = function(message) { - throw SyntaxError("" + message + " on line " + (this.line + 1)); - }; - - return Lexer; - - })(); - - JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super']; - - COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when']; - - COFFEE_ALIAS_MAP = { - and: '&&', - or: '||', - is: '==', - isnt: '!=', - not: '!', - yes: 'true', - no: 'false', - on: 'true', - off: 'false' - }; - - COFFEE_ALIASES = (function() { - var _results; - _results = []; - for (key in COFFEE_ALIAS_MAP) { - _results.push(key); - } - return _results; - })(); - - COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES); - - RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'let', 'package', 'private', 'protected', 'public', 'static', 'yield']; - - STRICT_PROSCRIBED = ['arguments', 'eval']; - - JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED); - - exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED); - - exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED; - - IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/; - - NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i; - - HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/; - - OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?\.|\.{2,3})/; - - WHITESPACE = /^[^\n\S]+/; - - COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)?$)|^(?:\s*#(?!##[^#]).*)+/; - - CODE = /^[-=]>/; - - MULTI_DENT = /^(?:\n[^\n\S]*)+/; - - SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/; - - JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/; - - REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/; - - HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/; - - HEREGEX_OMIT = /\s+(?:#.*)?/g; - - MULTILINER = /\n/g; - - HEREDOC_INDENT = /\n+([^\n\S]*)/g; - - HEREDOC_ILLEGAL = /\*\//; - - LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/; - - TRAILING_SPACES = /\s+$/; - - COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=']; - - UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO']; - - LOGIC = ['&&', '||', '&', '|', '^']; - - SHIFT = ['<<', '>>', '>>>']; - - COMPARE = ['==', '!=', '<', '>', '<=', '>=']; - - MATH = ['*', '/', '%']; - - RELATION = ['IN', 'OF', 'INSTANCEOF']; - - BOOL = ['TRUE', 'FALSE', 'NULL', 'UNDEFINED']; - - NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', '++', '--', ']']; - - NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING'); - - CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER']; - - INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL'); - - LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR']; - -}).call(this); -}, "coffee-script/nodes": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref, _ref1, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - Scope = require('./scope').Scope; - - _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED; - - _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last; - - exports.extend = extend; - - YES = function() { - return true; - }; - - NO = function() { - return false; - }; - - THIS = function() { - return this; - }; - - NEGATE = function() { - this.negated = !this.negated; - return this; - }; - - exports.Base = Base = (function() { - - Base.name = 'Base'; - - function Base() {} - - Base.prototype.compile = function(o, lvl) { - var node; - o = extend({}, o); - if (lvl) { - o.level = lvl; - } - node = this.unfoldSoak(o) || this; - node.tab = o.indent; - if (o.level === LEVEL_TOP || !node.isStatement(o)) { - return node.compileNode(o); - } else { - return node.compileClosure(o); - } - }; - - Base.prototype.compileClosure = function(o) { - if (this.jumps()) { - throw SyntaxError('cannot use a pure statement in an expression.'); - } - o.sharedScope = true; - return Closure.wrap(this).compileNode(o); - }; - - Base.prototype.cache = function(o, level, reused) { - var ref, sub; - if (!this.isComplex()) { - ref = level ? this.compile(o, level) : this; - return [ref, ref]; - } else { - ref = new Literal(reused || o.scope.freeVariable('ref')); - sub = new Assign(ref, this); - if (level) { - return [sub.compile(o, level), ref.value]; - } else { - return [sub, ref]; - } - } - }; - - Base.prototype.compileLoopReference = function(o, name) { - var src, tmp; - src = tmp = this.compile(o, LEVEL_LIST); - if (!((-Infinity < +src && +src < Infinity) || IDENTIFIER.test(src) && o.scope.check(src, true))) { - src = "" + (tmp = o.scope.freeVariable(name)) + " = " + src; - } - return [src, tmp]; - }; - - Base.prototype.makeReturn = function(res) { - var me; - me = this.unwrapAll(); - if (res) { - return new Call(new Literal("" + res + ".push"), [me]); - } else { - return new Return(me); - } - }; - - Base.prototype.contains = function(pred) { - var contains; - contains = false; - this.traverseChildren(false, function(node) { - if (pred(node)) { - contains = true; - return false; - } - }); - return contains; - }; - - Base.prototype.containsType = function(type) { - return this instanceof type || this.contains(function(node) { - return node instanceof type; - }); - }; - - Base.prototype.lastNonComment = function(list) { - var i; - i = list.length; - while (i--) { - if (!(list[i] instanceof Comment)) { - return list[i]; - } - } - return null; - }; - - Base.prototype.toString = function(idt, name) { - var tree; - if (idt == null) { - idt = ''; - } - if (name == null) { - name = this.constructor.name; - } - tree = '\n' + idt + name; - if (this.soak) { - tree += '?'; - } - this.eachChild(function(node) { - return tree += node.toString(idt + TAB); - }); - return tree; - }; - - Base.prototype.eachChild = function(func) { - var attr, child, _i, _j, _len, _len1, _ref2, _ref3; - if (!this.children) { - return this; - } - _ref2 = this.children; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - attr = _ref2[_i]; - if (this[attr]) { - _ref3 = flatten([this[attr]]); - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - child = _ref3[_j]; - if (func(child) === false) { - return this; - } - } - } - } - return this; - }; - - Base.prototype.traverseChildren = function(crossScope, func) { - return this.eachChild(function(child) { - if (func(child) === false) { - return false; - } - return child.traverseChildren(crossScope, func); - }); - }; - - Base.prototype.invert = function() { - return new Op('!', this); - }; - - Base.prototype.unwrapAll = function() { - var node; - node = this; - while (node !== (node = node.unwrap())) { - continue; - } - return node; - }; - - Base.prototype.children = []; - - Base.prototype.isStatement = NO; - - Base.prototype.jumps = NO; - - Base.prototype.isComplex = YES; - - Base.prototype.isChainable = NO; - - Base.prototype.isAssignable = NO; - - Base.prototype.unwrap = THIS; - - Base.prototype.unfoldSoak = NO; - - Base.prototype.assigns = NO; - - return Base; - - })(); - - exports.Block = Block = (function(_super) { - - __extends(Block, _super); - - Block.name = 'Block'; - - function Block(nodes) { - this.expressions = compact(flatten(nodes || [])); - } - - Block.prototype.children = ['expressions']; - - Block.prototype.push = function(node) { - this.expressions.push(node); - return this; - }; - - Block.prototype.pop = function() { - return this.expressions.pop(); - }; - - Block.prototype.unshift = function(node) { - this.expressions.unshift(node); - return this; - }; - - Block.prototype.unwrap = function() { - if (this.expressions.length === 1) { - return this.expressions[0]; - } else { - return this; - } - }; - - Block.prototype.isEmpty = function() { - return !this.expressions.length; - }; - - Block.prototype.isStatement = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.isStatement(o)) { - return true; - } - } - return false; - }; - - Block.prototype.jumps = function(o) { - var exp, _i, _len, _ref2; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - exp = _ref2[_i]; - if (exp.jumps(o)) { - return exp; - } - } - }; - - Block.prototype.makeReturn = function(res) { - var expr, len; - len = this.expressions.length; - while (len--) { - expr = this.expressions[len]; - if (!(expr instanceof Comment)) { - this.expressions[len] = expr.makeReturn(res); - if (expr instanceof Return && !expr.expression) { - this.expressions.splice(len, 1); - } - break; - } - } - return this; - }; - - Block.prototype.compile = function(o, level) { - if (o == null) { - o = {}; - } - if (o.scope) { - return Block.__super__.compile.call(this, o, level); - } else { - return this.compileRoot(o); - } - }; - - Block.prototype.compileNode = function(o) { - var code, codes, node, top, _i, _len, _ref2; - this.tab = o.indent; - top = o.level === LEVEL_TOP; - codes = []; - _ref2 = this.expressions; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - node = _ref2[_i]; - node = node.unwrapAll(); - node = node.unfoldSoak(o) || node; - if (node instanceof Block) { - codes.push(node.compileNode(o)); - } else if (top) { - node.front = true; - code = node.compile(o); - if (!node.isStatement(o)) { - code = "" + this.tab + code + ";"; - if (node instanceof Literal) { - code = "" + code + "\n"; - } - } - codes.push(code); - } else { - codes.push(node.compile(o, LEVEL_LIST)); - } - } - if (top) { - if (this.spaced) { - return "\n" + (codes.join('\n\n')) + "\n"; - } else { - return codes.join('\n'); - } - } - code = codes.join(', ') || 'void 0'; - if (codes.length > 1 && o.level >= LEVEL_LIST) { - return "(" + code + ")"; - } else { - return code; - } - }; - - Block.prototype.compileRoot = function(o) { - var code, exp, i, prelude, preludeExps, rest; - o.indent = o.bare ? '' : TAB; - o.scope = new Scope(null, this, null); - o.level = LEVEL_TOP; - this.spaced = true; - prelude = ""; - if (!o.bare) { - preludeExps = (function() { - var _i, _len, _ref2, _results; - _ref2 = this.expressions; - _results = []; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - exp = _ref2[i]; - if (!(exp.unwrap() instanceof Comment)) { - break; - } - _results.push(exp); - } - return _results; - }).call(this); - rest = this.expressions.slice(preludeExps.length); - this.expressions = preludeExps; - if (preludeExps.length) { - prelude = "" + (this.compileNode(merge(o, { - indent: '' - }))) + "\n"; - } - this.expressions = rest; - } - code = this.compileWithDeclarations(o); - if (o.bare) { - return code; - } - return "" + prelude + "(function() {\n" + code + "\n}).call(this);\n"; - }; - - Block.prototype.compileWithDeclarations = function(o) { - var assigns, code, declars, exp, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4; - code = post = ''; - _ref2 = this.expressions; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - exp = _ref2[i]; - exp = exp.unwrap(); - if (!(exp instanceof Comment || exp instanceof Literal)) { - break; - } - } - o = merge(o, { - level: LEVEL_TOP - }); - if (i) { - rest = this.expressions.splice(i, 9e9); - _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1]; - _ref4 = [this.compileNode(o), spaced], code = _ref4[0], this.spaced = _ref4[1]; - this.expressions = rest; - } - post = this.compileNode(o); - scope = o.scope; - if (scope.expressions === this) { - declars = o.scope.hasDeclarations(); - assigns = scope.hasAssignments; - if (declars || assigns) { - if (i) { - code += '\n'; - } - code += "" + this.tab + "var "; - if (declars) { - code += scope.declaredVariables().join(', '); - } - if (assigns) { - if (declars) { - code += ",\n" + (this.tab + TAB); - } - code += scope.assignedVariables().join(",\n" + (this.tab + TAB)); - } - code += ';\n'; - } - } - return code + post; - }; - - Block.wrap = function(nodes) { - if (nodes.length === 1 && nodes[0] instanceof Block) { - return nodes[0]; - } - return new Block(nodes); - }; - - return Block; - - })(Base); - - exports.Literal = Literal = (function(_super) { - - __extends(Literal, _super); - - Literal.name = 'Literal'; - - function Literal(value) { - this.value = value; - } - - Literal.prototype.makeReturn = function() { - if (this.isStatement()) { - return this; - } else { - return Literal.__super__.makeReturn.apply(this, arguments); - } - }; - - Literal.prototype.isAssignable = function() { - return IDENTIFIER.test(this.value); - }; - - Literal.prototype.isStatement = function() { - var _ref2; - return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger'; - }; - - Literal.prototype.isComplex = NO; - - Literal.prototype.assigns = function(name) { - return name === this.value; - }; - - Literal.prototype.jumps = function(o) { - if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) { - return this; - } - if (this.value === 'continue' && !(o != null ? o.loop : void 0)) { - return this; - } - }; - - Literal.prototype.compileNode = function(o) { - var code, _ref2; - code = this.isUndefined ? o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0' : this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value; - if (this.isStatement()) { - return "" + this.tab + code + ";"; - } else { - return code; - } - }; - - Literal.prototype.toString = function() { - return ' "' + this.value + '"'; - }; - - return Literal; - - })(Base); - - exports.Return = Return = (function(_super) { - - __extends(Return, _super); - - Return.name = 'Return'; - - function Return(expr) { - if (expr && !expr.unwrap().isUndefined) { - this.expression = expr; - } - } - - Return.prototype.children = ['expression']; - - Return.prototype.isStatement = YES; - - Return.prototype.makeReturn = THIS; - - Return.prototype.jumps = THIS; - - Return.prototype.compile = function(o, level) { - var expr, _ref2; - expr = (_ref2 = this.expression) != null ? _ref2.makeReturn() : void 0; - if (expr && !(expr instanceof Return)) { - return expr.compile(o, level); - } else { - return Return.__super__.compile.call(this, o, level); - } - }; - - Return.prototype.compileNode = function(o) { - return this.tab + ("return" + [this.expression ? " " + (this.expression.compile(o, LEVEL_PAREN)) : void 0] + ";"); - }; - - return Return; - - })(Base); - - exports.Value = Value = (function(_super) { - - __extends(Value, _super); - - Value.name = 'Value'; - - function Value(base, props, tag) { - if (!props && base instanceof Value) { - return base; - } - this.base = base; - this.properties = props || []; - if (tag) { - this[tag] = true; - } - return this; - } - - Value.prototype.children = ['base', 'properties']; - - Value.prototype.add = function(props) { - this.properties = this.properties.concat(props); - return this; - }; - - Value.prototype.hasProperties = function() { - return !!this.properties.length; - }; - - Value.prototype.isArray = function() { - return !this.properties.length && this.base instanceof Arr; - }; - - Value.prototype.isComplex = function() { - return this.hasProperties() || this.base.isComplex(); - }; - - Value.prototype.isAssignable = function() { - return this.hasProperties() || this.base.isAssignable(); - }; - - Value.prototype.isSimpleNumber = function() { - return this.base instanceof Literal && SIMPLENUM.test(this.base.value); - }; - - Value.prototype.isString = function() { - return this.base instanceof Literal && IS_STRING.test(this.base.value); - }; - - Value.prototype.isAtomic = function() { - var node, _i, _len, _ref2; - _ref2 = this.properties.concat(this.base); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - node = _ref2[_i]; - if (node.soak || node instanceof Call) { - return false; - } - } - return true; - }; - - Value.prototype.isStatement = function(o) { - return !this.properties.length && this.base.isStatement(o); - }; - - Value.prototype.assigns = function(name) { - return !this.properties.length && this.base.assigns(name); - }; - - Value.prototype.jumps = function(o) { - return !this.properties.length && this.base.jumps(o); - }; - - Value.prototype.isObject = function(onlyGenerated) { - if (this.properties.length) { - return false; - } - return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated); - }; - - Value.prototype.isSplice = function() { - return last(this.properties) instanceof Slice; - }; - - Value.prototype.unwrap = function() { - if (this.properties.length) { - return this; - } else { - return this.base; - } - }; - - Value.prototype.cacheReference = function(o) { - var base, bref, name, nref; - name = last(this.properties); - if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) { - return [this, this]; - } - base = new Value(this.base, this.properties.slice(0, -1)); - if (base.isComplex()) { - bref = new Literal(o.scope.freeVariable('base')); - base = new Value(new Parens(new Assign(bref, base))); - } - if (!name) { - return [base, bref]; - } - if (name.isComplex()) { - nref = new Literal(o.scope.freeVariable('name')); - name = new Index(new Assign(nref, name.index)); - nref = new Index(nref); - } - return [base.add(name), new Value(bref || base.base, [nref || name])]; - }; - - Value.prototype.compileNode = function(o) { - var code, prop, props, _i, _len; - this.base.front = this.front; - props = this.properties; - code = this.base.compile(o, props.length ? LEVEL_ACCESS : null); - if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(code)) { - code = "" + code + "."; - } - for (_i = 0, _len = props.length; _i < _len; _i++) { - prop = props[_i]; - code += prop.compile(o); - } - return code; - }; - - Value.prototype.unfoldSoak = function(o) { - var result, - _this = this; - if (this.unfoldedSoak != null) { - return this.unfoldedSoak; - } - result = (function() { - var fst, i, ifn, prop, ref, snd, _i, _len, _ref2; - if (ifn = _this.base.unfoldSoak(o)) { - Array.prototype.push.apply(ifn.body.properties, _this.properties); - return ifn; - } - _ref2 = _this.properties; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - prop = _ref2[i]; - if (!prop.soak) { - continue; - } - prop.soak = false; - fst = new Value(_this.base, _this.properties.slice(0, i)); - snd = new Value(_this.base, _this.properties.slice(i)); - if (fst.isComplex()) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, fst)); - snd.base = ref; - } - return new If(new Existence(fst), snd, { - soak: true - }); - } - return null; - })(); - return this.unfoldedSoak = result || false; - }; - - return Value; - - })(Base); - - exports.Comment = Comment = (function(_super) { - - __extends(Comment, _super); - - Comment.name = 'Comment'; - - function Comment(comment) { - this.comment = comment; - } - - Comment.prototype.isStatement = YES; - - Comment.prototype.makeReturn = THIS; - - Comment.prototype.compileNode = function(o, level) { - var code; - code = '/*' + multident(this.comment, this.tab) + ("\n" + this.tab + "*/\n"); - if ((level || o.level) === LEVEL_TOP) { - code = o.indent + code; - } - return code; - }; - - return Comment; - - })(Base); - - exports.Call = Call = (function(_super) { - - __extends(Call, _super); - - Call.name = 'Call'; - - function Call(variable, args, soak) { - this.args = args != null ? args : []; - this.soak = soak; - this.isNew = false; - this.isSuper = variable === 'super'; - this.variable = this.isSuper ? null : variable; - } - - Call.prototype.children = ['variable', 'args']; - - Call.prototype.newInstance = function() { - var base, _ref2; - base = ((_ref2 = this.variable) != null ? _ref2.base : void 0) || this.variable; - if (base instanceof Call && !base.isNew) { - base.newInstance(); - } else { - this.isNew = true; - } - return this; - }; - - Call.prototype.superReference = function(o) { - var accesses, method, name; - method = o.scope.method; - if (!method) { - throw SyntaxError('cannot call super outside of a function.'); - } - name = method.name; - if (name == null) { - throw SyntaxError('cannot call super on an anonymous function.'); - } - if (method.klass) { - accesses = [new Access(new Literal('__super__'))]; - if (method["static"]) { - accesses.push(new Access(new Literal('constructor'))); - } - accesses.push(new Access(new Literal(name))); - return (new Value(new Literal(method.klass), accesses)).compile(o); - } else { - return "" + name + ".__super__.constructor"; - } - }; - - Call.prototype.unfoldSoak = function(o) { - var call, ifn, left, list, rite, _i, _len, _ref2, _ref3; - if (this.soak) { - if (this.variable) { - if (ifn = unfoldSoak(o, this, 'variable')) { - return ifn; - } - _ref2 = new Value(this.variable).cacheReference(o), left = _ref2[0], rite = _ref2[1]; - } else { - left = new Literal(this.superReference(o)); - rite = new Value(left); - } - rite = new Call(rite, this.args); - rite.isNew = this.isNew; - left = new Literal("typeof " + (left.compile(o)) + " === \"function\""); - return new If(left, new Value(rite), { - soak: true - }); - } - call = this; - list = []; - while (true) { - if (call.variable instanceof Call) { - list.push(call); - call = call.variable; - continue; - } - if (!(call.variable instanceof Value)) { - break; - } - list.push(call); - if (!((call = call.variable.base) instanceof Call)) { - break; - } - } - _ref3 = list.reverse(); - for (_i = 0, _len = _ref3.length; _i < _len; _i++) { - call = _ref3[_i]; - if (ifn) { - if (call.variable instanceof Call) { - call.variable = ifn; - } else { - call.variable.base = ifn; - } - } - ifn = unfoldSoak(o, call, 'variable'); - } - return ifn; - }; - - Call.prototype.filterImplicitObjects = function(list) { - var node, nodes, obj, prop, properties, _i, _j, _len, _len1, _ref2; - nodes = []; - for (_i = 0, _len = list.length; _i < _len; _i++) { - node = list[_i]; - if (!((typeof node.isObject === "function" ? node.isObject() : void 0) && node.base.generated)) { - nodes.push(node); - continue; - } - obj = null; - _ref2 = node.base.properties; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - prop = _ref2[_j]; - if (prop instanceof Assign || prop instanceof Comment) { - if (!obj) { - nodes.push(obj = new Obj(properties = [], true)); - } - properties.push(prop); - } else { - nodes.push(prop); - obj = null; - } - } - } - return nodes; - }; - - Call.prototype.compileNode = function(o) { - var arg, args, code, _ref2; - if ((_ref2 = this.variable) != null) { - _ref2.front = this.front; - } - if (code = Splat.compileSplattedArray(o, this.args, true)) { - return this.compileSplat(o, code); - } - args = this.filterImplicitObjects(this.args); - args = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = args.length; _i < _len; _i++) { - arg = args[_i]; - _results.push(arg.compile(o, LEVEL_LIST)); - } - return _results; - })()).join(', '); - if (this.isSuper) { - return this.superReference(o) + (".call(this" + (args && ', ' + args) + ")"); - } else { - return (this.isNew ? 'new ' : '') + this.variable.compile(o, LEVEL_ACCESS) + ("(" + args + ")"); - } - }; - - Call.prototype.compileSuper = function(args, o) { - return "" + (this.superReference(o)) + ".call(this" + (args.length ? ', ' : '') + args + ")"; - }; - - Call.prototype.compileSplat = function(o, splatArgs) { - var base, fun, idt, name, ref; - if (this.isSuper) { - return "" + (this.superReference(o)) + ".apply(this, " + splatArgs + ")"; - } - if (this.isNew) { - idt = this.tab + TAB; - return "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args), t = typeof result;\n" + idt + "return t == \"object\" || t == \"function\" ? result || child : child;\n" + this.tab + "})(" + (this.variable.compile(o, LEVEL_LIST)) + ", " + splatArgs + ", function(){})"; - } - base = new Value(this.variable); - if ((name = base.properties.pop()) && base.isComplex()) { - ref = o.scope.freeVariable('ref'); - fun = "(" + ref + " = " + (base.compile(o, LEVEL_LIST)) + ")" + (name.compile(o)); - } else { - fun = base.compile(o, LEVEL_ACCESS); - if (SIMPLENUM.test(fun)) { - fun = "(" + fun + ")"; - } - if (name) { - ref = fun; - fun += name.compile(o); - } else { - ref = 'null'; - } - } - return "" + fun + ".apply(" + ref + ", " + splatArgs + ")"; - }; - - return Call; - - })(Base); - - exports.Extends = Extends = (function(_super) { - - __extends(Extends, _super); - - Extends.name = 'Extends'; - - function Extends(child, parent) { - this.child = child; - this.parent = parent; - } - - Extends.prototype.children = ['child', 'parent']; - - Extends.prototype.compile = function(o) { - return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compile(o); - }; - - return Extends; - - })(Base); - - exports.Access = Access = (function(_super) { - - __extends(Access, _super); - - Access.name = 'Access'; - - function Access(name, tag) { - this.name = name; - this.name.asKey = true; - this.soak = tag === 'soak'; - } - - Access.prototype.children = ['name']; - - Access.prototype.compile = function(o) { - var name; - name = this.name.compile(o); - if (IDENTIFIER.test(name)) { - return "." + name; - } else { - return "[" + name + "]"; - } - }; - - Access.prototype.isComplex = NO; - - return Access; - - })(Base); - - exports.Index = Index = (function(_super) { - - __extends(Index, _super); - - Index.name = 'Index'; - - function Index(index) { - this.index = index; - } - - Index.prototype.children = ['index']; - - Index.prototype.compile = function(o) { - return "[" + (this.index.compile(o, LEVEL_PAREN)) + "]"; - }; - - Index.prototype.isComplex = function() { - return this.index.isComplex(); - }; - - return Index; - - })(Base); - - exports.Range = Range = (function(_super) { - - __extends(Range, _super); - - Range.name = 'Range'; - - Range.prototype.children = ['from', 'to']; - - function Range(from, to, tag) { - this.from = from; - this.to = to; - this.exclusive = tag === 'exclusive'; - this.equals = this.exclusive ? '' : '='; - } - - Range.prototype.compileVariables = function(o) { - var step, _ref2, _ref3, _ref4, _ref5; - o = merge(o, { - top: true - }); - _ref2 = this.from.cache(o, LEVEL_LIST), this.fromC = _ref2[0], this.fromVar = _ref2[1]; - _ref3 = this.to.cache(o, LEVEL_LIST), this.toC = _ref3[0], this.toVar = _ref3[1]; - if (step = del(o, 'step')) { - _ref4 = step.cache(o, LEVEL_LIST), this.step = _ref4[0], this.stepVar = _ref4[1]; - } - _ref5 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref5[0], this.toNum = _ref5[1]; - if (this.stepVar) { - return this.stepNum = this.stepVar.match(SIMPLENUM); - } - }; - - Range.prototype.compileNode = function(o) { - var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref2, _ref3; - if (!this.fromVar) { - this.compileVariables(o); - } - if (!o.index) { - return this.compileArray(o); - } - known = this.fromNum && this.toNum; - idx = del(o, 'index'); - idxName = del(o, 'name'); - namedIndex = idxName && idxName !== idx; - varPart = "" + idx + " = " + this.fromC; - if (this.toC !== this.toVar) { - varPart += ", " + this.toC; - } - if (this.step !== this.stepVar) { - varPart += ", " + this.step; - } - _ref2 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref2[0], gt = _ref2[1]; - condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref3 = [+this.fromNum, +this.toNum], from = _ref3[0], to = _ref3[1], _ref3), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar); - stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--"; - if (namedIndex) { - varPart = "" + idxName + " = " + varPart; - } - if (namedIndex) { - stepPart = "" + idxName + " = " + stepPart; - } - return "" + varPart + "; " + condPart + "; " + stepPart; - }; - - Range.prototype.compileArray = function(o) { - var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref2, _ref3, _results; - if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) { - range = (function() { - _results = []; - for (var _i = _ref2 = +this.fromNum, _ref3 = +this.toNum; _ref2 <= _ref3 ? _i <= _ref3 : _i >= _ref3; _ref2 <= _ref3 ? _i++ : _i--){ _results.push(_i); } - return _results; - }).apply(this); - if (this.exclusive) { - range.pop(); - } - return "[" + (range.join(', ')) + "]"; - } - idt = this.tab + TAB; - i = o.scope.freeVariable('i'); - result = o.scope.freeVariable('results'); - pre = "\n" + idt + result + " = [];"; - if (this.fromNum && this.toNum) { - o.index = i; - body = this.compileNode(o); - } else { - vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : ''); - cond = "" + this.fromVar + " <= " + this.toVar; - body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--"; - } - post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent; - hasArgs = function(node) { - return node != null ? node.contains(function(n) { - return n instanceof Literal && n.value === 'arguments' && !n.asKey; - }) : void 0; - }; - if (hasArgs(this.from) || hasArgs(this.to)) { - args = ', arguments'; - } - return "(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")"; - }; - - return Range; - - })(Base); - - exports.Slice = Slice = (function(_super) { - - __extends(Slice, _super); - - Slice.name = 'Slice'; - - Slice.prototype.children = ['range']; - - function Slice(range) { - this.range = range; - Slice.__super__.constructor.call(this); - } - - Slice.prototype.compileNode = function(o) { - var compiled, from, fromStr, to, toStr, _ref2; - _ref2 = this.range, to = _ref2.to, from = _ref2.from; - fromStr = from && from.compile(o, LEVEL_PAREN) || '0'; - compiled = to && to.compile(o, LEVEL_PAREN); - if (to && !(!this.range.exclusive && +compiled === -1)) { - toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? "" + (+compiled + 1) : (compiled = to.compile(o, LEVEL_ACCESS), "" + compiled + " + 1 || 9e9")); - } - return ".slice(" + fromStr + (toStr || '') + ")"; - }; - - return Slice; - - })(Base); - - exports.Obj = Obj = (function(_super) { - - __extends(Obj, _super); - - Obj.name = 'Obj'; - - function Obj(props, generated) { - this.generated = generated != null ? generated : false; - this.objects = this.properties = props || []; - } - - Obj.prototype.children = ['properties']; - - Obj.prototype.compileNode = function(o) { - var i, idt, indent, join, lastNoncom, node, obj, prop, propName, propNames, props, _i, _j, _len, _len1, _ref2; - props = this.properties; - propNames = []; - _ref2 = this.properties; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - prop = _ref2[_i]; - if (prop.isComplex()) { - prop = prop.variable; - } - if (prop != null) { - propName = prop.unwrapAll().value.toString(); - if (__indexOf.call(propNames, propName) >= 0) { - throw SyntaxError("multiple object literal properties named \"" + propName + "\""); - } - propNames.push(propName); - } - } - if (!props.length) { - return (this.front ? '({})' : '{}'); - } - if (this.generated) { - for (_j = 0, _len1 = props.length; _j < _len1; _j++) { - node = props[_j]; - if (node instanceof Value) { - throw new Error('cannot have an implicit value in an implicit object'); - } - } - } - idt = o.indent += TAB; - lastNoncom = this.lastNonComment(this.properties); - props = (function() { - var _k, _len2, _results; - _results = []; - for (i = _k = 0, _len2 = props.length; _k < _len2; i = ++_k) { - prop = props[i]; - join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n'; - indent = prop instanceof Comment ? '' : idt; - if (prop instanceof Value && prop["this"]) { - prop = new Assign(prop.properties[0].name, prop, 'object'); - } - if (!(prop instanceof Comment)) { - if (!(prop instanceof Assign)) { - prop = new Assign(prop, prop, 'object'); - } - (prop.variable.base || prop.variable).asKey = true; - } - _results.push(indent + prop.compile(o, LEVEL_TOP) + join); - } - return _results; - })(); - props = props.join(''); - obj = "{" + (props && '\n' + props + '\n' + this.tab) + "}"; - if (this.front) { - return "(" + obj + ")"; - } else { - return obj; - } - }; - - Obj.prototype.assigns = function(name) { - var prop, _i, _len, _ref2; - _ref2 = this.properties; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - prop = _ref2[_i]; - if (prop.assigns(name)) { - return true; - } - } - return false; - }; - - return Obj; - - })(Base); - - exports.Arr = Arr = (function(_super) { - - __extends(Arr, _super); - - Arr.name = 'Arr'; - - function Arr(objs) { - this.objects = objs || []; - } - - Arr.prototype.children = ['objects']; - - Arr.prototype.filterImplicitObjects = Call.prototype.filterImplicitObjects; - - Arr.prototype.compileNode = function(o) { - var code, obj, objs; - if (!this.objects.length) { - return '[]'; - } - o.indent += TAB; - objs = this.filterImplicitObjects(this.objects); - if (code = Splat.compileSplattedArray(o, objs)) { - return code; - } - code = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = objs.length; _i < _len; _i++) { - obj = objs[_i]; - _results.push(obj.compile(o, LEVEL_LIST)); - } - return _results; - })()).join(', '); - if (code.indexOf('\n') >= 0) { - return "[\n" + o.indent + code + "\n" + this.tab + "]"; - } else { - return "[" + code + "]"; - } - }; - - Arr.prototype.assigns = function(name) { - var obj, _i, _len, _ref2; - _ref2 = this.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (obj.assigns(name)) { - return true; - } - } - return false; - }; - - return Arr; - - })(Base); - - exports.Class = Class = (function(_super) { - - __extends(Class, _super); - - Class.name = 'Class'; - - function Class(variable, parent, body) { - this.variable = variable; - this.parent = parent; - this.body = body != null ? body : new Block; - this.boundFuncs = []; - this.body.classBody = true; - } - - Class.prototype.children = ['variable', 'parent', 'body']; - - Class.prototype.determineName = function() { - var decl, tail; - if (!this.variable) { - return null; - } - decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value; - if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) { - throw SyntaxError("variable name may not be " + decl); - } - return decl && (decl = IDENTIFIER.test(decl) && decl); - }; - - Class.prototype.setContext = function(name) { - return this.body.traverseChildren(false, function(node) { - if (node.classBody) { - return false; - } - if (node instanceof Literal && node.value === 'this') { - return node.value = name; - } else if (node instanceof Code) { - node.klass = name; - if (node.bound) { - return node.context = name; - } - } - }); - }; - - Class.prototype.addBoundFunctions = function(o) { - var bvar, lhs, _i, _len, _ref2, _results; - if (this.boundFuncs.length) { - _ref2 = this.boundFuncs; - _results = []; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - bvar = _ref2[_i]; - lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o); - _results.push(this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)"))); - } - return _results; - } - }; - - Class.prototype.addProperties = function(node, name, o) { - var assign, base, exprs, func, props; - props = node.base.properties.slice(0); - exprs = (function() { - var _results; - _results = []; - while (assign = props.shift()) { - if (assign instanceof Assign) { - base = assign.variable.base; - delete assign.context; - func = assign.value; - if (base.value === 'constructor') { - if (this.ctor) { - throw new Error('cannot define more than one constructor in a class'); - } - if (func.bound) { - throw new Error('cannot define a constructor as a bound function'); - } - if (func instanceof Code) { - assign = this.ctor = func; - } else { - this.externalCtor = o.scope.freeVariable('class'); - assign = new Assign(new Literal(this.externalCtor), func); - } - } else { - if (assign.variable["this"]) { - func["static"] = true; - if (func.bound) { - func.context = name; - } - } else { - assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]); - if (func instanceof Code && func.bound) { - this.boundFuncs.push(base); - func.bound = false; - } - } - } - } - _results.push(assign); - } - return _results; - }).call(this); - return compact(exprs); - }; - - Class.prototype.walkBody = function(name, o) { - var _this = this; - return this.traverseChildren(false, function(child) { - var exps, i, node, _i, _len, _ref2; - if (child instanceof Class) { - return false; - } - if (child instanceof Block) { - _ref2 = exps = child.expressions; - for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) { - node = _ref2[i]; - if (node instanceof Value && node.isObject(true)) { - exps[i] = _this.addProperties(node, name, o); - } - } - return child.expressions = exps = flatten(exps); - } - }); - }; - - Class.prototype.hoistDirectivePrologue = function() { - var expressions, index, node; - index = 0; - expressions = this.body.expressions; - while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) { - ++index; - } - return this.directives = expressions.splice(0, index); - }; - - Class.prototype.ensureConstructor = function(name) { - if (!this.ctor) { - this.ctor = new Code; - if (this.parent) { - this.ctor.body.push(new Literal("" + name + ".__super__.constructor.apply(this, arguments)")); - } - if (this.externalCtor) { - this.ctor.body.push(new Literal("" + this.externalCtor + ".apply(this, arguments)")); - } - this.ctor.body.makeReturn(); - this.body.expressions.unshift(this.ctor); - } - this.ctor.ctor = this.ctor.name = name; - this.ctor.klass = null; - return this.ctor.noReturn = true; - }; - - Class.prototype.compileNode = function(o) { - var call, decl, klass, lname, name, params, _ref2; - decl = this.determineName(); - name = decl || '_Class'; - if (name.reserved) { - name = "_" + name; - } - lname = new Literal(name); - this.hoistDirectivePrologue(); - this.setContext(name); - this.walkBody(name, o); - this.ensureConstructor(name); - this.body.spaced = true; - if (!(this.ctor instanceof Code)) { - this.body.expressions.unshift(this.ctor); - } - if (decl) { - this.body.expressions.unshift(new Assign(new Value(new Literal(name), [new Access(new Literal('name'))]), new Literal("'" + name + "'"))); - } - this.body.expressions.push(lname); - (_ref2 = this.body.expressions).unshift.apply(_ref2, this.directives); - this.addBoundFunctions(o); - call = Closure.wrap(this.body); - if (this.parent) { - this.superClass = new Literal(o.scope.freeVariable('super', false)); - this.body.expressions.unshift(new Extends(lname, this.superClass)); - call.args.push(this.parent); - params = call.variable.params || call.variable.base.params; - params.push(new Param(this.superClass)); - } - klass = new Parens(call, true); - if (this.variable) { - klass = new Assign(this.variable, klass); - } - return klass.compile(o); - }; - - return Class; - - })(Base); - - exports.Assign = Assign = (function(_super) { - - __extends(Assign, _super); - - Assign.name = 'Assign'; - - function Assign(variable, value, context, options) { - var forbidden, name, _ref2; - this.variable = variable; - this.value = value; - this.context = context; - this.param = options && options.param; - this.subpattern = options && options.subpattern; - forbidden = (_ref2 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0); - if (forbidden && this.context !== 'object') { - throw SyntaxError("variable name may not be \"" + name + "\""); - } - } - - Assign.prototype.children = ['variable', 'value']; - - Assign.prototype.isStatement = function(o) { - return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0; - }; - - Assign.prototype.assigns = function(name) { - return this[this.context === 'object' ? 'value' : 'variable'].assigns(name); - }; - - Assign.prototype.unfoldSoak = function(o) { - return unfoldSoak(o, this, 'variable'); - }; - - Assign.prototype.compileNode = function(o) { - var isValue, match, name, val, varBase, _ref2, _ref3, _ref4, _ref5; - if (isValue = this.variable instanceof Value) { - if (this.variable.isArray() || this.variable.isObject()) { - return this.compilePatternMatch(o); - } - if (this.variable.isSplice()) { - return this.compileSplice(o); - } - if ((_ref2 = this.context) === '||=' || _ref2 === '&&=' || _ref2 === '?=') { - return this.compileConditional(o); - } - } - name = this.variable.compile(o, LEVEL_LIST); - if (!this.context) { - if (!(varBase = this.variable.unwrapAll()).isAssignable()) { - throw SyntaxError("\"" + (this.variable.compile(o)) + "\" cannot be assigned."); - } - if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) { - if (this.param) { - o.scope.add(name, 'var'); - } else { - o.scope.find(name); - } - } - } - if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) { - if (match[1]) { - this.value.klass = match[1]; - } - this.value.name = (_ref3 = (_ref4 = (_ref5 = match[2]) != null ? _ref5 : match[3]) != null ? _ref4 : match[4]) != null ? _ref3 : match[5]; - } - val = this.value.compile(o, LEVEL_LIST); - if (this.context === 'object') { - return "" + name + ": " + val; - } - val = name + (" " + (this.context || '=') + " ") + val; - if (o.level <= LEVEL_LIST) { - return val; - } else { - return "(" + val + ")"; - } - }; - - Assign.prototype.compilePatternMatch = function(o) { - var acc, assigns, code, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; - top = o.level === LEVEL_TOP; - value = this.value; - objects = this.variable.base.objects; - if (!(olen = objects.length)) { - code = value.compile(o); - if (o.level >= LEVEL_OP) { - return "(" + code + ")"; - } else { - return code; - } - } - isObject = this.variable.isObject(); - if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) { - if (obj instanceof Assign) { - _ref2 = obj, (_ref3 = _ref2.variable, idx = _ref3.base), obj = _ref2.value; - } else { - if (obj.base instanceof Parens) { - _ref4 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref4[0], idx = _ref4[1]; - } else { - idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0); - } - } - acc = IDENTIFIER.test(idx.unwrap().value || 0); - value = new Value(value); - value.properties.push(new (acc ? Access : Index)(idx)); - if (_ref5 = obj.unwrap().value, __indexOf.call(RESERVED, _ref5) >= 0) { - throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (value.compile(o))); - } - return new Assign(obj, value, null, { - param: this.param - }).compile(o, LEVEL_TOP); - } - vvar = value.compile(o, LEVEL_LIST); - assigns = []; - splat = false; - if (!IDENTIFIER.test(vvar) || this.variable.assigns(vvar)) { - assigns.push("" + (ref = o.scope.freeVariable('ref')) + " = " + vvar); - vvar = ref; - } - for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) { - obj = objects[i]; - idx = i; - if (isObject) { - if (obj instanceof Assign) { - _ref6 = obj, (_ref7 = _ref6.variable, idx = _ref7.base), obj = _ref6.value; - } else { - if (obj.base instanceof Parens) { - _ref8 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref8[0], idx = _ref8[1]; - } else { - idx = obj["this"] ? obj.properties[0].name : obj; - } - } - } - if (!splat && obj instanceof Splat) { - name = obj.name.unwrap().value; - obj = obj.unwrap(); - val = "" + olen + " <= " + vvar + ".length ? " + (utility('slice')) + ".call(" + vvar + ", " + i; - if (rest = olen - i - 1) { - ivar = o.scope.freeVariable('i'); - val += ", " + ivar + " = " + vvar + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])"; - } else { - val += ") : []"; - } - val = new Literal(val); - splat = "" + ivar + "++"; - } else { - name = obj.unwrap().value; - if (obj instanceof Splat) { - obj = obj.name.compile(o); - throw new SyntaxError("multiple splats are disallowed in an assignment: " + obj + "..."); - } - if (typeof idx === 'number') { - idx = new Literal(splat || idx); - acc = false; - } else { - acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0); - } - val = new Value(new Literal(vvar), [new (acc ? Access : Index)(idx)]); - } - if ((name != null) && __indexOf.call(RESERVED, name) >= 0) { - throw new SyntaxError("assignment to a reserved word: " + (obj.compile(o)) + " = " + (val.compile(o))); - } - assigns.push(new Assign(obj, val, null, { - param: this.param, - subpattern: true - }).compile(o, LEVEL_LIST)); - } - if (!(top || this.subpattern)) { - assigns.push(vvar); - } - code = assigns.join(', '); - if (o.level < LEVEL_LIST) { - return code; - } else { - return "(" + code + ")"; - } - }; - - Assign.prototype.compileConditional = function(o) { - var left, right, _ref2; - _ref2 = this.variable.cacheReference(o), left = _ref2[0], right = _ref2[1]; - if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) { - throw new Error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been defined."); - } - if (__indexOf.call(this.context, "?") >= 0) { - o.isExistentialEquals = true; - } - return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compile(o); - }; - - Assign.prototype.compileSplice = function(o) { - var code, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref2, _ref3, _ref4; - _ref2 = this.variable.properties.pop().range, from = _ref2.from, to = _ref2.to, exclusive = _ref2.exclusive; - name = this.variable.compile(o); - _ref3 = (from != null ? from.cache(o, LEVEL_OP) : void 0) || ['0', '0'], fromDecl = _ref3[0], fromRef = _ref3[1]; - if (to) { - if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) { - to = +to.compile(o) - +fromRef; - if (!exclusive) { - to += 1; - } - } else { - to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef; - if (!exclusive) { - to += ' + 1'; - } - } - } else { - to = "9e9"; - } - _ref4 = this.value.cache(o, LEVEL_LIST), valDef = _ref4[0], valRef = _ref4[1]; - code = "[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat(" + valDef + ")), " + valRef; - if (o.level > LEVEL_TOP) { - return "(" + code + ")"; - } else { - return code; - } - }; - - return Assign; - - })(Base); - - exports.Code = Code = (function(_super) { - - __extends(Code, _super); - - Code.name = 'Code'; - - function Code(params, body, tag) { - this.params = params || []; - this.body = body || new Block; - this.bound = tag === 'boundfunc'; - if (this.bound) { - this.context = '_this'; - } - } - - Code.prototype.children = ['params', 'body']; - - Code.prototype.isStatement = function() { - return !!this.ctor; - }; - - Code.prototype.jumps = NO; - - Code.prototype.compileNode = function(o) { - var code, exprs, i, idt, lit, name, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8; - o.scope = new Scope(o.scope, this.body, this); - o.scope.shared = del(o, 'sharedScope'); - o.indent += TAB; - delete o.bare; - delete o.isExistentialEquals; - params = []; - exprs = []; - _ref2 = this.paramNames(); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - name = _ref2[_i]; - if (!o.scope.check(name)) { - o.scope.parameter(name); - } - } - _ref3 = this.params; - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - param = _ref3[_j]; - if (!param.splat) { - continue; - } - _ref4 = this.params; - for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) { - p = _ref4[_k]; - if (p.name.value) { - o.scope.add(p.name.value, 'var', true); - } - } - splats = new Assign(new Value(new Arr((function() { - var _l, _len3, _ref5, _results; - _ref5 = this.params; - _results = []; - for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) { - p = _ref5[_l]; - _results.push(p.asReference(o)); - } - return _results; - }).call(this))), new Value(new Literal('arguments'))); - break; - } - _ref5 = this.params; - for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) { - param = _ref5[_l]; - if (param.isComplex()) { - val = ref = param.asReference(o); - if (param.value) { - val = new Op('?', ref, param.value); - } - exprs.push(new Assign(new Value(param.name), val, '=', { - param: true - })); - } else { - ref = param; - if (param.value) { - lit = new Literal(ref.name.value + ' == null'); - val = new Assign(new Value(param.name), param.value, '='); - exprs.push(new If(lit, val)); - } - } - if (!splats) { - params.push(ref); - } - } - wasEmpty = this.body.isEmpty(); - if (splats) { - exprs.unshift(splats); - } - if (exprs.length) { - (_ref6 = this.body.expressions).unshift.apply(_ref6, exprs); - } - for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) { - p = params[i]; - o.scope.parameter(params[i] = p.compile(o)); - } - uniqs = []; - _ref7 = this.paramNames(); - for (_n = 0, _len5 = _ref7.length; _n < _len5; _n++) { - name = _ref7[_n]; - if (__indexOf.call(uniqs, name) >= 0) { - throw SyntaxError("multiple parameters named '" + name + "'"); - } - uniqs.push(name); - } - if (!(wasEmpty || this.noReturn)) { - this.body.makeReturn(); - } - if (this.bound) { - if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) { - this.bound = this.context = o.scope.parent.method.context; - } else if (!this["static"]) { - o.scope.parent.assign('_this', 'this'); - } - } - idt = o.indent; - code = 'function'; - if (this.ctor) { - code += ' ' + this.name; - } - code += '(' + params.join(', ') + ') {'; - if (!this.body.isEmpty()) { - code += "\n" + (this.body.compileWithDeclarations(o)) + "\n" + this.tab; - } - code += '}'; - if (this.ctor) { - return this.tab + code; - } - if (this.front || (o.level >= LEVEL_ACCESS)) { - return "(" + code + ")"; - } else { - return code; - } - }; - - Code.prototype.paramNames = function() { - var names, param, _i, _len, _ref2; - names = []; - _ref2 = this.params; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - param = _ref2[_i]; - names.push.apply(names, param.names()); - } - return names; - }; - - Code.prototype.traverseChildren = function(crossScope, func) { - if (crossScope) { - return Code.__super__.traverseChildren.call(this, crossScope, func); - } - }; - - return Code; - - })(Base); - - exports.Param = Param = (function(_super) { - - __extends(Param, _super); - - Param.name = 'Param'; - - function Param(name, value, splat) { - var _ref2; - this.name = name; - this.value = value; - this.splat = splat; - if (_ref2 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { - throw SyntaxError("parameter name \"" + name + "\" is not allowed"); - } - } - - Param.prototype.children = ['name', 'value']; - - Param.prototype.compile = function(o) { - return this.name.compile(o, LEVEL_LIST); - }; - - Param.prototype.asReference = function(o) { - var node; - if (this.reference) { - return this.reference; - } - node = this.name; - if (node["this"]) { - node = node.properties[0].name; - if (node.value.reserved) { - node = new Literal(o.scope.freeVariable(node.value)); - } - } else if (node.isComplex()) { - node = new Literal(o.scope.freeVariable('arg')); - } - node = new Value(node); - if (this.splat) { - node = new Splat(node); - } - return this.reference = node; - }; - - Param.prototype.isComplex = function() { - return this.name.isComplex(); - }; - - Param.prototype.names = function(name) { - var atParam, names, obj, _i, _len, _ref2; - if (name == null) { - name = this.name; - } - atParam = function(obj) { - var value; - value = obj.properties[0].name.value; - if (value.reserved) { - return []; - } else { - return [value]; - } - }; - if (name instanceof Literal) { - return [name.value]; - } - if (name instanceof Value) { - return atParam(name); - } - names = []; - _ref2 = name.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (obj instanceof Assign) { - names.push(obj.variable.base.value); - } else if (obj.isArray() || obj.isObject()) { - names.push.apply(names, this.names(obj.base)); - } else if (obj["this"]) { - names.push.apply(names, atParam(obj)); - } else { - names.push(obj.base.value); - } - } - return names; - }; - - return Param; - - })(Base); - - exports.Splat = Splat = (function(_super) { - - __extends(Splat, _super); - - Splat.name = 'Splat'; - - Splat.prototype.children = ['name']; - - Splat.prototype.isAssignable = YES; - - function Splat(name) { - this.name = name.compile ? name : new Literal(name); - } - - Splat.prototype.assigns = function(name) { - return this.name.assigns(name); - }; - - Splat.prototype.compile = function(o) { - if (this.index != null) { - return this.compileParam(o); - } else { - return this.name.compile(o); - } - }; - - Splat.prototype.unwrap = function() { - return this.name; - }; - - Splat.compileSplattedArray = function(o, list, apply) { - var args, base, code, i, index, node, _i, _len; - index = -1; - while ((node = list[++index]) && !(node instanceof Splat)) { - continue; - } - if (index >= list.length) { - return ''; - } - if (list.length === 1) { - code = list[0].compile(o, LEVEL_LIST); - if (apply) { - return code; - } - return "" + (utility('slice')) + ".call(" + code + ")"; - } - args = list.slice(index); - for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { - node = args[i]; - code = node.compile(o, LEVEL_LIST); - args[i] = node instanceof Splat ? "" + (utility('slice')) + ".call(" + code + ")" : "[" + code + "]"; - } - if (index === 0) { - return args[0] + (".concat(" + (args.slice(1).join(', ')) + ")"); - } - base = (function() { - var _j, _len1, _ref2, _results; - _ref2 = list.slice(0, index); - _results = []; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - node = _ref2[_j]; - _results.push(node.compile(o, LEVEL_LIST)); - } - return _results; - })(); - return "[" + (base.join(', ')) + "].concat(" + (args.join(', ')) + ")"; - }; - - return Splat; - - })(Base); - - exports.While = While = (function(_super) { - - __extends(While, _super); - - While.name = 'While'; - - function While(condition, options) { - this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition; - this.guard = options != null ? options.guard : void 0; - } - - While.prototype.children = ['condition', 'guard', 'body']; - - While.prototype.isStatement = YES; - - While.prototype.makeReturn = function(res) { - if (res) { - return While.__super__.makeReturn.apply(this, arguments); - } else { - this.returns = !this.jumps({ - loop: true - }); - return this; - } - }; - - While.prototype.addBody = function(body) { - this.body = body; - return this; - }; - - While.prototype.jumps = function() { - var expressions, node, _i, _len; - expressions = this.body.expressions; - if (!expressions.length) { - return false; - } - for (_i = 0, _len = expressions.length; _i < _len; _i++) { - node = expressions[_i]; - if (node.jumps({ - loop: true - })) { - return node; - } - } - return false; - }; - - While.prototype.compileNode = function(o) { - var body, code, rvar, set; - o.indent += TAB; - set = ''; - body = this.body; - if (body.isEmpty()) { - body = ''; - } else { - if (this.returns) { - body.makeReturn(rvar = o.scope.freeVariable('results')); - set = "" + this.tab + rvar + " = [];\n"; - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - body = "\n" + (body.compile(o, LEVEL_TOP)) + "\n" + this.tab; - } - code = set + this.tab + ("while (" + (this.condition.compile(o, LEVEL_PAREN)) + ") {" + body + "}"); - if (this.returns) { - code += "\n" + this.tab + "return " + rvar + ";"; - } - return code; - }; - - return While; - - })(Base); - - exports.Op = Op = (function(_super) { - var CONVERSIONS, INVERSIONS; - - __extends(Op, _super); - - Op.name = 'Op'; - - function Op(op, first, second, flip) { - if (op === 'in') { - return new In(first, second); - } - if (op === 'do') { - return this.generateDo(first); - } - if (op === 'new') { - if (first instanceof Call && !first["do"] && !first.isNew) { - return first.newInstance(); - } - if (first instanceof Code && first.bound || first["do"]) { - first = new Parens(first); - } - } - this.operator = CONVERSIONS[op] || op; - this.first = first; - this.second = second; - this.flip = !!flip; - return this; - } - - CONVERSIONS = { - '==': '===', - '!=': '!==', - 'of': 'in' - }; - - INVERSIONS = { - '!==': '===', - '===': '!==' - }; - - Op.prototype.children = ['first', 'second']; - - Op.prototype.isSimpleNumber = NO; - - Op.prototype.isUnary = function() { - return !this.second; - }; - - Op.prototype.isComplex = function() { - var _ref2; - return !(this.isUnary() && ((_ref2 = this.operator) === '+' || _ref2 === '-')) || this.first.isComplex(); - }; - - Op.prototype.isChainable = function() { - var _ref2; - return (_ref2 = this.operator) === '<' || _ref2 === '>' || _ref2 === '>=' || _ref2 === '<=' || _ref2 === '===' || _ref2 === '!=='; - }; - - Op.prototype.invert = function() { - var allInvertable, curr, fst, op, _ref2; - if (this.isChainable() && this.first.isChainable()) { - allInvertable = true; - curr = this; - while (curr && curr.operator) { - allInvertable && (allInvertable = curr.operator in INVERSIONS); - curr = curr.first; - } - if (!allInvertable) { - return new Parens(this).invert(); - } - curr = this; - while (curr && curr.operator) { - curr.invert = !curr.invert; - curr.operator = INVERSIONS[curr.operator]; - curr = curr.first; - } - return this; - } else if (op = INVERSIONS[this.operator]) { - this.operator = op; - if (this.first.unwrap() instanceof Op) { - this.first.invert(); - } - return this; - } else if (this.second) { - return new Parens(this).invert(); - } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref2 = fst.operator) === '!' || _ref2 === 'in' || _ref2 === 'instanceof')) { - return fst; - } else { - return new Op('!', this); - } - }; - - Op.prototype.unfoldSoak = function(o) { - var _ref2; - return ((_ref2 = this.operator) === '++' || _ref2 === '--' || _ref2 === 'delete') && unfoldSoak(o, this, 'first'); - }; - - Op.prototype.generateDo = function(exp) { - var call, func, param, passedParams, ref, _i, _len, _ref2; - passedParams = []; - func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp; - _ref2 = func.params || []; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - param = _ref2[_i]; - if (param.value) { - passedParams.push(param.value); - delete param.value; - } else { - passedParams.push(param); - } - } - call = new Call(exp, passedParams); - call["do"] = true; - return call; - }; - - Op.prototype.compileNode = function(o) { - var code, isChain, _ref2, _ref3; - isChain = this.isChainable() && this.first.isChainable(); - if (!isChain) { - this.first.front = this.front; - } - if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) { - throw SyntaxError('delete operand may not be argument or var'); - } - if (((_ref2 = this.operator) === '--' || _ref2 === '++') && (_ref3 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref3) >= 0)) { - throw SyntaxError('prefix increment/decrement may not have eval or arguments operand'); - } - if (this.isUnary()) { - return this.compileUnary(o); - } - if (isChain) { - return this.compileChain(o); - } - if (this.operator === '?') { - return this.compileExistence(o); - } - code = this.first.compile(o, LEVEL_OP) + ' ' + this.operator + ' ' + this.second.compile(o, LEVEL_OP); - if (o.level <= LEVEL_OP) { - return code; - } else { - return "(" + code + ")"; - } - }; - - Op.prototype.compileChain = function(o) { - var code, fst, shared, _ref2; - _ref2 = this.first.second.cache(o), this.first.second = _ref2[0], shared = _ref2[1]; - fst = this.first.compile(o, LEVEL_OP); - code = "" + fst + " " + (this.invert ? '&&' : '||') + " " + (shared.compile(o)) + " " + this.operator + " " + (this.second.compile(o, LEVEL_OP)); - return "(" + code + ")"; - }; - - Op.prototype.compileExistence = function(o) { - var fst, ref; - if (this.first.isComplex() && o.level > LEVEL_TOP) { - ref = new Literal(o.scope.freeVariable('ref')); - fst = new Parens(new Assign(ref, this.first)); - } else { - fst = this.first; - ref = fst; - } - return new If(new Existence(fst), ref, { - type: 'if' - }).addElse(this.second).compile(o); - }; - - Op.prototype.compileUnary = function(o) { - var op, parts, plusMinus; - if (o.level >= LEVEL_ACCESS) { - return (new Parens(this)).compile(o); - } - parts = [op = this.operator]; - plusMinus = op === '+' || op === '-'; - if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) { - parts.push(' '); - } - if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) { - this.first = new Parens(this.first); - } - parts.push(this.first.compile(o, LEVEL_OP)); - if (this.flip) { - parts.reverse(); - } - return parts.join(''); - }; - - Op.prototype.toString = function(idt) { - return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator); - }; - - return Op; - - })(Base); - - exports.In = In = (function(_super) { - - __extends(In, _super); - - In.name = 'In'; - - function In(object, array) { - this.object = object; - this.array = array; - } - - In.prototype.children = ['object', 'array']; - - In.prototype.invert = NEGATE; - - In.prototype.compileNode = function(o) { - var hasSplat, obj, _i, _len, _ref2; - if (this.array instanceof Value && this.array.isArray()) { - _ref2 = this.array.base.objects; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - obj = _ref2[_i]; - if (!(obj instanceof Splat)) { - continue; - } - hasSplat = true; - break; - } - if (!hasSplat) { - return this.compileOrTest(o); - } - } - return this.compileLoopTest(o); - }; - - In.prototype.compileOrTest = function(o) { - var cmp, cnj, i, item, ref, sub, tests, _ref2, _ref3; - if (this.array.base.objects.length === 0) { - return "" + (!!this.negated); - } - _ref2 = this.object.cache(o, LEVEL_OP), sub = _ref2[0], ref = _ref2[1]; - _ref3 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref3[0], cnj = _ref3[1]; - tests = (function() { - var _i, _len, _ref4, _results; - _ref4 = this.array.base.objects; - _results = []; - for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) { - item = _ref4[i]; - _results.push((i ? ref : sub) + cmp + item.compile(o, LEVEL_ACCESS)); - } - return _results; - }).call(this); - tests = tests.join(cnj); - if (o.level < LEVEL_OP) { - return tests; - } else { - return "(" + tests + ")"; - } - }; - - In.prototype.compileLoopTest = function(o) { - var code, ref, sub, _ref2; - _ref2 = this.object.cache(o, LEVEL_LIST), sub = _ref2[0], ref = _ref2[1]; - code = utility('indexOf') + (".call(" + (this.array.compile(o, LEVEL_LIST)) + ", " + ref + ") ") + (this.negated ? '< 0' : '>= 0'); - if (sub === ref) { - return code; - } - code = sub + ', ' + code; - if (o.level < LEVEL_LIST) { - return code; - } else { - return "(" + code + ")"; - } - }; - - In.prototype.toString = function(idt) { - return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : '')); - }; - - return In; - - })(Base); - - exports.Try = Try = (function(_super) { - - __extends(Try, _super); - - Try.name = 'Try'; - - function Try(attempt, error, recovery, ensure) { - this.attempt = attempt; - this.error = error; - this.recovery = recovery; - this.ensure = ensure; - } - - Try.prototype.children = ['attempt', 'recovery', 'ensure']; - - Try.prototype.isStatement = YES; - - Try.prototype.jumps = function(o) { - var _ref2; - return this.attempt.jumps(o) || ((_ref2 = this.recovery) != null ? _ref2.jumps(o) : void 0); - }; - - Try.prototype.makeReturn = function(res) { - if (this.attempt) { - this.attempt = this.attempt.makeReturn(res); - } - if (this.recovery) { - this.recovery = this.recovery.makeReturn(res); - } - return this; - }; - - Try.prototype.compileNode = function(o) { - var catchPart, ensurePart, errorPart, tryPart; - o.indent += TAB; - errorPart = this.error ? " (" + (this.error.compile(o)) + ") " : ' '; - tryPart = this.attempt.compile(o, LEVEL_TOP); - catchPart = (function() { - var _ref2; - if (this.recovery) { - if (_ref2 = this.error.value, __indexOf.call(STRICT_PROSCRIBED, _ref2) >= 0) { - throw SyntaxError("catch variable may not be \"" + this.error.value + "\""); - } - if (!o.scope.check(this.error.value)) { - o.scope.add(this.error.value, 'param'); - } - return " catch" + errorPart + "{\n" + (this.recovery.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}"; - } else if (!(this.ensure || this.recovery)) { - return ' catch (_error) {}'; - } - }).call(this); - ensurePart = this.ensure ? " finally {\n" + (this.ensure.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : ''; - return "" + this.tab + "try {\n" + tryPart + "\n" + this.tab + "}" + (catchPart || '') + ensurePart; - }; - - return Try; - - })(Base); - - exports.Throw = Throw = (function(_super) { - - __extends(Throw, _super); - - Throw.name = 'Throw'; - - function Throw(expression) { - this.expression = expression; - } - - Throw.prototype.children = ['expression']; - - Throw.prototype.isStatement = YES; - - Throw.prototype.jumps = NO; - - Throw.prototype.makeReturn = THIS; - - Throw.prototype.compileNode = function(o) { - return this.tab + ("throw " + (this.expression.compile(o)) + ";"); - }; - - return Throw; - - })(Base); - - exports.Existence = Existence = (function(_super) { - - __extends(Existence, _super); - - Existence.name = 'Existence'; - - function Existence(expression) { - this.expression = expression; - } - - Existence.prototype.children = ['expression']; - - Existence.prototype.invert = NEGATE; - - Existence.prototype.compileNode = function(o) { - var cmp, cnj, code, _ref2; - this.expression.front = this.front; - code = this.expression.compile(o, LEVEL_OP); - if (IDENTIFIER.test(code) && !o.scope.check(code)) { - _ref2 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref2[0], cnj = _ref2[1]; - code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null"; - } else { - code = "" + code + " " + (this.negated ? '==' : '!=') + " null"; - } - if (o.level <= LEVEL_COND) { - return code; - } else { - return "(" + code + ")"; - } - }; - - return Existence; - - })(Base); - - exports.Parens = Parens = (function(_super) { - - __extends(Parens, _super); - - Parens.name = 'Parens'; - - function Parens(body) { - this.body = body; - } - - Parens.prototype.children = ['body']; - - Parens.prototype.unwrap = function() { - return this.body; - }; - - Parens.prototype.isComplex = function() { - return this.body.isComplex(); - }; - - Parens.prototype.compileNode = function(o) { - var bare, code, expr; - expr = this.body.unwrap(); - if (expr instanceof Value && expr.isAtomic()) { - expr.front = this.front; - return expr.compile(o); - } - code = expr.compile(o, LEVEL_PAREN); - bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns)); - if (bare) { - return code; - } else { - return "(" + code + ")"; - } - }; - - return Parens; - - })(Base); - - exports.For = For = (function(_super) { - - __extends(For, _super); - - For.name = 'For'; - - function For(body, source) { - var _ref2; - this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index; - this.body = Block.wrap([body]); - this.own = !!source.own; - this.object = !!source.object; - if (this.object) { - _ref2 = [this.index, this.name], this.name = _ref2[0], this.index = _ref2[1]; - } - if (this.index instanceof Value) { - throw SyntaxError('index cannot be a pattern matching expression'); - } - this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length; - this.pattern = this.name instanceof Value; - if (this.range && this.index) { - throw SyntaxError('indexes do not apply to range loops'); - } - if (this.range && this.pattern) { - throw SyntaxError('cannot pattern match over range loops'); - } - this.returns = false; - } - - For.prototype.children = ['body', 'source', 'guard', 'step']; - - For.prototype.compileNode = function(o) { - var body, defPart, forPart, forVarPart, guardPart, idt1, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, stepPart, stepvar, svar, varPart, _ref2; - body = Block.wrap([this.body]); - lastJumps = (_ref2 = last(body.expressions)) != null ? _ref2.jumps() : void 0; - if (lastJumps && lastJumps instanceof Return) { - this.returns = false; - } - source = this.range ? this.source.base : this.source; - scope = o.scope; - name = this.name && this.name.compile(o, LEVEL_LIST); - index = this.index && this.index.compile(o, LEVEL_LIST); - if (name && !this.pattern) { - scope.find(name, { - immediate: true - }); - } - if (index) { - scope.find(index, { - immediate: true - }); - } - if (this.returns) { - rvar = scope.freeVariable('results'); - } - ivar = (this.object && index) || scope.freeVariable('i'); - kvar = (this.range && name) || index || ivar; - kvarAssign = kvar !== ivar ? "" + kvar + " = " : ""; - if (this.step && !this.range) { - stepvar = scope.freeVariable("step"); - } - if (this.pattern) { - name = ivar; - } - varPart = ''; - guardPart = ''; - defPart = ''; - idt1 = this.tab + TAB; - if (this.range) { - forPart = source.compile(merge(o, { - index: ivar, - name: name, - step: this.step - })); - } else { - svar = this.source.compile(o, LEVEL_LIST); - if ((name || this.own) && !IDENTIFIER.test(svar)) { - defPart = "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n"; - svar = ref; - } - if (name && !this.pattern) { - namePart = "" + name + " = " + svar + "[" + kvar + "]"; - } - if (!this.object) { - lvar = scope.freeVariable('len'); - forVarPart = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length"; - if (this.step) { - forVarPart += ", " + stepvar + " = " + (this.step.compile(o, LEVEL_OP)); - } - stepPart = "" + kvarAssign + (this.step ? "" + ivar + " += " + stepvar : (kvar !== ivar ? "++" + ivar : "" + ivar + "++")); - forPart = "" + forVarPart + "; " + ivar + " < " + lvar + "; " + stepPart; - } - } - if (this.returns) { - resultPart = "" + this.tab + rvar + " = [];\n"; - returnResult = "\n" + this.tab + "return " + rvar + ";"; - body.makeReturn(rvar); - } - if (this.guard) { - if (body.expressions.length > 1) { - body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue"))); - } else { - if (this.guard) { - body = Block.wrap([new If(this.guard, body)]); - } - } - } - if (this.pattern) { - body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]"))); - } - defPart += this.pluckDirectCall(o, body); - if (namePart) { - varPart = "\n" + idt1 + namePart + ";"; - } - if (this.object) { - forPart = "" + kvar + " in " + svar; - if (this.own) { - guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;"; - } - } - body = body.compile(merge(o, { - indent: idt1 - }), LEVEL_TOP); - if (body) { - body = '\n' + body + '\n'; - } - return "" + defPart + (resultPart || '') + this.tab + "for (" + forPart + ") {" + guardPart + varPart + body + this.tab + "}" + (returnResult || ''); - }; - - For.prototype.pluckDirectCall = function(o, body) { - var base, defs, expr, fn, idx, ref, val, _i, _len, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; - defs = ''; - _ref2 = body.expressions; - for (idx = _i = 0, _len = _ref2.length; _i < _len; idx = ++_i) { - expr = _ref2[idx]; - expr = expr.unwrapAll(); - if (!(expr instanceof Call)) { - continue; - } - val = expr.variable.unwrapAll(); - if (!((val instanceof Code) || (val instanceof Value && ((_ref3 = val.base) != null ? _ref3.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref4 = (_ref5 = val.properties[0].name) != null ? _ref5.value : void 0) === 'call' || _ref4 === 'apply')))) { - continue; - } - fn = ((_ref6 = val.base) != null ? _ref6.unwrapAll() : void 0) || val; - ref = new Literal(o.scope.freeVariable('fn')); - base = new Value(ref); - if (val.base) { - _ref7 = [base, val], val.base = _ref7[0], base = _ref7[1]; - } - body.expressions[idx] = new Call(base, expr.args); - defs += this.tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n'; - } - return defs; - }; - - return For; - - })(While); - - exports.Switch = Switch = (function(_super) { - - __extends(Switch, _super); - - Switch.name = 'Switch'; - - function Switch(subject, cases, otherwise) { - this.subject = subject; - this.cases = cases; - this.otherwise = otherwise; - } - - Switch.prototype.children = ['subject', 'cases', 'otherwise']; - - Switch.prototype.isStatement = YES; - - Switch.prototype.jumps = function(o) { - var block, conds, _i, _len, _ref2, _ref3, _ref4; - if (o == null) { - o = { - block: true - }; - } - _ref2 = this.cases; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - _ref3 = _ref2[_i], conds = _ref3[0], block = _ref3[1]; - if (block.jumps(o)) { - return block; - } - } - return (_ref4 = this.otherwise) != null ? _ref4.jumps(o) : void 0; - }; - - Switch.prototype.makeReturn = function(res) { - var pair, _i, _len, _ref2, _ref3; - _ref2 = this.cases; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - pair = _ref2[_i]; - pair[1].makeReturn(res); - } - if (res) { - this.otherwise || (this.otherwise = new Block([new Literal('void 0')])); - } - if ((_ref3 = this.otherwise) != null) { - _ref3.makeReturn(res); - } - return this; - }; - - Switch.prototype.compileNode = function(o) { - var block, body, code, cond, conditions, expr, i, idt1, idt2, _i, _j, _len, _len1, _ref2, _ref3, _ref4, _ref5; - idt1 = o.indent + TAB; - idt2 = o.indent = idt1 + TAB; - code = this.tab + ("switch (" + (((_ref2 = this.subject) != null ? _ref2.compile(o, LEVEL_PAREN) : void 0) || false) + ") {\n"); - _ref3 = this.cases; - for (i = _i = 0, _len = _ref3.length; _i < _len; i = ++_i) { - _ref4 = _ref3[i], conditions = _ref4[0], block = _ref4[1]; - _ref5 = flatten([conditions]); - for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) { - cond = _ref5[_j]; - if (!this.subject) { - cond = cond.invert(); - } - code += idt1 + ("case " + (cond.compile(o, LEVEL_PAREN)) + ":\n"); - } - if (body = block.compile(o, LEVEL_TOP)) { - code += body + '\n'; - } - if (i === this.cases.length - 1 && !this.otherwise) { - break; - } - expr = this.lastNonComment(block.expressions); - if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) { - continue; - } - code += idt2 + 'break;\n'; - } - if (this.otherwise && this.otherwise.expressions.length) { - code += idt1 + ("default:\n" + (this.otherwise.compile(o, LEVEL_TOP)) + "\n"); - } - return code + this.tab + '}'; - }; - - return Switch; - - })(Base); - - exports.If = If = (function(_super) { - - __extends(If, _super); - - If.name = 'If'; - - function If(condition, body, options) { - this.body = body; - if (options == null) { - options = {}; - } - this.condition = options.type === 'unless' ? condition.invert() : condition; - this.elseBody = null; - this.isChain = false; - this.soak = options.soak; - } - - If.prototype.children = ['condition', 'body', 'elseBody']; - - If.prototype.bodyNode = function() { - var _ref2; - return (_ref2 = this.body) != null ? _ref2.unwrap() : void 0; - }; - - If.prototype.elseBodyNode = function() { - var _ref2; - return (_ref2 = this.elseBody) != null ? _ref2.unwrap() : void 0; - }; - - If.prototype.addElse = function(elseBody) { - if (this.isChain) { - this.elseBodyNode().addElse(elseBody); - } else { - this.isChain = elseBody instanceof If; - this.elseBody = this.ensureBlock(elseBody); - } - return this; - }; - - If.prototype.isStatement = function(o) { - var _ref2; - return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref2 = this.elseBodyNode()) != null ? _ref2.isStatement(o) : void 0); - }; - - If.prototype.jumps = function(o) { - var _ref2; - return this.body.jumps(o) || ((_ref2 = this.elseBody) != null ? _ref2.jumps(o) : void 0); - }; - - If.prototype.compileNode = function(o) { - if (this.isStatement(o)) { - return this.compileStatement(o); - } else { - return this.compileExpression(o); - } - }; - - If.prototype.makeReturn = function(res) { - if (res) { - this.elseBody || (this.elseBody = new Block([new Literal('void 0')])); - } - this.body && (this.body = new Block([this.body.makeReturn(res)])); - this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)])); - return this; - }; - - If.prototype.ensureBlock = function(node) { - if (node instanceof Block) { - return node; - } else { - return new Block([node]); - } - }; - - If.prototype.compileStatement = function(o) { - var body, child, cond, exeq, ifPart; - child = del(o, 'chainChild'); - exeq = del(o, 'isExistentialEquals'); - if (exeq) { - return new If(this.condition.invert(), this.elseBodyNode(), { - type: 'if' - }).compile(o); - } - cond = this.condition.compile(o, LEVEL_PAREN); - o.indent += TAB; - body = this.ensureBlock(this.body); - ifPart = "if (" + cond + ") {\n" + (body.compile(o)) + "\n" + this.tab + "}"; - if (!child) { - ifPart = this.tab + ifPart; - } - if (!this.elseBody) { - return ifPart; - } - return ifPart + ' else ' + (this.isChain ? (o.indent = this.tab, o.chainChild = true, this.elseBody.unwrap().compile(o, LEVEL_TOP)) : "{\n" + (this.elseBody.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}"); - }; - - If.prototype.compileExpression = function(o) { - var alt, body, code, cond; - cond = this.condition.compile(o, LEVEL_COND); - body = this.bodyNode().compile(o, LEVEL_LIST); - alt = this.elseBodyNode() ? this.elseBodyNode().compile(o, LEVEL_LIST) : 'void 0'; - code = "" + cond + " ? " + body + " : " + alt; - if (o.level >= LEVEL_COND) { - return "(" + code + ")"; - } else { - return code; - } - }; - - If.prototype.unfoldSoak = function() { - return this.soak && this; - }; - - return If; - - })(Base); - - Closure = { - wrap: function(expressions, statement, noReturn) { - var args, call, func, mentionsArgs, meth; - if (expressions.jumps()) { - return expressions; - } - func = new Code([], Block.wrap([expressions])); - args = []; - if ((mentionsArgs = expressions.contains(this.literalArgs)) || expressions.contains(this.literalThis)) { - meth = new Literal(mentionsArgs ? 'apply' : 'call'); - args = [new Literal('this')]; - if (mentionsArgs) { - args.push(new Literal('arguments')); - } - func = new Value(func, [new Access(meth)]); - } - func.noReturn = noReturn; - call = new Call(func, args); - if (statement) { - return Block.wrap([call]); - } else { - return call; - } - }, - literalArgs: function(node) { - return node instanceof Literal && node.value === 'arguments' && !node.asKey; - }, - literalThis: function(node) { - return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound); - } - }; - - unfoldSoak = function(o, parent, name) { - var ifn; - if (!(ifn = parent[name].unfoldSoak(o))) { - return; - } - parent[name] = ifn.body; - ifn.body = new Value(parent); - return ifn; - }; - - UTILITIES = { - "extends": function() { - return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; }"; - }, - bind: function() { - return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }'; - }, - indexOf: function() { - return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"; - }, - hasProp: function() { - return '{}.hasOwnProperty'; - }, - slice: function() { - return '[].slice'; - } - }; - - LEVEL_TOP = 1; - - LEVEL_PAREN = 2; - - LEVEL_LIST = 3; - - LEVEL_COND = 4; - - LEVEL_OP = 5; - - LEVEL_ACCESS = 6; - - TAB = ' '; - - IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; - - IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$"); - - SIMPLENUM = /^[+-]?\d+$/; - - METHOD_DEF = RegExp("^(?:(" + IDENTIFIER_STR + ")\\.prototype(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|(" + IDENTIFIER_STR + ")$"); - - IS_STRING = /^['"]/; - - utility = function(name) { - var ref; - ref = "__" + name; - Scope.root.assign(ref, UTILITIES[name]()); - return ref; - }; - - multident = function(code, tab) { - code = code.replace(/\n/g, '$&' + tab); - return code.replace(/\s+$/, ''); - }; - -}).call(this); -}, "coffee-script/optparse": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments; - - exports.OptionParser = OptionParser = (function() { - - OptionParser.name = 'OptionParser'; - - function OptionParser(rules, banner) { - this.banner = banner; - this.rules = buildRules(rules); - } - - OptionParser.prototype.parse = function(args) { - var arg, i, isOption, matchedRule, options, originalArgs, pos, rule, seenNonOptionArg, skippingArgument, value, _i, _j, _len, _len1, _ref; - options = { - "arguments": [] - }; - skippingArgument = false; - originalArgs = args; - args = normalizeArguments(args); - for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) { - arg = args[i]; - if (skippingArgument) { - skippingArgument = false; - continue; - } - if (arg === '--') { - pos = originalArgs.indexOf('--'); - options["arguments"] = options["arguments"].concat(originalArgs.slice(pos + 1)); - break; - } - isOption = !!(arg.match(LONG_FLAG) || arg.match(SHORT_FLAG)); - seenNonOptionArg = options["arguments"].length > 0; - if (!seenNonOptionArg) { - matchedRule = false; - _ref = this.rules; - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - rule = _ref[_j]; - if (rule.shortFlag === arg || rule.longFlag === arg) { - value = true; - if (rule.hasArgument) { - skippingArgument = true; - value = args[i + 1]; - } - options[rule.name] = rule.isList ? (options[rule.name] || []).concat(value) : value; - matchedRule = true; - break; - } - } - if (isOption && !matchedRule) { - throw new Error("unrecognized option: " + arg); - } - } - if (seenNonOptionArg || !isOption) { - options["arguments"].push(arg); - } - } - return options; - }; - - OptionParser.prototype.help = function() { - var letPart, lines, rule, spaces, _i, _len, _ref; - lines = []; - if (this.banner) { - lines.unshift("" + this.banner + "\n"); - } - _ref = this.rules; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - rule = _ref[_i]; - spaces = 15 - rule.longFlag.length; - spaces = spaces > 0 ? Array(spaces + 1).join(' ') : ''; - letPart = rule.shortFlag ? rule.shortFlag + ', ' : ' '; - lines.push(' ' + letPart + rule.longFlag + spaces + rule.description); - } - return "\n" + (lines.join('\n')) + "\n"; - }; - - return OptionParser; - - })(); - - LONG_FLAG = /^(--\w[\w\-]*)/; - - SHORT_FLAG = /^(-\w)$/; - - MULTI_FLAG = /^-(\w{2,})/; - - OPTIONAL = /\[(\w+(\*?))\]/; - - buildRules = function(rules) { - var tuple, _i, _len, _results; - _results = []; - for (_i = 0, _len = rules.length; _i < _len; _i++) { - tuple = rules[_i]; - if (tuple.length < 3) { - tuple.unshift(null); - } - _results.push(buildRule.apply(null, tuple)); - } - return _results; - }; - - buildRule = function(shortFlag, longFlag, description, options) { - var match; - if (options == null) { - options = {}; - } - match = longFlag.match(OPTIONAL); - longFlag = longFlag.match(LONG_FLAG)[1]; - return { - name: longFlag.substr(2), - shortFlag: shortFlag, - longFlag: longFlag, - description: description, - hasArgument: !!(match && match[1]), - isList: !!(match && match[2]) - }; - }; - - normalizeArguments = function(args) { - var arg, l, match, result, _i, _j, _len, _len1, _ref; - args = args.slice(0); - result = []; - for (_i = 0, _len = args.length; _i < _len; _i++) { - arg = args[_i]; - if (match = arg.match(MULTI_FLAG)) { - _ref = match[1].split(''); - for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { - l = _ref[_j]; - result.push('-' + l); - } - } else { - result.push(arg); - } - } - return result; - }; - -}).call(this); -}, "coffee-script/parser": function(exports, require, module) {/* Jison generated parser */ -var parser = (function(){ -undefined -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"BOOL":36,"Assignable":37,"=":38,"AssignObj":39,"ObjAssignable":40,":":41,"ThisProperty":42,"RETURN":43,"HERECOMMENT":44,"PARAM_START":45,"ParamList":46,"PARAM_END":47,"FuncGlyph":48,"->":49,"=>":50,"OptComma":51,",":52,"Param":53,"ParamVar":54,"...":55,"Array":56,"Object":57,"Splat":58,"SimpleAssignable":59,"Accessor":60,"Parenthetical":61,"Range":62,"This":63,".":64,"?.":65,"::":66,"Index":67,"INDEX_START":68,"IndexValue":69,"INDEX_END":70,"INDEX_SOAK":71,"Slice":72,"{":73,"AssignList":74,"}":75,"CLASS":76,"EXTENDS":77,"OptFuncExist":78,"Arguments":79,"SUPER":80,"FUNC_EXIST":81,"CALL_START":82,"CALL_END":83,"ArgList":84,"THIS":85,"@":86,"[":87,"]":88,"RangeDots":89,"..":90,"Arg":91,"SimpleArgs":92,"TRY":93,"Catch":94,"FINALLY":95,"CATCH":96,"THROW":97,"(":98,")":99,"WhileSource":100,"WHILE":101,"WHEN":102,"UNTIL":103,"Loop":104,"LOOP":105,"ForBody":106,"FOR":107,"ForStart":108,"ForSource":109,"ForVariables":110,"OWN":111,"ForValue":112,"FORIN":113,"FOROF":114,"BY":115,"SWITCH":116,"Whens":117,"ELSE":118,"When":119,"LEADING_WHEN":120,"IfBlock":121,"IF":122,"POST_IF":123,"UNARY":124,"-":125,"+":126,"--":127,"++":128,"?":129,"MATH":130,"SHIFT":131,"COMPARE":132,"LOGIC":133,"RELATION":134,"COMPOUND_ASSIGN":135,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"BOOL",38:"=",41:":",43:"RETURN",44:"HERECOMMENT",45:"PARAM_START",47:"PARAM_END",49:"->",50:"=>",52:",",55:"...",64:".",65:"?.",66:"::",68:"INDEX_START",70:"INDEX_END",71:"INDEX_SOAK",73:"{",75:"}",76:"CLASS",77:"EXTENDS",80:"SUPER",81:"FUNC_EXIST",82:"CALL_START",83:"CALL_END",85:"THIS",86:"@",87:"[",88:"]",90:"..",93:"TRY",95:"FINALLY",96:"CATCH",97:"THROW",98:"(",99:")",101:"WHILE",102:"WHEN",103:"UNTIL",105:"LOOP",107:"FOR",111:"OWN",113:"FORIN",114:"FOROF",115:"BY",116:"SWITCH",118:"ELSE",120:"LEADING_WHEN",122:"IF",123:"POST_IF",124:"UNARY",125:"-",126:"+",127:"--",128:"++",129:"?",130:"MATH",131:"SHIFT",132:"COMPARE",133:"LOGIC",134:"RELATION",135:"COMPOUND_ASSIGN"}, -productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[39,1],[39,3],[39,5],[39,1],[40,1],[40,1],[40,1],[10,2],[10,1],[11,1],[15,5],[15,2],[48,1],[48,1],[51,0],[51,1],[46,0],[46,1],[46,3],[53,1],[53,2],[53,3],[54,1],[54,1],[54,1],[54,1],[58,2],[59,1],[59,2],[59,2],[59,1],[37,1],[37,1],[37,1],[13,1],[13,1],[13,1],[13,1],[13,1],[60,2],[60,2],[60,2],[60,1],[60,1],[67,3],[67,2],[69,1],[69,1],[57,4],[74,0],[74,1],[74,3],[74,4],[74,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[78,0],[78,1],[79,2],[79,4],[63,1],[63,1],[42,2],[56,2],[56,4],[89,1],[89,1],[62,5],[72,3],[72,2],[72,2],[72,1],[84,1],[84,3],[84,4],[84,4],[84,6],[91,1],[91,1],[92,1],[92,3],[19,2],[19,3],[19,4],[19,5],[94,3],[24,2],[61,3],[61,5],[100,2],[100,4],[100,2],[100,4],[20,2],[20,2],[20,2],[20,1],[104,2],[104,2],[21,2],[21,2],[21,2],[106,2],[106,2],[108,2],[108,3],[112,1],[112,1],[112,1],[110,1],[110,3],[109,2],[109,2],[109,4],[109,4],[109,4],[109,6],[109,6],[22,5],[22,7],[22,4],[22,6],[117,1],[117,2],[119,3],[119,4],[121,3],[121,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,3]], -performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - -var $0 = $$.length - 1; -switch (yystate) { -case 1:return this.$ = new yy.Block; -break; -case 2:return this.$ = $$[$0]; -break; -case 3:return this.$ = $$[$0-1]; -break; -case 4:this.$ = yy.Block.wrap([$$[$0]]); -break; -case 5:this.$ = $$[$0-2].push($$[$0]); -break; -case 6:this.$ = $$[$0-1]; -break; -case 7:this.$ = $$[$0]; -break; -case 8:this.$ = $$[$0]; -break; -case 9:this.$ = $$[$0]; -break; -case 10:this.$ = $$[$0]; -break; -case 11:this.$ = new yy.Literal($$[$0]); -break; -case 12:this.$ = $$[$0]; -break; -case 13:this.$ = $$[$0]; -break; -case 14:this.$ = $$[$0]; -break; -case 15:this.$ = $$[$0]; -break; -case 16:this.$ = $$[$0]; -break; -case 17:this.$ = $$[$0]; -break; -case 18:this.$ = $$[$0]; -break; -case 19:this.$ = $$[$0]; -break; -case 20:this.$ = $$[$0]; -break; -case 21:this.$ = $$[$0]; -break; -case 22:this.$ = $$[$0]; -break; -case 23:this.$ = $$[$0]; -break; -case 24:this.$ = new yy.Block; -break; -case 25:this.$ = $$[$0-1]; -break; -case 26:this.$ = new yy.Literal($$[$0]); -break; -case 27:this.$ = new yy.Literal($$[$0]); -break; -case 28:this.$ = new yy.Literal($$[$0]); -break; -case 29:this.$ = $$[$0]; -break; -case 30:this.$ = new yy.Literal($$[$0]); -break; -case 31:this.$ = new yy.Literal($$[$0]); -break; -case 32:this.$ = new yy.Literal($$[$0]); -break; -case 33:this.$ = (function () { - var val; - val = new yy.Literal($$[$0]); - if ($$[$0] === 'undefined') val.isUndefined = true; - return val; - }()); -break; -case 34:this.$ = new yy.Assign($$[$0-2], $$[$0]); -break; -case 35:this.$ = new yy.Assign($$[$0-3], $$[$0]); -break; -case 36:this.$ = new yy.Assign($$[$0-4], $$[$0-1]); -break; -case 37:this.$ = new yy.Value($$[$0]); -break; -case 38:this.$ = new yy.Assign(new yy.Value($$[$0-2]), $$[$0], 'object'); -break; -case 39:this.$ = new yy.Assign(new yy.Value($$[$0-4]), $$[$0-1], 'object'); -break; -case 40:this.$ = $$[$0]; -break; -case 41:this.$ = $$[$0]; -break; -case 42:this.$ = $$[$0]; -break; -case 43:this.$ = $$[$0]; -break; -case 44:this.$ = new yy.Return($$[$0]); -break; -case 45:this.$ = new yy.Return; -break; -case 46:this.$ = new yy.Comment($$[$0]); -break; -case 47:this.$ = new yy.Code($$[$0-3], $$[$0], $$[$0-1]); -break; -case 48:this.$ = new yy.Code([], $$[$0], $$[$0-1]); -break; -case 49:this.$ = 'func'; -break; -case 50:this.$ = 'boundfunc'; -break; -case 51:this.$ = $$[$0]; -break; -case 52:this.$ = $$[$0]; -break; -case 53:this.$ = []; -break; -case 54:this.$ = [$$[$0]]; -break; -case 55:this.$ = $$[$0-2].concat($$[$0]); -break; -case 56:this.$ = new yy.Param($$[$0]); -break; -case 57:this.$ = new yy.Param($$[$0-1], null, true); -break; -case 58:this.$ = new yy.Param($$[$0-2], $$[$0]); -break; -case 59:this.$ = $$[$0]; -break; -case 60:this.$ = $$[$0]; -break; -case 61:this.$ = $$[$0]; -break; -case 62:this.$ = $$[$0]; -break; -case 63:this.$ = new yy.Splat($$[$0-1]); -break; -case 64:this.$ = new yy.Value($$[$0]); -break; -case 65:this.$ = $$[$0-1].add($$[$0]); -break; -case 66:this.$ = new yy.Value($$[$0-1], [].concat($$[$0])); -break; -case 67:this.$ = $$[$0]; -break; -case 68:this.$ = $$[$0]; -break; -case 69:this.$ = new yy.Value($$[$0]); -break; -case 70:this.$ = new yy.Value($$[$0]); -break; -case 71:this.$ = $$[$0]; -break; -case 72:this.$ = new yy.Value($$[$0]); -break; -case 73:this.$ = new yy.Value($$[$0]); -break; -case 74:this.$ = new yy.Value($$[$0]); -break; -case 75:this.$ = $$[$0]; -break; -case 76:this.$ = new yy.Access($$[$0]); -break; -case 77:this.$ = new yy.Access($$[$0], 'soak'); -break; -case 78:this.$ = [new yy.Access(new yy.Literal('prototype')), new yy.Access($$[$0])]; -break; -case 79:this.$ = new yy.Access(new yy.Literal('prototype')); -break; -case 80:this.$ = $$[$0]; -break; -case 81:this.$ = $$[$0-1]; -break; -case 82:this.$ = yy.extend($$[$0], { - soak: true - }); -break; -case 83:this.$ = new yy.Index($$[$0]); -break; -case 84:this.$ = new yy.Slice($$[$0]); -break; -case 85:this.$ = new yy.Obj($$[$0-2], $$[$0-3].generated); -break; -case 86:this.$ = []; -break; -case 87:this.$ = [$$[$0]]; -break; -case 88:this.$ = $$[$0-2].concat($$[$0]); -break; -case 89:this.$ = $$[$0-3].concat($$[$0]); -break; -case 90:this.$ = $$[$0-5].concat($$[$0-2]); -break; -case 91:this.$ = new yy.Class; -break; -case 92:this.$ = new yy.Class(null, null, $$[$0]); -break; -case 93:this.$ = new yy.Class(null, $$[$0]); -break; -case 94:this.$ = new yy.Class(null, $$[$0-1], $$[$0]); -break; -case 95:this.$ = new yy.Class($$[$0]); -break; -case 96:this.$ = new yy.Class($$[$0-1], null, $$[$0]); -break; -case 97:this.$ = new yy.Class($$[$0-2], $$[$0]); -break; -case 98:this.$ = new yy.Class($$[$0-3], $$[$0-1], $$[$0]); -break; -case 99:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]); -break; -case 100:this.$ = new yy.Call($$[$0-2], $$[$0], $$[$0-1]); -break; -case 101:this.$ = new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]); -break; -case 102:this.$ = new yy.Call('super', $$[$0]); -break; -case 103:this.$ = false; -break; -case 104:this.$ = true; -break; -case 105:this.$ = []; -break; -case 106:this.$ = $$[$0-2]; -break; -case 107:this.$ = new yy.Value(new yy.Literal('this')); -break; -case 108:this.$ = new yy.Value(new yy.Literal('this')); -break; -case 109:this.$ = new yy.Value(new yy.Literal('this'), [new yy.Access($$[$0])], 'this'); -break; -case 110:this.$ = new yy.Arr([]); -break; -case 111:this.$ = new yy.Arr($$[$0-2]); -break; -case 112:this.$ = 'inclusive'; -break; -case 113:this.$ = 'exclusive'; -break; -case 114:this.$ = new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]); -break; -case 115:this.$ = new yy.Range($$[$0-2], $$[$0], $$[$0-1]); -break; -case 116:this.$ = new yy.Range($$[$0-1], null, $$[$0]); -break; -case 117:this.$ = new yy.Range(null, $$[$0], $$[$0-1]); -break; -case 118:this.$ = new yy.Range(null, null, $$[$0]); -break; -case 119:this.$ = [$$[$0]]; -break; -case 120:this.$ = $$[$0-2].concat($$[$0]); -break; -case 121:this.$ = $$[$0-3].concat($$[$0]); -break; -case 122:this.$ = $$[$0-2]; -break; -case 123:this.$ = $$[$0-5].concat($$[$0-2]); -break; -case 124:this.$ = $$[$0]; -break; -case 125:this.$ = $$[$0]; -break; -case 126:this.$ = $$[$0]; -break; -case 127:this.$ = [].concat($$[$0-2], $$[$0]); -break; -case 128:this.$ = new yy.Try($$[$0]); -break; -case 129:this.$ = new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]); -break; -case 130:this.$ = new yy.Try($$[$0-2], null, null, $$[$0]); -break; -case 131:this.$ = new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]); -break; -case 132:this.$ = [$$[$0-1], $$[$0]]; -break; -case 133:this.$ = new yy.Throw($$[$0]); -break; -case 134:this.$ = new yy.Parens($$[$0-1]); -break; -case 135:this.$ = new yy.Parens($$[$0-2]); -break; -case 136:this.$ = new yy.While($$[$0]); -break; -case 137:this.$ = new yy.While($$[$0-2], { - guard: $$[$0] - }); -break; -case 138:this.$ = new yy.While($$[$0], { - invert: true - }); -break; -case 139:this.$ = new yy.While($$[$0-2], { - invert: true, - guard: $$[$0] - }); -break; -case 140:this.$ = $$[$0-1].addBody($$[$0]); -break; -case 141:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]])); -break; -case 142:this.$ = $$[$0].addBody(yy.Block.wrap([$$[$0-1]])); -break; -case 143:this.$ = $$[$0]; -break; -case 144:this.$ = new yy.While(new yy.Literal('true')).addBody($$[$0]); -break; -case 145:this.$ = new yy.While(new yy.Literal('true')).addBody(yy.Block.wrap([$$[$0]])); -break; -case 146:this.$ = new yy.For($$[$0-1], $$[$0]); -break; -case 147:this.$ = new yy.For($$[$0-1], $$[$0]); -break; -case 148:this.$ = new yy.For($$[$0], $$[$0-1]); -break; -case 149:this.$ = { - source: new yy.Value($$[$0]) - }; -break; -case 150:this.$ = (function () { - $$[$0].own = $$[$0-1].own; - $$[$0].name = $$[$0-1][0]; - $$[$0].index = $$[$0-1][1]; - return $$[$0]; - }()); -break; -case 151:this.$ = $$[$0]; -break; -case 152:this.$ = (function () { - $$[$0].own = true; - return $$[$0]; - }()); -break; -case 153:this.$ = $$[$0]; -break; -case 154:this.$ = new yy.Value($$[$0]); -break; -case 155:this.$ = new yy.Value($$[$0]); -break; -case 156:this.$ = [$$[$0]]; -break; -case 157:this.$ = [$$[$0-2], $$[$0]]; -break; -case 158:this.$ = { - source: $$[$0] - }; -break; -case 159:this.$ = { - source: $$[$0], - object: true - }; -break; -case 160:this.$ = { - source: $$[$0-2], - guard: $$[$0] - }; -break; -case 161:this.$ = { - source: $$[$0-2], - guard: $$[$0], - object: true - }; -break; -case 162:this.$ = { - source: $$[$0-2], - step: $$[$0] - }; -break; -case 163:this.$ = { - source: $$[$0-4], - guard: $$[$0-2], - step: $$[$0] - }; -break; -case 164:this.$ = { - source: $$[$0-4], - step: $$[$0-2], - guard: $$[$0] - }; -break; -case 165:this.$ = new yy.Switch($$[$0-3], $$[$0-1]); -break; -case 166:this.$ = new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]); -break; -case 167:this.$ = new yy.Switch(null, $$[$0-1]); -break; -case 168:this.$ = new yy.Switch(null, $$[$0-3], $$[$0-1]); -break; -case 169:this.$ = $$[$0]; -break; -case 170:this.$ = $$[$0-1].concat($$[$0]); -break; -case 171:this.$ = [[$$[$0-1], $$[$0]]]; -break; -case 172:this.$ = [[$$[$0-2], $$[$0-1]]]; -break; -case 173:this.$ = new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - }); -break; -case 174:this.$ = $$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], { - type: $$[$0-2] - })); -break; -case 175:this.$ = $$[$0]; -break; -case 176:this.$ = $$[$0-2].addElse($$[$0]); -break; -case 177:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), { - type: $$[$0-1], - statement: true - }); -break; -case 178:this.$ = new yy.If($$[$0], yy.Block.wrap([$$[$0-2]]), { - type: $$[$0-1], - statement: true - }); -break; -case 179:this.$ = new yy.Op($$[$0-1], $$[$0]); -break; -case 180:this.$ = new yy.Op('-', $$[$0]); -break; -case 181:this.$ = new yy.Op('+', $$[$0]); -break; -case 182:this.$ = new yy.Op('--', $$[$0]); -break; -case 183:this.$ = new yy.Op('++', $$[$0]); -break; -case 184:this.$ = new yy.Op('--', $$[$0-1], null, true); -break; -case 185:this.$ = new yy.Op('++', $$[$0-1], null, true); -break; -case 186:this.$ = new yy.Existence($$[$0-1]); -break; -case 187:this.$ = new yy.Op('+', $$[$0-2], $$[$0]); -break; -case 188:this.$ = new yy.Op('-', $$[$0-2], $$[$0]); -break; -case 189:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 190:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 191:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 192:this.$ = new yy.Op($$[$0-1], $$[$0-2], $$[$0]); -break; -case 193:this.$ = (function () { - if ($$[$0-1].charAt(0) === '!') { - return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert(); - } else { - return new yy.Op($$[$0-1], $$[$0-2], $$[$0]); - } - }()); -break; -case 194:this.$ = new yy.Assign($$[$0-2], $$[$0], $$[$0-1]); -break; -case 195:this.$ = new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]); -break; -case 196:this.$ = new yy.Extends($$[$0-2], $$[$0]); -break; -} -}, -table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[3]},{1:[2,2],6:[1,72]},{6:[1,73]},{1:[2,4],6:[2,4],26:[2,4],99:[2,4]},{4:75,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,74],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,7],6:[2,7],26:[2,7],99:[2,7],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,8],6:[2,8],26:[2,8],99:[2,8],100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],47:[2,12],52:[2,12],55:[2,12],60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],70:[2,12],71:[1,98],75:[2,12],78:90,81:[1,92],82:[2,103],83:[2,12],88:[2,12],90:[2,12],99:[2,12],101:[2,12],102:[2,12],103:[2,12],107:[2,12],115:[2,12],123:[2,12],125:[2,12],126:[2,12],129:[2,12],130:[2,12],131:[2,12],132:[2,12],133:[2,12],134:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],47:[2,13],52:[2,13],55:[2,13],60:100,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],70:[2,13],71:[1,98],75:[2,13],78:99,81:[1,92],82:[2,103],83:[2,13],88:[2,13],90:[2,13],99:[2,13],101:[2,13],102:[2,13],103:[2,13],107:[2,13],115:[2,13],123:[2,13],125:[2,13],126:[2,13],129:[2,13],130:[2,13],131:[2,13],132:[2,13],133:[2,13],134:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],47:[2,14],52:[2,14],55:[2,14],70:[2,14],75:[2,14],83:[2,14],88:[2,14],90:[2,14],99:[2,14],101:[2,14],102:[2,14],103:[2,14],107:[2,14],115:[2,14],123:[2,14],125:[2,14],126:[2,14],129:[2,14],130:[2,14],131:[2,14],132:[2,14],133:[2,14],134:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],47:[2,15],52:[2,15],55:[2,15],70:[2,15],75:[2,15],83:[2,15],88:[2,15],90:[2,15],99:[2,15],101:[2,15],102:[2,15],103:[2,15],107:[2,15],115:[2,15],123:[2,15],125:[2,15],126:[2,15],129:[2,15],130:[2,15],131:[2,15],132:[2,15],133:[2,15],134:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],47:[2,16],52:[2,16],55:[2,16],70:[2,16],75:[2,16],83:[2,16],88:[2,16],90:[2,16],99:[2,16],101:[2,16],102:[2,16],103:[2,16],107:[2,16],115:[2,16],123:[2,16],125:[2,16],126:[2,16],129:[2,16],130:[2,16],131:[2,16],132:[2,16],133:[2,16],134:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],47:[2,17],52:[2,17],55:[2,17],70:[2,17],75:[2,17],83:[2,17],88:[2,17],90:[2,17],99:[2,17],101:[2,17],102:[2,17],103:[2,17],107:[2,17],115:[2,17],123:[2,17],125:[2,17],126:[2,17],129:[2,17],130:[2,17],131:[2,17],132:[2,17],133:[2,17],134:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],47:[2,18],52:[2,18],55:[2,18],70:[2,18],75:[2,18],83:[2,18],88:[2,18],90:[2,18],99:[2,18],101:[2,18],102:[2,18],103:[2,18],107:[2,18],115:[2,18],123:[2,18],125:[2,18],126:[2,18],129:[2,18],130:[2,18],131:[2,18],132:[2,18],133:[2,18],134:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],47:[2,19],52:[2,19],55:[2,19],70:[2,19],75:[2,19],83:[2,19],88:[2,19],90:[2,19],99:[2,19],101:[2,19],102:[2,19],103:[2,19],107:[2,19],115:[2,19],123:[2,19],125:[2,19],126:[2,19],129:[2,19],130:[2,19],131:[2,19],132:[2,19],133:[2,19],134:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],47:[2,20],52:[2,20],55:[2,20],70:[2,20],75:[2,20],83:[2,20],88:[2,20],90:[2,20],99:[2,20],101:[2,20],102:[2,20],103:[2,20],107:[2,20],115:[2,20],123:[2,20],125:[2,20],126:[2,20],129:[2,20],130:[2,20],131:[2,20],132:[2,20],133:[2,20],134:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],47:[2,21],52:[2,21],55:[2,21],70:[2,21],75:[2,21],83:[2,21],88:[2,21],90:[2,21],99:[2,21],101:[2,21],102:[2,21],103:[2,21],107:[2,21],115:[2,21],123:[2,21],125:[2,21],126:[2,21],129:[2,21],130:[2,21],131:[2,21],132:[2,21],133:[2,21],134:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],47:[2,22],52:[2,22],55:[2,22],70:[2,22],75:[2,22],83:[2,22],88:[2,22],90:[2,22],99:[2,22],101:[2,22],102:[2,22],103:[2,22],107:[2,22],115:[2,22],123:[2,22],125:[2,22],126:[2,22],129:[2,22],130:[2,22],131:[2,22],132:[2,22],133:[2,22],134:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],47:[2,23],52:[2,23],55:[2,23],70:[2,23],75:[2,23],83:[2,23],88:[2,23],90:[2,23],99:[2,23],101:[2,23],102:[2,23],103:[2,23],107:[2,23],115:[2,23],123:[2,23],125:[2,23],126:[2,23],129:[2,23],130:[2,23],131:[2,23],132:[2,23],133:[2,23],134:[2,23]},{1:[2,9],6:[2,9],26:[2,9],99:[2,9],101:[2,9],103:[2,9],107:[2,9],123:[2,9]},{1:[2,10],6:[2,10],26:[2,10],99:[2,10],101:[2,10],103:[2,10],107:[2,10],123:[2,10]},{1:[2,11],6:[2,11],26:[2,11],99:[2,11],101:[2,11],103:[2,11],107:[2,11],123:[2,11]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],38:[1,101],47:[2,71],52:[2,71],55:[2,71],64:[2,71],65:[2,71],66:[2,71],68:[2,71],70:[2,71],71:[2,71],75:[2,71],81:[2,71],82:[2,71],83:[2,71],88:[2,71],90:[2,71],99:[2,71],101:[2,71],102:[2,71],103:[2,71],107:[2,71],115:[2,71],123:[2,71],125:[2,71],126:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],47:[2,72],52:[2,72],55:[2,72],64:[2,72],65:[2,72],66:[2,72],68:[2,72],70:[2,72],71:[2,72],75:[2,72],81:[2,72],82:[2,72],83:[2,72],88:[2,72],90:[2,72],99:[2,72],101:[2,72],102:[2,72],103:[2,72],107:[2,72],115:[2,72],123:[2,72],125:[2,72],126:[2,72],129:[2,72],130:[2,72],131:[2,72],132:[2,72],133:[2,72],134:[2,72]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],47:[2,73],52:[2,73],55:[2,73],64:[2,73],65:[2,73],66:[2,73],68:[2,73],70:[2,73],71:[2,73],75:[2,73],81:[2,73],82:[2,73],83:[2,73],88:[2,73],90:[2,73],99:[2,73],101:[2,73],102:[2,73],103:[2,73],107:[2,73],115:[2,73],123:[2,73],125:[2,73],126:[2,73],129:[2,73],130:[2,73],131:[2,73],132:[2,73],133:[2,73],134:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],47:[2,74],52:[2,74],55:[2,74],64:[2,74],65:[2,74],66:[2,74],68:[2,74],70:[2,74],71:[2,74],75:[2,74],81:[2,74],82:[2,74],83:[2,74],88:[2,74],90:[2,74],99:[2,74],101:[2,74],102:[2,74],103:[2,74],107:[2,74],115:[2,74],123:[2,74],125:[2,74],126:[2,74],129:[2,74],130:[2,74],131:[2,74],132:[2,74],133:[2,74],134:[2,74]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],47:[2,75],52:[2,75],55:[2,75],64:[2,75],65:[2,75],66:[2,75],68:[2,75],70:[2,75],71:[2,75],75:[2,75],81:[2,75],82:[2,75],83:[2,75],88:[2,75],90:[2,75],99:[2,75],101:[2,75],102:[2,75],103:[2,75],107:[2,75],115:[2,75],123:[2,75],125:[2,75],126:[2,75],129:[2,75],130:[2,75],131:[2,75],132:[2,75],133:[2,75],134:[2,75]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],47:[2,101],52:[2,101],55:[2,101],64:[2,101],65:[2,101],66:[2,101],68:[2,101],70:[2,101],71:[2,101],75:[2,101],79:102,81:[2,101],82:[1,103],83:[2,101],88:[2,101],90:[2,101],99:[2,101],101:[2,101],102:[2,101],103:[2,101],107:[2,101],115:[2,101],123:[2,101],125:[2,101],126:[2,101],129:[2,101],130:[2,101],131:[2,101],132:[2,101],133:[2,101],134:[2,101]},{27:107,28:[1,71],42:108,46:104,47:[2,53],52:[2,53],53:105,54:106,56:109,57:110,73:[1,68],86:[1,111],87:[1,112]},{5:113,25:[1,5]},{8:114,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:116,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:117,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{13:119,14:120,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,56:47,57:48,59:118,61:25,62:26,63:27,73:[1,68],80:[1,28],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{13:119,14:120,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,56:47,57:48,59:122,61:25,62:26,63:27,73:[1,68],80:[1,28],85:[1,56],86:[1,57],87:[1,55],98:[1,54]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],38:[2,68],47:[2,68],52:[2,68],55:[2,68],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,68],71:[2,68],75:[2,68],77:[1,126],81:[2,68],82:[2,68],83:[2,68],88:[2,68],90:[2,68],99:[2,68],101:[2,68],102:[2,68],103:[2,68],107:[2,68],115:[2,68],123:[2,68],125:[2,68],126:[2,68],127:[1,123],128:[1,124],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[1,125]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],47:[2,175],52:[2,175],55:[2,175],70:[2,175],75:[2,175],83:[2,175],88:[2,175],90:[2,175],99:[2,175],101:[2,175],102:[2,175],103:[2,175],107:[2,175],115:[2,175],118:[1,127],123:[2,175],125:[2,175],126:[2,175],129:[2,175],130:[2,175],131:[2,175],132:[2,175],133:[2,175],134:[2,175]},{5:128,25:[1,5]},{5:129,25:[1,5]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],47:[2,143],52:[2,143],55:[2,143],70:[2,143],75:[2,143],83:[2,143],88:[2,143],90:[2,143],99:[2,143],101:[2,143],102:[2,143],103:[2,143],107:[2,143],115:[2,143],123:[2,143],125:[2,143],126:[2,143],129:[2,143],130:[2,143],131:[2,143],132:[2,143],133:[2,143],134:[2,143]},{5:130,25:[1,5]},{8:131,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,132],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,91],5:133,6:[2,91],13:119,14:120,25:[1,5],26:[2,91],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:121,42:61,47:[2,91],52:[2,91],55:[2,91],56:47,57:48,59:135,61:25,62:26,63:27,70:[2,91],73:[1,68],75:[2,91],77:[1,134],80:[1,28],83:[2,91],85:[1,56],86:[1,57],87:[1,55],88:[2,91],90:[2,91],98:[1,54],99:[2,91],101:[2,91],102:[2,91],103:[2,91],107:[2,91],115:[2,91],123:[2,91],125:[2,91],126:[2,91],129:[2,91],130:[2,91],131:[2,91],132:[2,91],133:[2,91],134:[2,91]},{8:136,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,45],6:[2,45],8:137,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,45],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],99:[2,45],100:39,101:[2,45],103:[2,45],104:40,105:[1,65],106:41,107:[2,45],108:67,116:[1,42],121:37,122:[1,62],123:[2,45],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,46],6:[2,46],25:[2,46],26:[2,46],52:[2,46],75:[2,46],99:[2,46],101:[2,46],103:[2,46],107:[2,46],123:[2,46]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],38:[2,69],47:[2,69],52:[2,69],55:[2,69],64:[2,69],65:[2,69],66:[2,69],68:[2,69],70:[2,69],71:[2,69],75:[2,69],81:[2,69],82:[2,69],83:[2,69],88:[2,69],90:[2,69],99:[2,69],101:[2,69],102:[2,69],103:[2,69],107:[2,69],115:[2,69],123:[2,69],125:[2,69],126:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],38:[2,70],47:[2,70],52:[2,70],55:[2,70],64:[2,70],65:[2,70],66:[2,70],68:[2,70],70:[2,70],71:[2,70],75:[2,70],81:[2,70],82:[2,70],83:[2,70],88:[2,70],90:[2,70],99:[2,70],101:[2,70],102:[2,70],103:[2,70],107:[2,70],115:[2,70],123:[2,70],125:[2,70],126:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],47:[2,29],52:[2,29],55:[2,29],64:[2,29],65:[2,29],66:[2,29],68:[2,29],70:[2,29],71:[2,29],75:[2,29],81:[2,29],82:[2,29],83:[2,29],88:[2,29],90:[2,29],99:[2,29],101:[2,29],102:[2,29],103:[2,29],107:[2,29],115:[2,29],123:[2,29],125:[2,29],126:[2,29],129:[2,29],130:[2,29],131:[2,29],132:[2,29],133:[2,29],134:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],47:[2,30],52:[2,30],55:[2,30],64:[2,30],65:[2,30],66:[2,30],68:[2,30],70:[2,30],71:[2,30],75:[2,30],81:[2,30],82:[2,30],83:[2,30],88:[2,30],90:[2,30],99:[2,30],101:[2,30],102:[2,30],103:[2,30],107:[2,30],115:[2,30],123:[2,30],125:[2,30],126:[2,30],129:[2,30],130:[2,30],131:[2,30],132:[2,30],133:[2,30],134:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],47:[2,31],52:[2,31],55:[2,31],64:[2,31],65:[2,31],66:[2,31],68:[2,31],70:[2,31],71:[2,31],75:[2,31],81:[2,31],82:[2,31],83:[2,31],88:[2,31],90:[2,31],99:[2,31],101:[2,31],102:[2,31],103:[2,31],107:[2,31],115:[2,31],123:[2,31],125:[2,31],126:[2,31],129:[2,31],130:[2,31],131:[2,31],132:[2,31],133:[2,31],134:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],47:[2,32],52:[2,32],55:[2,32],64:[2,32],65:[2,32],66:[2,32],68:[2,32],70:[2,32],71:[2,32],75:[2,32],81:[2,32],82:[2,32],83:[2,32],88:[2,32],90:[2,32],99:[2,32],101:[2,32],102:[2,32],103:[2,32],107:[2,32],115:[2,32],123:[2,32],125:[2,32],126:[2,32],129:[2,32],130:[2,32],131:[2,32],132:[2,32],133:[2,32],134:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],47:[2,33],52:[2,33],55:[2,33],64:[2,33],65:[2,33],66:[2,33],68:[2,33],70:[2,33],71:[2,33],75:[2,33],81:[2,33],82:[2,33],83:[2,33],88:[2,33],90:[2,33],99:[2,33],101:[2,33],102:[2,33],103:[2,33],107:[2,33],115:[2,33],123:[2,33],125:[2,33],126:[2,33],129:[2,33],130:[2,33],131:[2,33],132:[2,33],133:[2,33],134:[2,33]},{4:138,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,139],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:140,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:142,85:[1,56],86:[1,57],87:[1,55],88:[1,141],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],47:[2,107],52:[2,107],55:[2,107],64:[2,107],65:[2,107],66:[2,107],68:[2,107],70:[2,107],71:[2,107],75:[2,107],81:[2,107],82:[2,107],83:[2,107],88:[2,107],90:[2,107],99:[2,107],101:[2,107],102:[2,107],103:[2,107],107:[2,107],115:[2,107],123:[2,107],125:[2,107],126:[2,107],129:[2,107],130:[2,107],131:[2,107],132:[2,107],133:[2,107],134:[2,107]},{1:[2,108],6:[2,108],25:[2,108],26:[2,108],27:146,28:[1,71],47:[2,108],52:[2,108],55:[2,108],64:[2,108],65:[2,108],66:[2,108],68:[2,108],70:[2,108],71:[2,108],75:[2,108],81:[2,108],82:[2,108],83:[2,108],88:[2,108],90:[2,108],99:[2,108],101:[2,108],102:[2,108],103:[2,108],107:[2,108],115:[2,108],123:[2,108],125:[2,108],126:[2,108],129:[2,108],130:[2,108],131:[2,108],132:[2,108],133:[2,108],134:[2,108]},{25:[2,49]},{25:[2,50]},{1:[2,64],6:[2,64],25:[2,64],26:[2,64],38:[2,64],47:[2,64],52:[2,64],55:[2,64],64:[2,64],65:[2,64],66:[2,64],68:[2,64],70:[2,64],71:[2,64],75:[2,64],77:[2,64],81:[2,64],82:[2,64],83:[2,64],88:[2,64],90:[2,64],99:[2,64],101:[2,64],102:[2,64],103:[2,64],107:[2,64],115:[2,64],123:[2,64],125:[2,64],126:[2,64],127:[2,64],128:[2,64],129:[2,64],130:[2,64],131:[2,64],132:[2,64],133:[2,64],134:[2,64],135:[2,64]},{1:[2,67],6:[2,67],25:[2,67],26:[2,67],38:[2,67],47:[2,67],52:[2,67],55:[2,67],64:[2,67],65:[2,67],66:[2,67],68:[2,67],70:[2,67],71:[2,67],75:[2,67],77:[2,67],81:[2,67],82:[2,67],83:[2,67],88:[2,67],90:[2,67],99:[2,67],101:[2,67],102:[2,67],103:[2,67],107:[2,67],115:[2,67],123:[2,67],125:[2,67],126:[2,67],127:[2,67],128:[2,67],129:[2,67],130:[2,67],131:[2,67],132:[2,67],133:[2,67],134:[2,67],135:[2,67]},{8:147,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:148,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:149,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:150,8:151,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{27:156,28:[1,71],56:157,57:158,62:152,73:[1,68],87:[1,55],110:153,111:[1,154],112:155},{109:159,113:[1,160],114:[1,161]},{6:[2,86],11:165,25:[2,86],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:163,40:164,42:168,44:[1,46],52:[2,86],74:162,75:[2,86],86:[1,111]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],41:[2,27],47:[2,27],52:[2,27],55:[2,27],64:[2,27],65:[2,27],66:[2,27],68:[2,27],70:[2,27],71:[2,27],75:[2,27],81:[2,27],82:[2,27],83:[2,27],88:[2,27],90:[2,27],99:[2,27],101:[2,27],102:[2,27],103:[2,27],107:[2,27],115:[2,27],123:[2,27],125:[2,27],126:[2,27],129:[2,27],130:[2,27],131:[2,27],132:[2,27],133:[2,27],134:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],41:[2,28],47:[2,28],52:[2,28],55:[2,28],64:[2,28],65:[2,28],66:[2,28],68:[2,28],70:[2,28],71:[2,28],75:[2,28],81:[2,28],82:[2,28],83:[2,28],88:[2,28],90:[2,28],99:[2,28],101:[2,28],102:[2,28],103:[2,28],107:[2,28],115:[2,28],123:[2,28],125:[2,28],126:[2,28],129:[2,28],130:[2,28],131:[2,28],132:[2,28],133:[2,28],134:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],38:[2,26],41:[2,26],47:[2,26],52:[2,26],55:[2,26],64:[2,26],65:[2,26],66:[2,26],68:[2,26],70:[2,26],71:[2,26],75:[2,26],77:[2,26],81:[2,26],82:[2,26],83:[2,26],88:[2,26],90:[2,26],99:[2,26],101:[2,26],102:[2,26],103:[2,26],107:[2,26],113:[2,26],114:[2,26],115:[2,26],123:[2,26],125:[2,26],126:[2,26],127:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26]},{1:[2,6],6:[2,6],7:169,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],99:[2,6],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],47:[2,24],52:[2,24],55:[2,24],70:[2,24],75:[2,24],83:[2,24],88:[2,24],90:[2,24],95:[2,24],96:[2,24],99:[2,24],101:[2,24],102:[2,24],103:[2,24],107:[2,24],115:[2,24],118:[2,24],120:[2,24],123:[2,24],125:[2,24],126:[2,24],129:[2,24],130:[2,24],131:[2,24],132:[2,24],133:[2,24],134:[2,24]},{6:[1,72],26:[1,170]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],47:[2,186],52:[2,186],55:[2,186],70:[2,186],75:[2,186],83:[2,186],88:[2,186],90:[2,186],99:[2,186],101:[2,186],102:[2,186],103:[2,186],107:[2,186],115:[2,186],123:[2,186],125:[2,186],126:[2,186],129:[2,186],130:[2,186],131:[2,186],132:[2,186],133:[2,186],134:[2,186]},{8:171,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:172,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:173,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:174,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:175,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:176,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:177,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:178,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],47:[2,142],52:[2,142],55:[2,142],70:[2,142],75:[2,142],83:[2,142],88:[2,142],90:[2,142],99:[2,142],101:[2,142],102:[2,142],103:[2,142],107:[2,142],115:[2,142],123:[2,142],125:[2,142],126:[2,142],129:[2,142],130:[2,142],131:[2,142],132:[2,142],133:[2,142],134:[2,142]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],47:[2,147],52:[2,147],55:[2,147],70:[2,147],75:[2,147],83:[2,147],88:[2,147],90:[2,147],99:[2,147],101:[2,147],102:[2,147],103:[2,147],107:[2,147],115:[2,147],123:[2,147],125:[2,147],126:[2,147],129:[2,147],130:[2,147],131:[2,147],132:[2,147],133:[2,147],134:[2,147]},{8:179,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],47:[2,141],52:[2,141],55:[2,141],70:[2,141],75:[2,141],83:[2,141],88:[2,141],90:[2,141],99:[2,141],101:[2,141],102:[2,141],103:[2,141],107:[2,141],115:[2,141],123:[2,141],125:[2,141],126:[2,141],129:[2,141],130:[2,141],131:[2,141],132:[2,141],133:[2,141],134:[2,141]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],47:[2,146],52:[2,146],55:[2,146],70:[2,146],75:[2,146],83:[2,146],88:[2,146],90:[2,146],99:[2,146],101:[2,146],102:[2,146],103:[2,146],107:[2,146],115:[2,146],123:[2,146],125:[2,146],126:[2,146],129:[2,146],130:[2,146],131:[2,146],132:[2,146],133:[2,146],134:[2,146]},{79:180,82:[1,103]},{1:[2,65],6:[2,65],25:[2,65],26:[2,65],38:[2,65],47:[2,65],52:[2,65],55:[2,65],64:[2,65],65:[2,65],66:[2,65],68:[2,65],70:[2,65],71:[2,65],75:[2,65],77:[2,65],81:[2,65],82:[2,65],83:[2,65],88:[2,65],90:[2,65],99:[2,65],101:[2,65],102:[2,65],103:[2,65],107:[2,65],115:[2,65],123:[2,65],125:[2,65],126:[2,65],127:[2,65],128:[2,65],129:[2,65],130:[2,65],131:[2,65],132:[2,65],133:[2,65],134:[2,65],135:[2,65]},{82:[2,104]},{27:181,28:[1,71]},{27:182,28:[1,71]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],27:183,28:[1,71],38:[2,79],47:[2,79],52:[2,79],55:[2,79],64:[2,79],65:[2,79],66:[2,79],68:[2,79],70:[2,79],71:[2,79],75:[2,79],77:[2,79],81:[2,79],82:[2,79],83:[2,79],88:[2,79],90:[2,79],99:[2,79],101:[2,79],102:[2,79],103:[2,79],107:[2,79],115:[2,79],123:[2,79],125:[2,79],126:[2,79],127:[2,79],128:[2,79],129:[2,79],130:[2,79],131:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],38:[2,80],47:[2,80],52:[2,80],55:[2,80],64:[2,80],65:[2,80],66:[2,80],68:[2,80],70:[2,80],71:[2,80],75:[2,80],77:[2,80],81:[2,80],82:[2,80],83:[2,80],88:[2,80],90:[2,80],99:[2,80],101:[2,80],102:[2,80],103:[2,80],107:[2,80],115:[2,80],123:[2,80],125:[2,80],126:[2,80],127:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80]},{8:185,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],55:[1,189],56:47,57:48,59:36,61:25,62:26,63:27,69:184,72:186,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],89:187,90:[1,188],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{67:190,68:[1,97],71:[1,98]},{79:191,82:[1,103]},{1:[2,66],6:[2,66],25:[2,66],26:[2,66],38:[2,66],47:[2,66],52:[2,66],55:[2,66],64:[2,66],65:[2,66],66:[2,66],68:[2,66],70:[2,66],71:[2,66],75:[2,66],77:[2,66],81:[2,66],82:[2,66],83:[2,66],88:[2,66],90:[2,66],99:[2,66],101:[2,66],102:[2,66],103:[2,66],107:[2,66],115:[2,66],123:[2,66],125:[2,66],126:[2,66],127:[2,66],128:[2,66],129:[2,66],130:[2,66],131:[2,66],132:[2,66],133:[2,66],134:[2,66],135:[2,66]},{6:[1,193],8:192,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,194],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,102],6:[2,102],25:[2,102],26:[2,102],47:[2,102],52:[2,102],55:[2,102],64:[2,102],65:[2,102],66:[2,102],68:[2,102],70:[2,102],71:[2,102],75:[2,102],81:[2,102],82:[2,102],83:[2,102],88:[2,102],90:[2,102],99:[2,102],101:[2,102],102:[2,102],103:[2,102],107:[2,102],115:[2,102],123:[2,102],125:[2,102],126:[2,102],129:[2,102],130:[2,102],131:[2,102],132:[2,102],133:[2,102],134:[2,102]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],83:[1,195],84:196,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{47:[1,198],52:[1,199]},{47:[2,54],52:[2,54]},{38:[1,201],47:[2,56],52:[2,56],55:[1,200]},{38:[2,59],47:[2,59],52:[2,59],55:[2,59]},{38:[2,60],47:[2,60],52:[2,60],55:[2,60]},{38:[2,61],47:[2,61],52:[2,61],55:[2,61]},{38:[2,62],47:[2,62],52:[2,62],55:[2,62]},{27:146,28:[1,71]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:142,85:[1,56],86:[1,57],87:[1,55],88:[1,141],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],47:[2,48],52:[2,48],55:[2,48],70:[2,48],75:[2,48],83:[2,48],88:[2,48],90:[2,48],99:[2,48],101:[2,48],102:[2,48],103:[2,48],107:[2,48],115:[2,48],123:[2,48],125:[2,48],126:[2,48],129:[2,48],130:[2,48],131:[2,48],132:[2,48],133:[2,48],134:[2,48]},{1:[2,179],6:[2,179],25:[2,179],26:[2,179],47:[2,179],52:[2,179],55:[2,179],70:[2,179],75:[2,179],83:[2,179],88:[2,179],90:[2,179],99:[2,179],100:85,101:[2,179],102:[2,179],103:[2,179],106:86,107:[2,179],108:67,115:[2,179],123:[2,179],125:[2,179],126:[2,179],129:[1,76],130:[2,179],131:[2,179],132:[2,179],133:[2,179],134:[2,179]},{100:88,101:[1,63],103:[1,64],106:89,107:[1,66],108:67,123:[1,87]},{1:[2,180],6:[2,180],25:[2,180],26:[2,180],47:[2,180],52:[2,180],55:[2,180],70:[2,180],75:[2,180],83:[2,180],88:[2,180],90:[2,180],99:[2,180],100:85,101:[2,180],102:[2,180],103:[2,180],106:86,107:[2,180],108:67,115:[2,180],123:[2,180],125:[2,180],126:[2,180],129:[1,76],130:[2,180],131:[2,180],132:[2,180],133:[2,180],134:[2,180]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],47:[2,181],52:[2,181],55:[2,181],70:[2,181],75:[2,181],83:[2,181],88:[2,181],90:[2,181],99:[2,181],100:85,101:[2,181],102:[2,181],103:[2,181],106:86,107:[2,181],108:67,115:[2,181],123:[2,181],125:[2,181],126:[2,181],129:[1,76],130:[2,181],131:[2,181],132:[2,181],133:[2,181],134:[2,181]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],47:[2,182],52:[2,182],55:[2,182],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,182],71:[2,68],75:[2,182],81:[2,68],82:[2,68],83:[2,182],88:[2,182],90:[2,182],99:[2,182],101:[2,182],102:[2,182],103:[2,182],107:[2,182],115:[2,182],123:[2,182],125:[2,182],126:[2,182],129:[2,182],130:[2,182],131:[2,182],132:[2,182],133:[2,182],134:[2,182]},{60:91,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],71:[1,98],78:90,81:[1,92],82:[2,103]},{60:100,64:[1,93],65:[1,94],66:[1,95],67:96,68:[1,97],71:[1,98],78:99,81:[1,92],82:[2,103]},{64:[2,71],65:[2,71],66:[2,71],68:[2,71],71:[2,71],81:[2,71],82:[2,71]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],47:[2,183],52:[2,183],55:[2,183],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,183],71:[2,68],75:[2,183],81:[2,68],82:[2,68],83:[2,183],88:[2,183],90:[2,183],99:[2,183],101:[2,183],102:[2,183],103:[2,183],107:[2,183],115:[2,183],123:[2,183],125:[2,183],126:[2,183],129:[2,183],130:[2,183],131:[2,183],132:[2,183],133:[2,183],134:[2,183]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],47:[2,184],52:[2,184],55:[2,184],70:[2,184],75:[2,184],83:[2,184],88:[2,184],90:[2,184],99:[2,184],101:[2,184],102:[2,184],103:[2,184],107:[2,184],115:[2,184],123:[2,184],125:[2,184],126:[2,184],129:[2,184],130:[2,184],131:[2,184],132:[2,184],133:[2,184],134:[2,184]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],47:[2,185],52:[2,185],55:[2,185],70:[2,185],75:[2,185],83:[2,185],88:[2,185],90:[2,185],99:[2,185],101:[2,185],102:[2,185],103:[2,185],107:[2,185],115:[2,185],123:[2,185],125:[2,185],126:[2,185],129:[2,185],130:[2,185],131:[2,185],132:[2,185],133:[2,185],134:[2,185]},{8:202,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,203],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:204,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{5:205,25:[1,5],122:[1,206]},{1:[2,128],6:[2,128],25:[2,128],26:[2,128],47:[2,128],52:[2,128],55:[2,128],70:[2,128],75:[2,128],83:[2,128],88:[2,128],90:[2,128],94:207,95:[1,208],96:[1,209],99:[2,128],101:[2,128],102:[2,128],103:[2,128],107:[2,128],115:[2,128],123:[2,128],125:[2,128],126:[2,128],129:[2,128],130:[2,128],131:[2,128],132:[2,128],133:[2,128],134:[2,128]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],47:[2,140],52:[2,140],55:[2,140],70:[2,140],75:[2,140],83:[2,140],88:[2,140],90:[2,140],99:[2,140],101:[2,140],102:[2,140],103:[2,140],107:[2,140],115:[2,140],123:[2,140],125:[2,140],126:[2,140],129:[2,140],130:[2,140],131:[2,140],132:[2,140],133:[2,140],134:[2,140]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],47:[2,148],52:[2,148],55:[2,148],70:[2,148],75:[2,148],83:[2,148],88:[2,148],90:[2,148],99:[2,148],101:[2,148],102:[2,148],103:[2,148],107:[2,148],115:[2,148],123:[2,148],125:[2,148],126:[2,148],129:[2,148],130:[2,148],131:[2,148],132:[2,148],133:[2,148],134:[2,148]},{25:[1,210],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{117:211,119:212,120:[1,213]},{1:[2,92],6:[2,92],25:[2,92],26:[2,92],47:[2,92],52:[2,92],55:[2,92],70:[2,92],75:[2,92],83:[2,92],88:[2,92],90:[2,92],99:[2,92],101:[2,92],102:[2,92],103:[2,92],107:[2,92],115:[2,92],123:[2,92],125:[2,92],126:[2,92],129:[2,92],130:[2,92],131:[2,92],132:[2,92],133:[2,92],134:[2,92]},{8:214,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,95],5:215,6:[2,95],25:[1,5],26:[2,95],47:[2,95],52:[2,95],55:[2,95],64:[2,68],65:[2,68],66:[2,68],68:[2,68],70:[2,95],71:[2,68],75:[2,95],77:[1,216],81:[2,68],82:[2,68],83:[2,95],88:[2,95],90:[2,95],99:[2,95],101:[2,95],102:[2,95],103:[2,95],107:[2,95],115:[2,95],123:[2,95],125:[2,95],126:[2,95],129:[2,95],130:[2,95],131:[2,95],132:[2,95],133:[2,95],134:[2,95]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],47:[2,133],52:[2,133],55:[2,133],70:[2,133],75:[2,133],83:[2,133],88:[2,133],90:[2,133],99:[2,133],100:85,101:[2,133],102:[2,133],103:[2,133],106:86,107:[2,133],108:67,115:[2,133],123:[2,133],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,44],6:[2,44],26:[2,44],99:[2,44],100:85,101:[2,44],103:[2,44],106:86,107:[2,44],108:67,123:[2,44],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,72],99:[1,217]},{4:218,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,124],25:[2,124],52:[2,124],55:[1,220],88:[2,124],89:219,90:[1,188],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],38:[2,110],47:[2,110],52:[2,110],55:[2,110],64:[2,110],65:[2,110],66:[2,110],68:[2,110],70:[2,110],71:[2,110],75:[2,110],81:[2,110],82:[2,110],83:[2,110],88:[2,110],90:[2,110],99:[2,110],101:[2,110],102:[2,110],103:[2,110],107:[2,110],113:[2,110],114:[2,110],115:[2,110],123:[2,110],125:[2,110],126:[2,110],129:[2,110],130:[2,110],131:[2,110],132:[2,110],133:[2,110],134:[2,110]},{6:[2,51],25:[2,51],51:221,52:[1,222],88:[2,51]},{6:[2,119],25:[2,119],26:[2,119],52:[2,119],83:[2,119],88:[2,119]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:223,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,125],25:[2,125],26:[2,125],52:[2,125],83:[2,125],88:[2,125]},{1:[2,109],6:[2,109],25:[2,109],26:[2,109],38:[2,109],41:[2,109],47:[2,109],52:[2,109],55:[2,109],64:[2,109],65:[2,109],66:[2,109],68:[2,109],70:[2,109],71:[2,109],75:[2,109],77:[2,109],81:[2,109],82:[2,109],83:[2,109],88:[2,109],90:[2,109],99:[2,109],101:[2,109],102:[2,109],103:[2,109],107:[2,109],115:[2,109],123:[2,109],125:[2,109],126:[2,109],127:[2,109],128:[2,109],129:[2,109],130:[2,109],131:[2,109],132:[2,109],133:[2,109],134:[2,109],135:[2,109]},{5:224,25:[1,5],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],47:[2,136],52:[2,136],55:[2,136],70:[2,136],75:[2,136],83:[2,136],88:[2,136],90:[2,136],99:[2,136],100:85,101:[1,63],102:[1,225],103:[1,64],106:86,107:[1,66],108:67,115:[2,136],123:[2,136],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],47:[2,138],52:[2,138],55:[2,138],70:[2,138],75:[2,138],83:[2,138],88:[2,138],90:[2,138],99:[2,138],100:85,101:[1,63],102:[1,226],103:[1,64],106:86,107:[1,66],108:67,115:[2,138],123:[2,138],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],47:[2,144],52:[2,144],55:[2,144],70:[2,144],75:[2,144],83:[2,144],88:[2,144],90:[2,144],99:[2,144],101:[2,144],102:[2,144],103:[2,144],107:[2,144],115:[2,144],123:[2,144],125:[2,144],126:[2,144],129:[2,144],130:[2,144],131:[2,144],132:[2,144],133:[2,144],134:[2,144]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],47:[2,145],52:[2,145],55:[2,145],70:[2,145],75:[2,145],83:[2,145],88:[2,145],90:[2,145],99:[2,145],100:85,101:[1,63],102:[2,145],103:[1,64],106:86,107:[1,66],108:67,115:[2,145],123:[2,145],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],47:[2,149],52:[2,149],55:[2,149],70:[2,149],75:[2,149],83:[2,149],88:[2,149],90:[2,149],99:[2,149],101:[2,149],102:[2,149],103:[2,149],107:[2,149],115:[2,149],123:[2,149],125:[2,149],126:[2,149],129:[2,149],130:[2,149],131:[2,149],132:[2,149],133:[2,149],134:[2,149]},{113:[2,151],114:[2,151]},{27:156,28:[1,71],56:157,57:158,73:[1,68],87:[1,112],110:227,112:155},{52:[1,228],113:[2,156],114:[2,156]},{52:[2,153],113:[2,153],114:[2,153]},{52:[2,154],113:[2,154],114:[2,154]},{52:[2,155],113:[2,155],114:[2,155]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],47:[2,150],52:[2,150],55:[2,150],70:[2,150],75:[2,150],83:[2,150],88:[2,150],90:[2,150],99:[2,150],101:[2,150],102:[2,150],103:[2,150],107:[2,150],115:[2,150],123:[2,150],125:[2,150],126:[2,150],129:[2,150],130:[2,150],131:[2,150],132:[2,150],133:[2,150],134:[2,150]},{8:229,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:230,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,51],25:[2,51],51:231,52:[1,232],75:[2,51]},{6:[2,87],25:[2,87],26:[2,87],52:[2,87],75:[2,87]},{6:[2,37],25:[2,37],26:[2,37],41:[1,233],52:[2,37],75:[2,37]},{6:[2,40],25:[2,40],26:[2,40],52:[2,40],75:[2,40]},{6:[2,41],25:[2,41],26:[2,41],41:[2,41],52:[2,41],75:[2,41]},{6:[2,42],25:[2,42],26:[2,42],41:[2,42],52:[2,42],75:[2,42]},{6:[2,43],25:[2,43],26:[2,43],41:[2,43],52:[2,43],75:[2,43]},{1:[2,5],6:[2,5],26:[2,5],99:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],47:[2,25],52:[2,25],55:[2,25],70:[2,25],75:[2,25],83:[2,25],88:[2,25],90:[2,25],95:[2,25],96:[2,25],99:[2,25],101:[2,25],102:[2,25],103:[2,25],107:[2,25],115:[2,25],118:[2,25],120:[2,25],123:[2,25],125:[2,25],126:[2,25],129:[2,25],130:[2,25],131:[2,25],132:[2,25],133:[2,25],134:[2,25]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],47:[2,187],52:[2,187],55:[2,187],70:[2,187],75:[2,187],83:[2,187],88:[2,187],90:[2,187],99:[2,187],100:85,101:[2,187],102:[2,187],103:[2,187],106:86,107:[2,187],108:67,115:[2,187],123:[2,187],125:[2,187],126:[2,187],129:[1,76],130:[1,79],131:[2,187],132:[2,187],133:[2,187],134:[2,187]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],47:[2,188],52:[2,188],55:[2,188],70:[2,188],75:[2,188],83:[2,188],88:[2,188],90:[2,188],99:[2,188],100:85,101:[2,188],102:[2,188],103:[2,188],106:86,107:[2,188],108:67,115:[2,188],123:[2,188],125:[2,188],126:[2,188],129:[1,76],130:[1,79],131:[2,188],132:[2,188],133:[2,188],134:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],47:[2,189],52:[2,189],55:[2,189],70:[2,189],75:[2,189],83:[2,189],88:[2,189],90:[2,189],99:[2,189],100:85,101:[2,189],102:[2,189],103:[2,189],106:86,107:[2,189],108:67,115:[2,189],123:[2,189],125:[2,189],126:[2,189],129:[1,76],130:[2,189],131:[2,189],132:[2,189],133:[2,189],134:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],47:[2,190],52:[2,190],55:[2,190],70:[2,190],75:[2,190],83:[2,190],88:[2,190],90:[2,190],99:[2,190],100:85,101:[2,190],102:[2,190],103:[2,190],106:86,107:[2,190],108:67,115:[2,190],123:[2,190],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[2,190],132:[2,190],133:[2,190],134:[2,190]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],47:[2,191],52:[2,191],55:[2,191],70:[2,191],75:[2,191],83:[2,191],88:[2,191],90:[2,191],99:[2,191],100:85,101:[2,191],102:[2,191],103:[2,191],106:86,107:[2,191],108:67,115:[2,191],123:[2,191],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,191],133:[2,191],134:[1,83]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],47:[2,192],52:[2,192],55:[2,192],70:[2,192],75:[2,192],83:[2,192],88:[2,192],90:[2,192],99:[2,192],100:85,101:[2,192],102:[2,192],103:[2,192],106:86,107:[2,192],108:67,115:[2,192],123:[2,192],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[2,192],134:[1,83]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],47:[2,193],52:[2,193],55:[2,193],70:[2,193],75:[2,193],83:[2,193],88:[2,193],90:[2,193],99:[2,193],100:85,101:[2,193],102:[2,193],103:[2,193],106:86,107:[2,193],108:67,115:[2,193],123:[2,193],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[2,193],133:[2,193],134:[2,193]},{1:[2,178],6:[2,178],25:[2,178],26:[2,178],47:[2,178],52:[2,178],55:[2,178],70:[2,178],75:[2,178],83:[2,178],88:[2,178],90:[2,178],99:[2,178],100:85,101:[1,63],102:[2,178],103:[1,64],106:86,107:[1,66],108:67,115:[2,178],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,177],6:[2,177],25:[2,177],26:[2,177],47:[2,177],52:[2,177],55:[2,177],70:[2,177],75:[2,177],83:[2,177],88:[2,177],90:[2,177],99:[2,177],100:85,101:[1,63],102:[2,177],103:[1,64],106:86,107:[1,66],108:67,115:[2,177],123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],47:[2,99],52:[2,99],55:[2,99],64:[2,99],65:[2,99],66:[2,99],68:[2,99],70:[2,99],71:[2,99],75:[2,99],81:[2,99],82:[2,99],83:[2,99],88:[2,99],90:[2,99],99:[2,99],101:[2,99],102:[2,99],103:[2,99],107:[2,99],115:[2,99],123:[2,99],125:[2,99],126:[2,99],129:[2,99],130:[2,99],131:[2,99],132:[2,99],133:[2,99],134:[2,99]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],38:[2,76],47:[2,76],52:[2,76],55:[2,76],64:[2,76],65:[2,76],66:[2,76],68:[2,76],70:[2,76],71:[2,76],75:[2,76],77:[2,76],81:[2,76],82:[2,76],83:[2,76],88:[2,76],90:[2,76],99:[2,76],101:[2,76],102:[2,76],103:[2,76],107:[2,76],115:[2,76],123:[2,76],125:[2,76],126:[2,76],127:[2,76],128:[2,76],129:[2,76],130:[2,76],131:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],38:[2,77],47:[2,77],52:[2,77],55:[2,77],64:[2,77],65:[2,77],66:[2,77],68:[2,77],70:[2,77],71:[2,77],75:[2,77],77:[2,77],81:[2,77],82:[2,77],83:[2,77],88:[2,77],90:[2,77],99:[2,77],101:[2,77],102:[2,77],103:[2,77],107:[2,77],115:[2,77],123:[2,77],125:[2,77],126:[2,77],127:[2,77],128:[2,77],129:[2,77],130:[2,77],131:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],38:[2,78],47:[2,78],52:[2,78],55:[2,78],64:[2,78],65:[2,78],66:[2,78],68:[2,78],70:[2,78],71:[2,78],75:[2,78],77:[2,78],81:[2,78],82:[2,78],83:[2,78],88:[2,78],90:[2,78],99:[2,78],101:[2,78],102:[2,78],103:[2,78],107:[2,78],115:[2,78],123:[2,78],125:[2,78],126:[2,78],127:[2,78],128:[2,78],129:[2,78],130:[2,78],131:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78]},{70:[1,234]},{55:[1,189],70:[2,83],89:235,90:[1,188],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{70:[2,84]},{8:236,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,70:[2,118],73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{12:[2,112],28:[2,112],30:[2,112],31:[2,112],33:[2,112],34:[2,112],35:[2,112],36:[2,112],43:[2,112],44:[2,112],45:[2,112],49:[2,112],50:[2,112],70:[2,112],73:[2,112],76:[2,112],80:[2,112],85:[2,112],86:[2,112],87:[2,112],93:[2,112],97:[2,112],98:[2,112],101:[2,112],103:[2,112],105:[2,112],107:[2,112],116:[2,112],122:[2,112],124:[2,112],125:[2,112],126:[2,112],127:[2,112],128:[2,112]},{12:[2,113],28:[2,113],30:[2,113],31:[2,113],33:[2,113],34:[2,113],35:[2,113],36:[2,113],43:[2,113],44:[2,113],45:[2,113],49:[2,113],50:[2,113],70:[2,113],73:[2,113],76:[2,113],80:[2,113],85:[2,113],86:[2,113],87:[2,113],93:[2,113],97:[2,113],98:[2,113],101:[2,113],103:[2,113],105:[2,113],107:[2,113],116:[2,113],122:[2,113],124:[2,113],125:[2,113],126:[2,113],127:[2,113],128:[2,113]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],38:[2,82],47:[2,82],52:[2,82],55:[2,82],64:[2,82],65:[2,82],66:[2,82],68:[2,82],70:[2,82],71:[2,82],75:[2,82],77:[2,82],81:[2,82],82:[2,82],83:[2,82],88:[2,82],90:[2,82],99:[2,82],101:[2,82],102:[2,82],103:[2,82],107:[2,82],115:[2,82],123:[2,82],125:[2,82],126:[2,82],127:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82]},{1:[2,100],6:[2,100],25:[2,100],26:[2,100],47:[2,100],52:[2,100],55:[2,100],64:[2,100],65:[2,100],66:[2,100],68:[2,100],70:[2,100],71:[2,100],75:[2,100],81:[2,100],82:[2,100],83:[2,100],88:[2,100],90:[2,100],99:[2,100],101:[2,100],102:[2,100],103:[2,100],107:[2,100],115:[2,100],123:[2,100],125:[2,100],126:[2,100],129:[2,100],130:[2,100],131:[2,100],132:[2,100],133:[2,100],134:[2,100]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],47:[2,34],52:[2,34],55:[2,34],70:[2,34],75:[2,34],83:[2,34],88:[2,34],90:[2,34],99:[2,34],100:85,101:[2,34],102:[2,34],103:[2,34],106:86,107:[2,34],108:67,115:[2,34],123:[2,34],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:237,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:238,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],47:[2,105],52:[2,105],55:[2,105],64:[2,105],65:[2,105],66:[2,105],68:[2,105],70:[2,105],71:[2,105],75:[2,105],81:[2,105],82:[2,105],83:[2,105],88:[2,105],90:[2,105],99:[2,105],101:[2,105],102:[2,105],103:[2,105],107:[2,105],115:[2,105],123:[2,105],125:[2,105],126:[2,105],129:[2,105],130:[2,105],131:[2,105],132:[2,105],133:[2,105],134:[2,105]},{6:[2,51],25:[2,51],51:239,52:[1,222],83:[2,51]},{6:[2,124],25:[2,124],26:[2,124],52:[2,124],55:[1,240],83:[2,124],88:[2,124],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{48:241,49:[1,58],50:[1,59]},{27:107,28:[1,71],42:108,53:242,54:106,56:109,57:110,73:[1,68],86:[1,111],87:[1,112]},{47:[2,57],52:[2,57]},{8:243,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],47:[2,194],52:[2,194],55:[2,194],70:[2,194],75:[2,194],83:[2,194],88:[2,194],90:[2,194],99:[2,194],100:85,101:[2,194],102:[2,194],103:[2,194],106:86,107:[2,194],108:67,115:[2,194],123:[2,194],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:244,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],47:[2,196],52:[2,196],55:[2,196],70:[2,196],75:[2,196],83:[2,196],88:[2,196],90:[2,196],99:[2,196],100:85,101:[2,196],102:[2,196],103:[2,196],106:86,107:[2,196],108:67,115:[2,196],123:[2,196],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],47:[2,176],52:[2,176],55:[2,176],70:[2,176],75:[2,176],83:[2,176],88:[2,176],90:[2,176],99:[2,176],101:[2,176],102:[2,176],103:[2,176],107:[2,176],115:[2,176],123:[2,176],125:[2,176],126:[2,176],129:[2,176],130:[2,176],131:[2,176],132:[2,176],133:[2,176],134:[2,176]},{8:245,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,129],6:[2,129],25:[2,129],26:[2,129],47:[2,129],52:[2,129],55:[2,129],70:[2,129],75:[2,129],83:[2,129],88:[2,129],90:[2,129],95:[1,246],99:[2,129],101:[2,129],102:[2,129],103:[2,129],107:[2,129],115:[2,129],123:[2,129],125:[2,129],126:[2,129],129:[2,129],130:[2,129],131:[2,129],132:[2,129],133:[2,129],134:[2,129]},{5:247,25:[1,5]},{27:248,28:[1,71]},{117:249,119:212,120:[1,213]},{26:[1,250],118:[1,251],119:252,120:[1,213]},{26:[2,169],118:[2,169],120:[2,169]},{8:254,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],92:253,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,93],5:255,6:[2,93],25:[1,5],26:[2,93],47:[2,93],52:[2,93],55:[2,93],70:[2,93],75:[2,93],83:[2,93],88:[2,93],90:[2,93],99:[2,93],100:85,101:[1,63],102:[2,93],103:[1,64],106:86,107:[1,66],108:67,115:[2,93],123:[2,93],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,96],6:[2,96],25:[2,96],26:[2,96],47:[2,96],52:[2,96],55:[2,96],70:[2,96],75:[2,96],83:[2,96],88:[2,96],90:[2,96],99:[2,96],101:[2,96],102:[2,96],103:[2,96],107:[2,96],115:[2,96],123:[2,96],125:[2,96],126:[2,96],129:[2,96],130:[2,96],131:[2,96],132:[2,96],133:[2,96],134:[2,96]},{8:256,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],47:[2,134],52:[2,134],55:[2,134],64:[2,134],65:[2,134],66:[2,134],68:[2,134],70:[2,134],71:[2,134],75:[2,134],81:[2,134],82:[2,134],83:[2,134],88:[2,134],90:[2,134],99:[2,134],101:[2,134],102:[2,134],103:[2,134],107:[2,134],115:[2,134],123:[2,134],125:[2,134],126:[2,134],129:[2,134],130:[2,134],131:[2,134],132:[2,134],133:[2,134],134:[2,134]},{6:[1,72],26:[1,257]},{8:258,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,63],12:[2,113],25:[2,63],28:[2,113],30:[2,113],31:[2,113],33:[2,113],34:[2,113],35:[2,113],36:[2,113],43:[2,113],44:[2,113],45:[2,113],49:[2,113],50:[2,113],52:[2,63],73:[2,113],76:[2,113],80:[2,113],85:[2,113],86:[2,113],87:[2,113],88:[2,63],93:[2,113],97:[2,113],98:[2,113],101:[2,113],103:[2,113],105:[2,113],107:[2,113],116:[2,113],122:[2,113],124:[2,113],125:[2,113],126:[2,113],127:[2,113],128:[2,113]},{6:[1,260],25:[1,261],88:[1,259]},{6:[2,52],8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,52],26:[2,52],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],83:[2,52],85:[1,56],86:[1,57],87:[1,55],88:[2,52],91:262,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,51],25:[2,51],26:[2,51],51:263,52:[1,222]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],47:[2,173],52:[2,173],55:[2,173],70:[2,173],75:[2,173],83:[2,173],88:[2,173],90:[2,173],99:[2,173],101:[2,173],102:[2,173],103:[2,173],107:[2,173],115:[2,173],118:[2,173],123:[2,173],125:[2,173],126:[2,173],129:[2,173],130:[2,173],131:[2,173],132:[2,173],133:[2,173],134:[2,173]},{8:264,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:265,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{113:[2,152],114:[2,152]},{27:156,28:[1,71],56:157,57:158,73:[1,68],87:[1,112],112:266},{1:[2,158],6:[2,158],25:[2,158],26:[2,158],47:[2,158],52:[2,158],55:[2,158],70:[2,158],75:[2,158],83:[2,158],88:[2,158],90:[2,158],99:[2,158],100:85,101:[2,158],102:[1,267],103:[2,158],106:86,107:[2,158],108:67,115:[1,268],123:[2,158],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,159],6:[2,159],25:[2,159],26:[2,159],47:[2,159],52:[2,159],55:[2,159],70:[2,159],75:[2,159],83:[2,159],88:[2,159],90:[2,159],99:[2,159],100:85,101:[2,159],102:[1,269],103:[2,159],106:86,107:[2,159],108:67,115:[2,159],123:[2,159],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,271],25:[1,272],75:[1,270]},{6:[2,52],11:165,25:[2,52],26:[2,52],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:273,40:164,42:168,44:[1,46],75:[2,52],86:[1,111]},{8:274,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,275],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],38:[2,81],47:[2,81],52:[2,81],55:[2,81],64:[2,81],65:[2,81],66:[2,81],68:[2,81],70:[2,81],71:[2,81],75:[2,81],77:[2,81],81:[2,81],82:[2,81],83:[2,81],88:[2,81],90:[2,81],99:[2,81],101:[2,81],102:[2,81],103:[2,81],107:[2,81],115:[2,81],123:[2,81],125:[2,81],126:[2,81],127:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81]},{8:276,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,70:[2,116],73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{70:[2,117],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],47:[2,35],52:[2,35],55:[2,35],70:[2,35],75:[2,35],83:[2,35],88:[2,35],90:[2,35],99:[2,35],100:85,101:[2,35],102:[2,35],103:[2,35],106:86,107:[2,35],108:67,115:[2,35],123:[2,35],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,277],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,260],25:[1,261],83:[1,278]},{6:[2,63],25:[2,63],26:[2,63],52:[2,63],83:[2,63],88:[2,63]},{5:279,25:[1,5]},{47:[2,55],52:[2,55]},{47:[2,58],52:[2,58],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,280],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:281,25:[1,5],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{5:282,25:[1,5]},{1:[2,130],6:[2,130],25:[2,130],26:[2,130],47:[2,130],52:[2,130],55:[2,130],70:[2,130],75:[2,130],83:[2,130],88:[2,130],90:[2,130],99:[2,130],101:[2,130],102:[2,130],103:[2,130],107:[2,130],115:[2,130],123:[2,130],125:[2,130],126:[2,130],129:[2,130],130:[2,130],131:[2,130],132:[2,130],133:[2,130],134:[2,130]},{5:283,25:[1,5]},{26:[1,284],118:[1,285],119:252,120:[1,213]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],47:[2,167],52:[2,167],55:[2,167],70:[2,167],75:[2,167],83:[2,167],88:[2,167],90:[2,167],99:[2,167],101:[2,167],102:[2,167],103:[2,167],107:[2,167],115:[2,167],123:[2,167],125:[2,167],126:[2,167],129:[2,167],130:[2,167],131:[2,167],132:[2,167],133:[2,167],134:[2,167]},{5:286,25:[1,5]},{26:[2,170],118:[2,170],120:[2,170]},{5:287,25:[1,5],52:[1,288]},{25:[2,126],52:[2,126],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,94],6:[2,94],25:[2,94],26:[2,94],47:[2,94],52:[2,94],55:[2,94],70:[2,94],75:[2,94],83:[2,94],88:[2,94],90:[2,94],99:[2,94],101:[2,94],102:[2,94],103:[2,94],107:[2,94],115:[2,94],123:[2,94],125:[2,94],126:[2,94],129:[2,94],130:[2,94],131:[2,94],132:[2,94],133:[2,94],134:[2,94]},{1:[2,97],5:289,6:[2,97],25:[1,5],26:[2,97],47:[2,97],52:[2,97],55:[2,97],70:[2,97],75:[2,97],83:[2,97],88:[2,97],90:[2,97],99:[2,97],100:85,101:[1,63],102:[2,97],103:[1,64],106:86,107:[1,66],108:67,115:[2,97],123:[2,97],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{99:[1,290]},{88:[1,291],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],38:[2,111],47:[2,111],52:[2,111],55:[2,111],64:[2,111],65:[2,111],66:[2,111],68:[2,111],70:[2,111],71:[2,111],75:[2,111],81:[2,111],82:[2,111],83:[2,111],88:[2,111],90:[2,111],99:[2,111],101:[2,111],102:[2,111],103:[2,111],107:[2,111],113:[2,111],114:[2,111],115:[2,111],123:[2,111],125:[2,111],126:[2,111],129:[2,111],130:[2,111],131:[2,111],132:[2,111],133:[2,111],134:[2,111]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],91:292,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:197,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,144],27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,58:145,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],84:293,85:[1,56],86:[1,57],87:[1,55],91:143,93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[2,120],25:[2,120],26:[2,120],52:[2,120],83:[2,120],88:[2,120]},{6:[1,260],25:[1,261],26:[1,294]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],47:[2,137],52:[2,137],55:[2,137],70:[2,137],75:[2,137],83:[2,137],88:[2,137],90:[2,137],99:[2,137],100:85,101:[1,63],102:[2,137],103:[1,64],106:86,107:[1,66],108:67,115:[2,137],123:[2,137],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],47:[2,139],52:[2,139],55:[2,139],70:[2,139],75:[2,139],83:[2,139],88:[2,139],90:[2,139],99:[2,139],100:85,101:[1,63],102:[2,139],103:[1,64],106:86,107:[1,66],108:67,115:[2,139],123:[2,139],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{113:[2,157],114:[2,157]},{8:295,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:296,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:297,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],38:[2,85],47:[2,85],52:[2,85],55:[2,85],64:[2,85],65:[2,85],66:[2,85],68:[2,85],70:[2,85],71:[2,85],75:[2,85],81:[2,85],82:[2,85],83:[2,85],88:[2,85],90:[2,85],99:[2,85],101:[2,85],102:[2,85],103:[2,85],107:[2,85],113:[2,85],114:[2,85],115:[2,85],123:[2,85],125:[2,85],126:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85]},{11:165,27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:298,40:164,42:168,44:[1,46],86:[1,111]},{6:[2,86],11:165,25:[2,86],26:[2,86],27:166,28:[1,71],29:167,30:[1,69],31:[1,70],39:163,40:164,42:168,44:[1,46],52:[2,86],74:299,86:[1,111]},{6:[2,88],25:[2,88],26:[2,88],52:[2,88],75:[2,88]},{6:[2,38],25:[2,38],26:[2,38],52:[2,38],75:[2,38],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{8:300,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{70:[2,115],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],47:[2,36],52:[2,36],55:[2,36],70:[2,36],75:[2,36],83:[2,36],88:[2,36],90:[2,36],99:[2,36],101:[2,36],102:[2,36],103:[2,36],107:[2,36],115:[2,36],123:[2,36],125:[2,36],126:[2,36],129:[2,36],130:[2,36],131:[2,36],132:[2,36],133:[2,36],134:[2,36]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],47:[2,106],52:[2,106],55:[2,106],64:[2,106],65:[2,106],66:[2,106],68:[2,106],70:[2,106],71:[2,106],75:[2,106],81:[2,106],82:[2,106],83:[2,106],88:[2,106],90:[2,106],99:[2,106],101:[2,106],102:[2,106],103:[2,106],107:[2,106],115:[2,106],123:[2,106],125:[2,106],126:[2,106],129:[2,106],130:[2,106],131:[2,106],132:[2,106],133:[2,106],134:[2,106]},{1:[2,47],6:[2,47],25:[2,47],26:[2,47],47:[2,47],52:[2,47],55:[2,47],70:[2,47],75:[2,47],83:[2,47],88:[2,47],90:[2,47],99:[2,47],101:[2,47],102:[2,47],103:[2,47],107:[2,47],115:[2,47],123:[2,47],125:[2,47],126:[2,47],129:[2,47],130:[2,47],131:[2,47],132:[2,47],133:[2,47],134:[2,47]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],47:[2,195],52:[2,195],55:[2,195],70:[2,195],75:[2,195],83:[2,195],88:[2,195],90:[2,195],99:[2,195],101:[2,195],102:[2,195],103:[2,195],107:[2,195],115:[2,195],123:[2,195],125:[2,195],126:[2,195],129:[2,195],130:[2,195],131:[2,195],132:[2,195],133:[2,195],134:[2,195]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],47:[2,174],52:[2,174],55:[2,174],70:[2,174],75:[2,174],83:[2,174],88:[2,174],90:[2,174],99:[2,174],101:[2,174],102:[2,174],103:[2,174],107:[2,174],115:[2,174],118:[2,174],123:[2,174],125:[2,174],126:[2,174],129:[2,174],130:[2,174],131:[2,174],132:[2,174],133:[2,174],134:[2,174]},{1:[2,131],6:[2,131],25:[2,131],26:[2,131],47:[2,131],52:[2,131],55:[2,131],70:[2,131],75:[2,131],83:[2,131],88:[2,131],90:[2,131],99:[2,131],101:[2,131],102:[2,131],103:[2,131],107:[2,131],115:[2,131],123:[2,131],125:[2,131],126:[2,131],129:[2,131],130:[2,131],131:[2,131],132:[2,131],133:[2,131],134:[2,131]},{1:[2,132],6:[2,132],25:[2,132],26:[2,132],47:[2,132],52:[2,132],55:[2,132],70:[2,132],75:[2,132],83:[2,132],88:[2,132],90:[2,132],95:[2,132],99:[2,132],101:[2,132],102:[2,132],103:[2,132],107:[2,132],115:[2,132],123:[2,132],125:[2,132],126:[2,132],129:[2,132],130:[2,132],131:[2,132],132:[2,132],133:[2,132],134:[2,132]},{1:[2,165],6:[2,165],25:[2,165],26:[2,165],47:[2,165],52:[2,165],55:[2,165],70:[2,165],75:[2,165],83:[2,165],88:[2,165],90:[2,165],99:[2,165],101:[2,165],102:[2,165],103:[2,165],107:[2,165],115:[2,165],123:[2,165],125:[2,165],126:[2,165],129:[2,165],130:[2,165],131:[2,165],132:[2,165],133:[2,165],134:[2,165]},{5:301,25:[1,5]},{26:[1,302]},{6:[1,303],26:[2,171],118:[2,171],120:[2,171]},{8:304,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{1:[2,98],6:[2,98],25:[2,98],26:[2,98],47:[2,98],52:[2,98],55:[2,98],70:[2,98],75:[2,98],83:[2,98],88:[2,98],90:[2,98],99:[2,98],101:[2,98],102:[2,98],103:[2,98],107:[2,98],115:[2,98],123:[2,98],125:[2,98],126:[2,98],129:[2,98],130:[2,98],131:[2,98],132:[2,98],133:[2,98],134:[2,98]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],47:[2,135],52:[2,135],55:[2,135],64:[2,135],65:[2,135],66:[2,135],68:[2,135],70:[2,135],71:[2,135],75:[2,135],81:[2,135],82:[2,135],83:[2,135],88:[2,135],90:[2,135],99:[2,135],101:[2,135],102:[2,135],103:[2,135],107:[2,135],115:[2,135],123:[2,135],125:[2,135],126:[2,135],129:[2,135],130:[2,135],131:[2,135],132:[2,135],133:[2,135],134:[2,135]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],47:[2,114],52:[2,114],55:[2,114],64:[2,114],65:[2,114],66:[2,114],68:[2,114],70:[2,114],71:[2,114],75:[2,114],81:[2,114],82:[2,114],83:[2,114],88:[2,114],90:[2,114],99:[2,114],101:[2,114],102:[2,114],103:[2,114],107:[2,114],115:[2,114],123:[2,114],125:[2,114],126:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114]},{6:[2,121],25:[2,121],26:[2,121],52:[2,121],83:[2,121],88:[2,121]},{6:[2,51],25:[2,51],26:[2,51],51:305,52:[1,222]},{6:[2,122],25:[2,122],26:[2,122],52:[2,122],83:[2,122],88:[2,122]},{1:[2,160],6:[2,160],25:[2,160],26:[2,160],47:[2,160],52:[2,160],55:[2,160],70:[2,160],75:[2,160],83:[2,160],88:[2,160],90:[2,160],99:[2,160],100:85,101:[2,160],102:[2,160],103:[2,160],106:86,107:[2,160],108:67,115:[1,306],123:[2,160],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,162],6:[2,162],25:[2,162],26:[2,162],47:[2,162],52:[2,162],55:[2,162],70:[2,162],75:[2,162],83:[2,162],88:[2,162],90:[2,162],99:[2,162],100:85,101:[2,162],102:[1,307],103:[2,162],106:86,107:[2,162],108:67,115:[2,162],123:[2,162],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,161],6:[2,161],25:[2,161],26:[2,161],47:[2,161],52:[2,161],55:[2,161],70:[2,161],75:[2,161],83:[2,161],88:[2,161],90:[2,161],99:[2,161],100:85,101:[2,161],102:[2,161],103:[2,161],106:86,107:[2,161],108:67,115:[2,161],123:[2,161],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,89],25:[2,89],26:[2,89],52:[2,89],75:[2,89]},{6:[2,51],25:[2,51],26:[2,51],51:308,52:[1,232]},{26:[1,309],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{26:[1,310]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],47:[2,168],52:[2,168],55:[2,168],70:[2,168],75:[2,168],83:[2,168],88:[2,168],90:[2,168],99:[2,168],101:[2,168],102:[2,168],103:[2,168],107:[2,168],115:[2,168],123:[2,168],125:[2,168],126:[2,168],129:[2,168],130:[2,168],131:[2,168],132:[2,168],133:[2,168],134:[2,168]},{26:[2,172],118:[2,172],120:[2,172]},{25:[2,127],52:[2,127],100:85,101:[1,63],103:[1,64],106:86,107:[1,66],108:67,123:[1,84],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[1,260],25:[1,261],26:[1,311]},{8:312,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{8:313,9:115,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:60,28:[1,71],29:49,30:[1,69],31:[1,70],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:23,42:61,43:[1,45],44:[1,46],45:[1,29],48:30,49:[1,58],50:[1,59],56:47,57:48,59:36,61:25,62:26,63:27,73:[1,68],76:[1,43],80:[1,28],85:[1,56],86:[1,57],87:[1,55],93:[1,38],97:[1,44],98:[1,54],100:39,101:[1,63],103:[1,64],104:40,105:[1,65],106:41,107:[1,66],108:67,116:[1,42],121:37,122:[1,62],124:[1,31],125:[1,32],126:[1,33],127:[1,34],128:[1,35]},{6:[1,271],25:[1,272],26:[1,314]},{6:[2,39],25:[2,39],26:[2,39],52:[2,39],75:[2,39]},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],47:[2,166],52:[2,166],55:[2,166],70:[2,166],75:[2,166],83:[2,166],88:[2,166],90:[2,166],99:[2,166],101:[2,166],102:[2,166],103:[2,166],107:[2,166],115:[2,166],123:[2,166],125:[2,166],126:[2,166],129:[2,166],130:[2,166],131:[2,166],132:[2,166],133:[2,166],134:[2,166]},{6:[2,123],25:[2,123],26:[2,123],52:[2,123],83:[2,123],88:[2,123]},{1:[2,163],6:[2,163],25:[2,163],26:[2,163],47:[2,163],52:[2,163],55:[2,163],70:[2,163],75:[2,163],83:[2,163],88:[2,163],90:[2,163],99:[2,163],100:85,101:[2,163],102:[2,163],103:[2,163],106:86,107:[2,163],108:67,115:[2,163],123:[2,163],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{1:[2,164],6:[2,164],25:[2,164],26:[2,164],47:[2,164],52:[2,164],55:[2,164],70:[2,164],75:[2,164],83:[2,164],88:[2,164],90:[2,164],99:[2,164],100:85,101:[2,164],102:[2,164],103:[2,164],106:86,107:[2,164],108:67,115:[2,164],123:[2,164],125:[1,78],126:[1,77],129:[1,76],130:[1,79],131:[1,80],132:[1,81],133:[1,82],134:[1,83]},{6:[2,90],25:[2,90],26:[2,90],52:[2,90],75:[2,90]}], -defaultActions: {58:[2,49],59:[2,50],73:[2,3],92:[2,104],186:[2,84]}, -parseError: function parseError(str, hash) { - throw new Error(str); -}, -parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - if (typeof this.lexer.yylloc == "undefined") - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - if (typeof this.yy.parseError === "function") - this.parseError = this.yy.parseError; - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - function lex() { - var token; - token = self.lexer.lex() || 1; - if (typeof token !== "number") { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol == null) - symbol = lex(); - action = table[state] && table[state][symbol]; - } - if (typeof action === "undefined" || !action.length || !action[0]) { - if (!recovering) { - expected = []; - for (p in table[state]) - if (this.terminals_[p] && p > 2) { - expected.push("'" + this.terminals_[p] + "'"); - } - var errStr = ""; - if (this.lexer.showPosition) { - errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'"; - } else { - errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); - } - this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - if (typeof r !== "undefined") { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -} -}; -return parser; -})(); -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); } -exports.main = function commonjsMain(args) { - if (!args[1]) - throw new Error('Usage: '+args[0]+' FILE'); - if (typeof process !== 'undefined') { - var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); - } else { - var cwd = require("file").path(require("file").cwd()); - var source = cwd.join(args[1]).read({charset: "utf-8"}); - } - return exports.parser.parse(source); -} -if (typeof module !== 'undefined' && require.main === module) { - exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); -} -}}, "coffee-script/repl": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var ACCESSOR, CoffeeScript, Module, REPL_PROMPT, REPL_PROMPT_CONTINUATION, REPL_PROMPT_MULTILINE, SIMPLEVAR, Script, autocomplete, backlog, completeAttribute, completeVariable, enableColours, error, getCompletions, inspect, multilineMode, pipedInput, readline, repl, run, stdin, stdout; - - stdin = process.openStdin(); - - stdout = process.stdout; - - CoffeeScript = require('./coffee-script'); - - readline = require('readline'); - - inspect = require('util').inspect; - - Script = require('vm').Script; - - Module = require('module'); - - REPL_PROMPT = 'coffee> '; - - REPL_PROMPT_MULTILINE = '------> '; - - REPL_PROMPT_CONTINUATION = '......> '; - - enableColours = false; - - if (process.platform !== 'win32') { - enableColours = !process.env.NODE_DISABLE_COLORS; - } - - error = function(err) { - return stdout.write((err.stack || err.toString()) + '\n'); - }; - - ACCESSOR = /\s*([\w\.]+)(?:\.(\w*))$/; - - SIMPLEVAR = /(\w+)$/i; - - autocomplete = function(text) { - return completeAttribute(text) || completeVariable(text) || [[], text]; - }; - - completeAttribute = function(text) { - var all, completions, match, obj, prefix, val; - if (match = text.match(ACCESSOR)) { - all = match[0], obj = match[1], prefix = match[2]; - try { - val = Script.runInThisContext(obj); - } catch (error) { - return; - } - completions = getCompletions(prefix, Object.getOwnPropertyNames(Object(val))); - return [completions, prefix]; - } - }; - - completeVariable = function(text) { - var completions, free, keywords, possibilities, r, vars, _ref; - free = (_ref = text.match(SIMPLEVAR)) != null ? _ref[1] : void 0; - if (text === "") { - free = ""; - } - if (free != null) { - vars = Script.runInThisContext('Object.getOwnPropertyNames(Object(this))'); - keywords = (function() { - var _i, _len, _ref1, _results; - _ref1 = CoffeeScript.RESERVED; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - r = _ref1[_i]; - if (r.slice(0, 2) !== '__') { - _results.push(r); - } - } - return _results; - })(); - possibilities = vars.concat(keywords); - completions = getCompletions(free, possibilities); - return [completions, free]; - } - }; - - getCompletions = function(prefix, candidates) { - var el, _i, _len, _results; - _results = []; - for (_i = 0, _len = candidates.length; _i < _len; _i++) { - el = candidates[_i]; - if (el.indexOf(prefix) === 0) { - _results.push(el); - } - } - return _results; - }; - - process.on('uncaughtException', error); - - backlog = ''; - - run = function(buffer) { - var code, returnValue, _; - buffer = buffer.replace(/[\r\n]+$/, ""); - if (multilineMode) { - backlog += "" + buffer + "\n"; - repl.setPrompt(REPL_PROMPT_CONTINUATION); - repl.prompt(); - return; - } - if (!buffer.toString().trim() && !backlog) { - repl.prompt(); - return; - } - code = backlog += buffer; - if (code[code.length - 1] === '\\') { - backlog = "" + backlog.slice(0, -1) + "\n"; - repl.setPrompt(REPL_PROMPT_CONTINUATION); - repl.prompt(); - return; - } - repl.setPrompt(REPL_PROMPT); - backlog = ''; - try { - _ = global._; - returnValue = CoffeeScript["eval"]("_=(undefined\n;" + code + "\n)", { - filename: 'repl', - modulename: 'repl' - }); - if (returnValue === void 0) { - global._ = _; - } - repl.output.write("" + (inspect(returnValue, false, 2, enableColours)) + "\n"); - } catch (err) { - error(err); - } - return repl.prompt(); - }; - - if (stdin.readable) { - pipedInput = ''; - repl = { - prompt: function() { - return stdout.write(this._prompt); - }, - setPrompt: function(p) { - return this._prompt = p; - }, - input: stdin, - output: stdout, - on: function() {} - }; - stdin.on('data', function(chunk) { - return pipedInput += chunk; - }); - stdin.on('end', function() { - var line, _i, _len, _ref; - _ref = pipedInput.trim().split("\n"); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - line = _ref[_i]; - stdout.write("" + line + "\n"); - run(line); - } - stdout.write('\n'); - return process.exit(0); - }); - } else { - if (readline.createInterface.length < 3) { - repl = readline.createInterface(stdin, autocomplete); - stdin.on('data', function(buffer) { - return repl.write(buffer); - }); - } else { - repl = readline.createInterface(stdin, stdout, autocomplete); - } - } - - multilineMode = false; - - repl.input.on('keypress', function(char, key) { - var cursorPos, newPrompt; - if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'v')) { - return; - } - cursorPos = repl.cursor; - repl.output.cursorTo(0); - repl.output.clearLine(1); - multilineMode = !multilineMode; - if (!multilineMode && backlog) { - repl._line(); - } - backlog = ''; - repl.setPrompt((newPrompt = multilineMode ? REPL_PROMPT_MULTILINE : REPL_PROMPT)); - repl.prompt(); - return repl.output.cursorTo(newPrompt.length + (repl.cursor = cursorPos)); - }); - - repl.input.on('keypress', function(char, key) { - if (!(multilineMode && repl.line)) { - return; - } - if (!(key && key.ctrl && !key.meta && !key.shift && key.name === 'd')) { - return; - } - multilineMode = false; - return repl._line(); - }); - - repl.on('attemptClose', function() { - if (multilineMode) { - multilineMode = false; - repl.output.cursorTo(0); - repl.output.clearLine(1); - repl._onLine(repl.line); - return; - } - if (backlog) { - backlog = ''; - repl.output.write('\n'); - repl.setPrompt(REPL_PROMPT); - return repl.prompt(); - } else { - return repl.close(); - } - }); - - repl.on('close', function() { - repl.output.write('\n'); - return repl.input.destroy(); - }); - - repl.on('line', run); - - repl.setPrompt(REPL_PROMPT); - - repl.prompt(); - -}).call(this); -}, "coffee-script/rewriter": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_BLOCK, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, left, rite, _i, _len, _ref, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, - __slice = [].slice; - - exports.Rewriter = (function() { - - Rewriter.name = 'Rewriter'; - - function Rewriter() {} - - Rewriter.prototype.rewrite = function(tokens) { - this.tokens = tokens; - this.removeLeadingNewlines(); - this.removeMidExpressionNewlines(); - this.closeOpenCalls(); - this.closeOpenIndexes(); - this.addImplicitIndentation(); - this.tagPostfixConditionals(); - this.addImplicitBraces(); - this.addImplicitParentheses(); - return this.tokens; - }; - - Rewriter.prototype.scanTokens = function(block) { - var i, token, tokens; - tokens = this.tokens; - i = 0; - while (token = tokens[i]) { - i += block.call(this, token, i, tokens); - } - return true; - }; - - Rewriter.prototype.detectEnd = function(i, condition, action) { - var levels, token, tokens, _ref, _ref1; - tokens = this.tokens; - levels = 0; - while (token = tokens[i]) { - if (levels === 0 && condition.call(this, token, i)) { - return action.call(this, token, i); - } - if (!token || levels < 0) { - return action.call(this, token, i - 1); - } - if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) { - levels += 1; - } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) { - levels -= 1; - } - i += 1; - } - return i - 1; - }; - - Rewriter.prototype.removeLeadingNewlines = function() { - var i, tag, _i, _len, _ref; - _ref = this.tokens; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - tag = _ref[i][0]; - if (tag !== 'TERMINATOR') { - break; - } - } - if (i) { - return this.tokens.splice(0, i); - } - }; - - Rewriter.prototype.removeMidExpressionNewlines = function() { - return this.scanTokens(function(token, i, tokens) { - var _ref; - if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) { - return 1; - } - tokens.splice(i, 1); - return 0; - }); - }; - - Rewriter.prototype.closeOpenCalls = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')'; - }; - action = function(token, i) { - return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'CALL_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.closeOpenIndexes = function() { - var action, condition; - condition = function(token, i) { - var _ref; - return (_ref = token[0]) === ']' || _ref === 'INDEX_END'; - }; - action = function(token, i) { - return token[0] = 'INDEX_END'; - }; - return this.scanTokens(function(token, i) { - if (token[0] === 'INDEX_START') { - this.detectEnd(i + 1, condition, action); - } - return 1; - }); - }; - - Rewriter.prototype.addImplicitBraces = function() { - var action, condition, sameLine, stack, start, startIndent, startsLine; - stack = []; - start = null; - startsLine = null; - sameLine = true; - startIndent = 0; - condition = function(token, i) { - var one, tag, three, two, _ref, _ref1; - _ref = this.tokens.slice(i + 1, (i + 3) + 1 || 9e9), one = _ref[0], two = _ref[1], three = _ref[2]; - if ('HERECOMMENT' === (one != null ? one[0] : void 0)) { - return false; - } - tag = token[0]; - if (__indexOf.call(LINEBREAKS, tag) >= 0) { - sameLine = false; - } - return (((tag === 'TERMINATOR' || tag === 'OUTDENT') || (__indexOf.call(IMPLICIT_END, tag) >= 0 && sameLine)) && ((!startsLine && this.tag(i - 1) !== ',') || !((two != null ? two[0] : void 0) === ':' || (one != null ? one[0] : void 0) === '@' && (three != null ? three[0] : void 0) === ':'))) || (tag === ',' && one && ((_ref1 = one[0]) !== 'IDENTIFIER' && _ref1 !== 'NUMBER' && _ref1 !== 'STRING' && _ref1 !== '@' && _ref1 !== 'TERMINATOR' && _ref1 !== 'OUTDENT')); - }; - action = function(token, i) { - var tok; - tok = this.generate('}', '}', token[2]); - return this.tokens.splice(i, 0, tok); - }; - return this.scanTokens(function(token, i, tokens) { - var ago, idx, prevTag, tag, tok, value, _ref, _ref1; - if (_ref = (tag = token[0]), __indexOf.call(EXPRESSION_START, _ref) >= 0) { - stack.push([(tag === 'INDENT' && this.tag(i - 1) === '{' ? '{' : tag), i]); - return 1; - } - if (__indexOf.call(EXPRESSION_END, tag) >= 0) { - start = stack.pop(); - return 1; - } - if (!(tag === ':' && ((ago = this.tag(i - 2)) === ':' || ((_ref1 = stack[stack.length - 1]) != null ? _ref1[0] : void 0) !== '{'))) { - return 1; - } - sameLine = true; - stack.push(['{']); - idx = ago === '@' ? i - 2 : i - 1; - while (this.tag(idx - 2) === 'HERECOMMENT') { - idx -= 2; - } - prevTag = this.tag(idx - 1); - startsLine = !prevTag || (__indexOf.call(LINEBREAKS, prevTag) >= 0); - value = new String('{'); - value.generated = true; - tok = this.generate('{', value, token[2]); - tokens.splice(idx, 0, tok); - this.detectEnd(i + 2, condition, action); - return 2; - }); - }; - - Rewriter.prototype.addImplicitParentheses = function() { - var action, condition, noCall, seenControl, seenSingle; - noCall = seenSingle = seenControl = false; - condition = function(token, i) { - var post, tag, _ref, _ref1; - tag = token[0]; - if (!seenSingle && token.fromThen) { - return true; - } - if (tag === 'IF' || tag === 'ELSE' || tag === 'CATCH' || tag === '->' || tag === '=>' || tag === 'CLASS') { - seenSingle = true; - } - if (tag === 'IF' || tag === 'ELSE' || tag === 'SWITCH' || tag === 'TRY' || tag === '=') { - seenControl = true; - } - if ((tag === '.' || tag === '?.' || tag === '::') && this.tag(i - 1) === 'OUTDENT') { - return true; - } - return !token.generated && this.tag(i - 1) !== ',' && (__indexOf.call(IMPLICIT_END, tag) >= 0 || (tag === 'INDENT' && !seenControl)) && (tag !== 'INDENT' || (((_ref = this.tag(i - 2)) !== 'CLASS' && _ref !== 'EXTENDS') && (_ref1 = this.tag(i - 1), __indexOf.call(IMPLICIT_BLOCK, _ref1) < 0) && !((post = this.tokens[i + 1]) && post.generated && post[0] === '{'))); - }; - action = function(token, i) { - return this.tokens.splice(i, 0, this.generate('CALL_END', ')', token[2])); - }; - return this.scanTokens(function(token, i, tokens) { - var callObject, current, next, prev, tag, _ref, _ref1, _ref2; - tag = token[0]; - if (tag === 'CLASS' || tag === 'IF' || tag === 'FOR' || tag === 'WHILE') { - noCall = true; - } - _ref = tokens.slice(i - 1, (i + 1) + 1 || 9e9), prev = _ref[0], current = _ref[1], next = _ref[2]; - callObject = !noCall && tag === 'INDENT' && next && next.generated && next[0] === '{' && prev && (_ref1 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref1) >= 0); - seenSingle = false; - seenControl = false; - if (__indexOf.call(LINEBREAKS, tag) >= 0) { - noCall = false; - } - if (prev && !prev.spaced && tag === '?') { - token.call = true; - } - if (token.fromThen) { - return 1; - } - if (!(callObject || (prev != null ? prev.spaced : void 0) && (prev.call || (_ref2 = prev[0], __indexOf.call(IMPLICIT_FUNC, _ref2) >= 0)) && (__indexOf.call(IMPLICIT_CALL, tag) >= 0 || !(token.spaced || token.newLine) && __indexOf.call(IMPLICIT_UNSPACED_CALL, tag) >= 0))) { - return 1; - } - tokens.splice(i, 0, this.generate('CALL_START', '(', token[2])); - this.detectEnd(i + 1, condition, action); - if (prev[0] === '?') { - prev[0] = 'FUNC_EXIST'; - } - return 2; - }); - }; - - Rewriter.prototype.addImplicitIndentation = function() { - var action, condition, indent, outdent, starter; - starter = indent = outdent = null; - condition = function(token, i) { - var _ref; - return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && (starter !== 'IF' && starter !== 'THEN')); - }; - action = function(token, i) { - return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent); - }; - return this.scanTokens(function(token, i, tokens) { - var tag, _ref, _ref1; - tag = token[0]; - if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') { - tokens.splice(i, 1); - return 0; - } - if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') { - tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation(token)))); - return 2; - } - if (tag === 'CATCH' && ((_ref = this.tag(i + 2)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) { - tokens.splice.apply(tokens, [i + 2, 0].concat(__slice.call(this.indentation(token)))); - return 4; - } - if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) { - starter = tag; - _ref1 = this.indentation(token, true), indent = _ref1[0], outdent = _ref1[1]; - if (starter === 'THEN') { - indent.fromThen = true; - } - tokens.splice(i + 1, 0, indent); - this.detectEnd(i + 2, condition, action); - if (tag === 'THEN') { - tokens.splice(i, 1); - } - return 1; - } - return 1; - }); - }; - - Rewriter.prototype.tagPostfixConditionals = function() { - var action, condition, original; - original = null; - condition = function(token, i) { - var _ref; - return (_ref = token[0]) === 'TERMINATOR' || _ref === 'INDENT'; - }; - action = function(token, i) { - if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) { - return original[0] = 'POST_' + original[0]; - } - }; - return this.scanTokens(function(token, i) { - if (token[0] !== 'IF') { - return 1; - } - original = token; - this.detectEnd(i + 1, condition, action); - return 1; - }); - }; - - Rewriter.prototype.indentation = function(token, implicit) { - var indent, outdent; - if (implicit == null) { - implicit = false; - } - indent = ['INDENT', 2, token[2]]; - outdent = ['OUTDENT', 2, token[2]]; - if (implicit) { - indent.generated = outdent.generated = true; - } - return [indent, outdent]; - }; - - Rewriter.prototype.generate = function(tag, value, line) { - var tok; - tok = [tag, value, line]; - tok.generated = true; - return tok; - }; - - Rewriter.prototype.tag = function(i) { - var _ref; - return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; - }; - - return Rewriter; - - })(); - - BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']]; - - exports.INVERSES = INVERSES = {}; - - EXPRESSION_START = []; - - EXPRESSION_END = []; - - for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) { - _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1]; - EXPRESSION_START.push(INVERSES[rite] = left); - EXPRESSION_END.push(INVERSES[left] = rite); - } - - EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END); - - IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']; - - IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'UNARY', 'SUPER', '@', '->', '=>', '[', '(', '{', '--', '++']; - - IMPLICIT_UNSPACED_CALL = ['+', '-']; - - IMPLICIT_BLOCK = ['->', '=>', '{', '[', ',']; - - IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR']; - - SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN']; - - SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN']; - - LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT']; - -}).call(this); -}, "coffee-script/scope": function(exports, require, module) {// Generated by CoffeeScript 1.3.1 -(function() { - var Scope, extend, last, _ref; - - _ref = require('./helpers'), extend = _ref.extend, last = _ref.last; - - exports.Scope = Scope = (function() { - - Scope.name = 'Scope'; - - Scope.root = null; - - function Scope(parent, expressions, method) { - this.parent = parent; - this.expressions = expressions; - this.method = method; - this.variables = [ - { - name: 'arguments', - type: 'arguments' - } - ]; - this.positions = {}; - if (!this.parent) { - Scope.root = this; - } - } - - Scope.prototype.add = function(name, type, immediate) { - if (this.shared && !immediate) { - return this.parent.add(name, type, immediate); - } - if (Object.prototype.hasOwnProperty.call(this.positions, name)) { - return this.variables[this.positions[name]].type = type; - } else { - return this.positions[name] = this.variables.push({ - name: name, - type: type - }) - 1; - } - }; - - Scope.prototype.find = function(name, options) { - if (this.check(name, options)) { - return true; - } - this.add(name, 'var'); - return false; - }; - - Scope.prototype.parameter = function(name) { - if (this.shared && this.parent.check(name, true)) { - return; - } - return this.add(name, 'param'); - }; - - Scope.prototype.check = function(name, immediate) { - var found, _ref1; - found = !!this.type(name); - if (found || immediate) { - return found; - } - return !!((_ref1 = this.parent) != null ? _ref1.check(name) : void 0); - }; - - Scope.prototype.temporary = function(name, index) { - if (name.length > 1) { - return '_' + name + (index > 1 ? index - 1 : ''); - } else { - return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a'); - } - }; - - Scope.prototype.type = function(name) { - var v, _i, _len, _ref1; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.name === name) { - return v.type; - } - } - return null; - }; - - Scope.prototype.freeVariable = function(name, reserve) { - var index, temp; - if (reserve == null) { - reserve = true; - } - index = 0; - while (this.check((temp = this.temporary(name, index)))) { - index++; - } - if (reserve) { - this.add(temp, 'var', true); - } - return temp; - }; - - Scope.prototype.assign = function(name, value) { - this.add(name, { - value: value, - assigned: true - }, true); - return this.hasAssignments = true; - }; - - Scope.prototype.hasDeclarations = function() { - return !!this.declaredVariables().length; - }; - - Scope.prototype.declaredVariables = function() { - var realVars, tempVars, v, _i, _len, _ref1; - realVars = []; - tempVars = []; - _ref1 = this.variables; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type === 'var') { - (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name); - } - } - return realVars.sort().concat(tempVars.sort()); - }; - - Scope.prototype.assignedVariables = function() { - var v, _i, _len, _ref1, _results; - _ref1 = this.variables; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - if (v.type.assigned) { - _results.push("" + v.name + " = " + v.type.value); - } - } - return _results; - }; - - return Scope; - - })(); - -}).call(this); -}, "command_line": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - var compile, fs, getCommonHeadersJs, getVersionNumber, path, program, recurseRun, run, view, _ref; - - fs = require('fs'); - - path = require('path'); - - _ref = require('../lib/view'), view = _ref.view, getCommonHeadersJs = _ref.getCommonHeadersJs; - - program = require('commander'); - - getVersionNumber = function() { - var o, p; - p = fs.readFileSync("" + __dirname + "/../package.json", "utf8"); - o = JSON.parse(p); - return o.version; - }; - - program.on('--help', function() { - return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); - }); - - program.version(getVersionNumber()).option('-o, --output', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); - - compile = function(start_path, path) { - /* - e.g., if start_path is /foo/bar - and path is /foo/bar/car/thing.toffee - */ - - var source, v; - source = fs.readFileSync(path, 'utf8'); - v = new view(source, { - fileName: path, - bundlePath: path.slice(start_path.length), - browserMode: true - }); - return v._toJavaScript(); - }; - - recurseRun = function(start_path, curr_path, out_text) { - var file, files, stats, sub_path, sub_stats, _i, _len; - stats = fs.statSync(curr_path); - if (stats.isDirectory()) { - files = fs.readdirSync(curr_path); - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - sub_path = path.normalize("" + curr_path + "/" + file); - if (file.match(/\.toffee$/)) { - out_text = recurseRun(start_path, sub_path, out_text); - } else if (!(file === '.' || file === '..')) { - sub_stats = fs.statSync(sub_path); - if (sub_stats.isDirectory()) { - out_text = recurseRun(start_path, sub_path, out_text); - } - } - } - } else { - out_text += compile(start_path, curr_path); - } - return out_text; - }; - - run = exports.run = function() { - var out_text, start_path; - if (program.args.length !== 1) { - console.log("Unexpected input. toffee --help for examples"); - return process.exit(1); - } else { - try { - start_path = fs.realpathSync(program.args[0]); - } catch (e) { - console.log("Input file/path not found. toffee --help for examples"); - process.exit(1); - } - start_path = path.normalize(start_path); - out_text = recurseRun(start_path, start_path, ""); - out_text = getCommonHeadersJs() + out_text; - return console.log(out_text); - } - }; - - if (require.main === module) { - run(); - } - -}).call(this); -}, "consts": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - - exports.states = { - TOFFEE: 1, - COFFEE: 2 - }; - - exports.TAB_SPACES = 2; - -}).call(this); -}, "engine": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - var engine, fs, path, states, util, utils, view, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; - - view = require('./view').view; - - states = require('./consts').states; - - utils = require('./utils'); - - fs = require('fs'); - - path = require('path'); - - util = require('util'); - - engine = (function() { - - function engine(options) { - this._fn_partial = __bind(this._fn_partial, this); - - this._fn_snippet = __bind(this._fn_snippet, this); - - this._inlineInclude = __bind(this._inlineInclude, this); - - this.run = __bind(this.run, this); - options = options || {}; - this.verbose = options.verbose || false; - this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; - this.viewCache = {}; - } - - engine.prototype._log = function(o) { - var _ref; - if (this.verbose) { - if ((_ref = typeof o) === "string" || _ref === "number" || _ref === "boolean") { - return console.log("toffee: " + o); - } else { - return console.log("toffee: " + (util.inspect(o))); - } - } - }; - - engine.prototype.run = function(filename, options, cb) { - /* - "options" contains the pub vars and may contain special items: - layout: path to a template expecting a body var (express 2.x style, but for use with express 3.x) - __toffee.dir: path to look relative to - __toffee.parent: parent file - __toffee.noInheritance: if true, don't pass variables through unless explicitly passed - __toffee.autoEscape: if set as false, don't escape output of #{} vars by default - */ - - var err, res, _ref, _ref1, _ref2, _ref3; - _ref = this.runSync(filename, options), err = _ref[0], res = _ref[1]; - if (err && this.prettyPrintErrors) { - _ref1 = [null, err], err = _ref1[0], res = _ref1[1]; - } - if ((!err) && (options != null ? options.layout : void 0)) { - options.body = res; - _ref2 = this.runSync(options.layout, options), err = _ref2[0], res = _ref2[1]; - if (err && this.prettyPrintErrors) { - _ref3 = [null, err], err = _ref3[0], res = _ref3[1]; - } - } - return cb(err, res); - }; - - engine.prototype.runSync = function(filename, options) { - /* - "options" the same as run() above - */ - - var err, pwd, realpath, res, start_time, v, _ref, _ref1, - _this = this; - start_time = Date.now(); - options = options || {}; - options.__toffee = options.__toffee || {}; - options.__toffee.dir = options.__toffee.dir || process.cwd(); - filename = filename[0] !== "/" ? "" + options.__toffee.dir + "/" + filename : filename; - realpath = path.normalize(filename); - pwd = path.dirname(realpath); - v = this.viewCache[realpath] || this._loadCacheAndMonitor(realpath, options); - if (v) { - options.__toffee.parent = realpath; - options.partial = options.partial || function(fname, lvars) { - return _this._fn_partial(fname, lvars, realpath, options); - }; - options.snippet = options.snippet || function(fname, lvars) { - return _this._fn_snippet(fname, lvars, realpath, options); - }; - options.print = options.print || function(txt) { - return _this._fn_print(txt, options); - }; - if (!(options.console != null)) { - options.console = { - log: console.log - }; - } - _ref = v.run(options), err = _ref[0], res = _ref[1]; - } else { - _ref1 = ["Couldn't load " + realpath, null], err = _ref1[0], res = _ref1[1]; - } - this._log("" + realpath + " run in " + (Date.now() - start_time) + "ms"); - return [err, res]; - }; - - engine.prototype._inlineInclude = function(filename, local_vars, parent_realpath, parent_options) { - var err, k, options, res, v, _ref; - options = local_vars || {}; - options.__toffee = options.__toffee || {}; - options.__toffee.dir = path.dirname(parent_realpath); - options.__toffee.parent = parent_realpath; - if (!options.__toffee.noInheritance) { - for (k in parent_options) { - v = parent_options[k]; - if (!((local_vars != null ? local_vars[k] : void 0) != null)) { - if (!(k === "print" || k === "partial" || k === "snippet" || k === "layout" || k === "__toffee")) { - options[k] = v; - } - } - } - } - _ref = this.runSync(filename, options), err = _ref[0], res = _ref[1]; - return err || res; - }; - - engine.prototype._fn_snippet = function(fname, lvars, realpath, options) { - lvars = lvars != null ? lvars : {}; - lvars.__toffee = lvars.__toffee || {}; - lvars.__toffee.noInheritance = true; - return this._inlineInclude(fname, lvars, realpath, options); - }; - - engine.prototype._fn_partial = function(fname, lvars, realpath, options) { - return this._inlineInclude(fname, lvars, realpath, options); - }; - - engine.prototype._fn_print = function(txt, options) { - if (options.__toffee.state === states.COFFEE) { - options.__toffee.out.push(txt); - return ''; - } else { - return txt; - } - }; - - engine.prototype._loadCacheAndMonitor = function(filename, options) { - var txt, v, view_options, _ref; - try { - txt = fs.readFileSync(filename, 'utf8'); - } catch (e) { - txt = "Error: Could not read " + filename; - if (((_ref = options.__toffee) != null ? _ref.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } - } - view_options = { - fileName: filename, - verbose: this.verbose, - prettyPrintErrors: this.prettyPrintErrors - }; - v = new view(txt, view_options); - this.viewCache[filename] = v; - this._monitorForChanges(filename, options); - return v; - }; - - engine.prototype._monitorForChanges = function(filename, options) { - /* - we must continuously unwatch/rewatch because some editors/systems invoke a "rename" - event and we'll end up following the wrong, old 'file' as a new one - is dropped in its place. - */ - - var fsw, - _this = this; - fsw = null; - return fsw = fs.watch(filename, { - persistent: true - }, function(change) { - fsw.close(); - _this._log("Got an fs.watch hit on " + filename); - return fs.readFile(filename, 'utf8', function(err, txt) { - var v, view_options, _ref; - _this._monitorForChanges(filename, options); - if (txt !== _this.viewCache[filename].txt) { - if (err) { - txt = "Error: Could not read " + filename + " after fs.watch() hit."; - if (((_ref = options.__toffee) != null ? _ref.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } - } - view_options = { - fileName: filename, - verbose: _this.verbose, - prettyPrintErrors: _this.prettyPrintErrors, - cb: function(v) { - _this._log("" + filename + " updated and ready"); - return _this.viewCache[filename] = v; - } - }; - return v = new view(txt, view_options); - } - }); - }); - }; - - return engine; - - })(); - - exports.engine = engine; - -}).call(this); -}, "errorHandler": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - var eh, errorTypes, path, toffeeError, util, _ppEscape; - - path = require("path"); - - util = require("util"); - - errorTypes = exports.errorTypes = { - PARSER: 0, - STR_INTERPOLATE: 1, - COFFEE_COMPILE: 2, - RUNTIME: 3 - }; - - toffeeError = (function() { - - function toffeeError(view, err_type, e) { - this.errType = err_type; - this.view = view; - this.e = e; - this.toffeeSrc = view.txt; - switch (this.errType) { - case errorTypes.PARSER: - this.offensiveSrc = this.toffeeSrc; - break; - case errorTypes.STR_INTERPOLATE: - this.offensiveSrc = this.toffeeSrc; - break; - case errorTypes.COFFEE_COMPILE: - this.offensiveSrc = this.view.coffeeScript; - break; - case errorTypes.RUNTIME: - this.offensiveSrc = this.view.javaScript; - } - this.toffeeSrcLines = this.toffeeSrc.split("\n"); - this.offensiveSrcLines = this.offensiveSrc.split("\n"); - } - - toffeeError.prototype.getConvertedError = function() { - /* -------------------------------------- - returns a JS style error, but with some extras - { - stack: array of lines - message: error message - line_range: line range in the toffee file - filename: filename, if available; or null - ...etc... - } - ------------------------------------------ - */ - - var line, res, _ref; - res = { - stack: [], - message: "", - type: this.errType, - full_path: this.view.fileName, - dir_name: path.dirname(this.view.fileName), - file: path.basename(this.view.fileName), - line_range: [0, 0] - }; - if (((_ref = this.e) != null ? _ref.message : void 0) != null) { - res.message = this.e.message; - } - switch (this.errType) { - case errorTypes.PARSER: - line = this._extractOffensiveLineNo(this.e.message, /on line ([0-9]+)/); - res.line_range = [line, line + 1]; - break; - case errorTypes.STR_INTERPOLATE: - res.line_range = [this.e.relayed_line_range[0], this.e.relayed_line_range[1]]; - res.message = res.message.replace('starting on line NaN', this._lineRangeToPhrase(res.line_range)); - res.message = res.message.replace('missing }', 'unclosed `\#{}`'); - break; - case errorTypes.COFFEE_COMPILE: - line = this._extractOffensiveLineNo(this.e.message, /on line ([0-9]+)/); - res.line_range = this._convertOffensiveLineToToffeeRange(line); - res.message = res.message.replace(/on line [0-9]+/, this._lineRangeToPhrase(res.line_range)); - break; - case errorTypes.RUNTIME: - if (this.e.stack) { - res.stack = this.e.stack.split("\n"); - this._convertRuntimeStackLines(res); - } - } - return res; - }; - - toffeeError.prototype._convertRuntimeStackLines = function(converted_err) { - /* - a little more complicated, so extracted. Returns an array - of dictionaries where there's extra info on each line in the stack. - */ - - var at_pub_call, hit_pub_yet, i, in_src_file, line, lineno, lrange, m, rxx_inline, rxx_pub, stack, _i, _len, _results; - hit_pub_yet = false; - stack = converted_err.stack; - _results = []; - for (i = _i = 0, _len = stack.length; _i < _len; i = ++_i) { - line = stack[i]; - rxx_pub = /Object[\.]pub[\s]\(undefined\:([0-9]+)\:[0-9]+/; - m = line.match(rxx_pub); - in_src_file = false; - lrange = [null, null]; - at_pub_call = false; - if ((m != null ? m.length : void 0) >= 2) { - line = line.replace("undefined", converted_err.full_path); - lineno = this._extractOffensiveLineNo(line, /([0-9]+)\:[0-9]+/); - lrange = this._convertOffensiveLineToToffeeRange(lineno); - line = line.replace(/\:[0-9]+\:[0-9]+/, ""); - hit_pub_yet = true; - in_src_file = true; - at_pub_call = true; - } - rxx_inline = /at[\s]undefined\:([0-9]+)\:[0-9]+/; - m = line.match(rxx_inline); - if ((m != null ? m.length : void 0) >= 2) { - line = line.replace("undefined", converted_err.full_path); - lineno = this._extractOffensiveLineNo(line, /([0-9]+)\:[0-9]+/); - lrange = this._convertOffensiveLineToToffeeRange(lineno); - line = line.replace(/\:[0-9]+\:[0-9]+/, ""); - in_src_file = true; - } - stack[i] = { - line: line, - above_pub_call: !hit_pub_yet, - at_pub_call: at_pub_call, - in_src_file: in_src_file, - line_range: lrange - }; - if (stack[i].line_range[0] && !converted_err.line_range[0]) { - _results.push(converted_err.line_range = stack[i].line_range); - } else { - _results.push(void 0); - } - } - return _results; - }; - - toffeeError.prototype.getPrettyPrintText = function() { - /* - returns a TEXT only blob explaining the error - */ - - var cerr, count, header, i, item, res, _i, _len, _ref, _ref1; - cerr = this.getConvertedError(); - if (cerr.type === errorTypes.RUNTIME) { - header = cerr.message; - } else { - header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; - } - res = "ERROR\n=====\n" + header; - if ((_ref = cerr.stack) != null ? _ref.length : void 0) { - res += "\n\nSTACK\n=====\n"; - count = 0; - _ref1 = cerr.stack; - for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { - item = _ref1[i]; - if (i === 0) { - res += "" + (count++) + " " + item.line; - } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) { - res += "" + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file; - } else if (item.in_src_file) { - continue; - } else { - res += "" + (count++) + item.line; - } - if (i < cerr.stack.length - 1) { - res += "\n"; - } - } - } - res += "\n"; - return res; - }; - - toffeeError.prototype.getPrettyPrint = function() { - /* - returns an HTML blob explaining the error - with lines highlighted - */ - - var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4; - cerr = this.getConvertedError(); - res = ""; - if (cerr.type === 234432) { - header = cerr.message; - } else { - header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message + ""; - } - res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; - if ((_ref = cerr.stack) != null ? _ref.length : void 0) { - res += "
    "; - count = 0; - _ref1 = cerr.stack; - for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { - item = _ref1[i]; - if (i === 0) { - res += "
    " + (count++) + " " + item.line + "
    "; - } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) { - res += "
    " + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file + "
    "; - } else if (item.in_src_file) { - continue; - } else { - res += "
    " + (count++) + item.line + "
    "; - } - } - res += "
    "; - } - for (i = _j = _ref2 = cerr.line_range[0] - 3, _ref3 = cerr.line_range[1] + 1; _ref2 <= _ref3 ? _j < _ref3 : _j > _ref3; i = _ref2 <= _ref3 ? ++_j : --_j) { - if ((i < 0) || i > this.toffeeSrcLines.length - 1) { - continue; - } - line = _ppEscape(this.toffeeSrcLines[i]); - padding_len = 5 - ("" + (i + 1)).length; - padding = ((function() { - var _k, _results; - _results = []; - for (j = _k = 0; 0 <= padding_len ? _k < padding_len : _k > padding_len; j = 0 <= padding_len ? ++_k : --_k) { - _results.push(" "); - } - return _results; - })()).join(""); - if ((cerr.line_range[0] <= (_ref4 = i + 1) && _ref4 < cerr.line_range[1])) { - extra = ""; - } else { - extra = ""; - } - res += "" + extra + "\n" + (i + 1) + ": " + padding + " " + line + "
    "; - } - res += " \n
    \n\n
    "; - return res; - }; - - toffeeError.prototype._lineRangeToPhrase = function(lrange) { - if (lrange[0] >= lrange[1] - 1) { - return "on line " + lrange[0]; - } else { - return "between lines " + lrange[0] + " and " + (lrange[1] - 1); - } - }; - - toffeeError.prototype._extractOffensiveLineNo = function(msg, rxx) { - var m; - m = msg.match(rxx); - if (!((m != null ? m.length : void 0) >= 2)) { - return null; - } - return parseInt(m[1]); - }; - - toffeeError.prototype._convertOffensiveLineToToffeeRange = function(lineno) { - /* - Given the error line in a converted file, hunts for surrounding - __toffee.lineno calls and returns a pair array with the error position - range in the original toffee file. - */ - - var next, next_matches, ol, prev, prev_matches, res, tl; - ol = this.offensiveSrcLines; - tl = this.toffeeSrcLines; - if ((!(lineno != null)) || isNaN(lineno)) { - return [1, tl.length]; - } - prev = ol.slice(0, lineno).join("\n"); - next = ol.slice(lineno).join("\n"); - prev_matches = prev.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - next_matches = next.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - res = [1, tl.length]; - if (prev_matches != null ? prev_matches.length : void 0) { - res[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); - } - if (next_matches != null ? next_matches.length : void 0) { - res[1] = parseInt(next_matches[0].match(/[0-9]+/)[0]); - } - return res; - }; - - return toffeeError; - - })(); - - exports.toffeeError = toffeeError; - - eh = exports.errorHandler = { - generateRuntimeError: function(view, e) { - /* - e: the error caught when running - */ - - var after, after_matches, before, msg, new_msg, prev_matches, res, search, src, src_lines, stack, txt_lines; - src = view.javaScript; - msg = e.message; - stack = e.stack; - res = { - src_line: 0, - toffee_line_range: [0, 1], - original_msg: msg, - converted_msg: msg - }; - search = stack.match(/pub\ \(undefined\:([0-9]+):[0-9]+/); - if (!((search != null ? search.length : void 0) >= 2)) { - return res; - } - res.src_line = search[1]; - src_lines = src.split('\n'); - txt_lines = view.txt.split('\n'); - before = src_lines.slice(0, res.src_line).join("\n"); - after = src_lines.slice(res.src_line).join("\n"); - prev_matches = before.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - after_matches = after.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - if (prev_matches != null ? prev_matches.length : void 0) { - res.toffee_line_range[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); - } else { - res.toffee_line_range[0] = 1; - } - if (after_matches != null ? after_matches.length : void 0) { - res.toffee_line_range[1] = parseInt(after_matches[0].match(/[0-9]+/)[0]); - } else { - res.toffee_line_range[1] = txt_lines.length; - } - res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1); - if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) { - new_msg = "on line " + res.toffee_line_range[0]; - } else { - new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1]; - } - res.converted_msg = res.original_msg + " " + new_msg; - if (view.fileName) { - res.converted_msg = "" + view.fileName + ": " + res.converted_msg; - } - return res; - }, - generateCompileToJsError: function(view, e) { - /* - e: the error caught when compiling - */ - - var msg, new_msg, res, search, src; - src = view.coffeeScript; - msg = e.message; - res = { - src_line: 0, - toffee_line_range: [0, 1], - original_msg: msg, - converted_msg: msg - }; - search = msg.match(/on line ([0-9]+)/); - if ((search != null ? search.length : void 0) >= 2) { - res.src_line = search[1]; - res.toffee_line_range = this._convertSrcLineToToffeeRange(view.coffeeScript, res.src_line); - res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1); - if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) { - new_msg = "on line " + res.toffee_line_range[0]; - } else { - new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1]; - } - res.converted_msg = res.original_msg.replace("on line " + res.src_line, new_msg); - if (view.fileName) { - res.converted_msg = "" + view.fileName + ": " + res.converted_msg; - } - } - return res; - }, - prettyPrintError: function(view) { - var i, line, lineno, padding, padding_len, res, txt_lines, _i, _ref, _ref1; - if (!view.error) { - return ""; - } else { - res = "
    "; - res += "" + (eh._ppEscape(view.error.converted_msg)) + ""; - res += "\n
    --------
    "; - res += "\n
    "; - txt_lines = view.txt.split('\n'); - for (i = _i = _ref = view.error.toffee_line_range[0] - 3, _ref1 = view.error.toffee_line_range[1] + 1; _ref <= _ref1 ? _i < _ref1 : _i > _ref1; i = _ref <= _ref1 ? ++_i : --_i) { - if ((i < 0) || i > txt_lines.length - 1) { - continue; - } - line = eh._ppEscape(txt_lines[i]); - lineno = i + 1; - padding_len = 5 - ("" + lineno).length; - padding = ((function() { - var _j, _results; - _results = []; - for (i = _j = 0; 0 <= padding_len ? _j < padding_len : _j > padding_len; i = 0 <= padding_len ? ++_j : --_j) { - _results.push(" "); - } - return _results; - })()).join(""); - res += "\n" + lineno + ": " + padding + " " + line + "
    "; - } - res += "\n
    "; - res += "\n
    "; - return res; - } - } - }; - - _ppEscape = function(txt) { - var i, m; - txt = txt.replace(/&/g, '&').replace(/ _ref; i = 0 <= _ref ? ++_i : --_i) { - _results.push(" "); - } - return _results; - })()).join("")); - return txt; - }; - -}).call(this); -}, "toffee_lang": function(exports, require, module) {/* Jison generated parser */ -var toffee_lang = (function(){ -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffeecomment":8,"START_TOFFEE_COMMENT":9,"code":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"coffee_zone":13,"END_COFFEE":14,"coffee_code":15,"flip_to_toffee":16,"START_TOFFEE":17,"END_TOFFEE":18,"START_INDENTED_TOFFEE":19,"CODE":20,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_COFFEE",14:"END_COFFEE",17:"START_TOFFEE",18:"END_TOFFEE",19:"START_INDENTED_TOFFEE",20:"CODE"}, -productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[7,3],[13,1],[13,3],[13,2],[13,0],[16,3],[16,3],[6,1],[15,1],[10,1],[10,2]], -performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { - -var $0 = $$.length - 1; -switch (yystate) { -case 1: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; return this.$; -break; -case 2: this.$ = [$$[$0]]; -break; -case 3: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); -break; -case 4: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); -break; -case 5: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2]); -break; -case 6: this.$ = $$[$0]; -break; -case 7: this.$ = []; -break; -case 9: this.$ = ["COFFEE_ZONE", $$[$0-1]]; -break; -case 10: this.$ = [$$[$0]]; -break; -case 11: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); -break; -case 12: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); -break; -case 13: this.$ = []; -break; -case 14: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; -break; -case 15: this.$ = ["INDENTED_TOFFEE_ZONE", $$[$0-1]]; -break; -case 16: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; -break; -case 17: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; -break; -case 18: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; - this.$ = [$$[$0], ln]; - -break; -case 19: var c = $$[$0-1][0] + $$[$0]; - var ln = yylineno + 1 - c.split("\n").length + 1; - this.$ = [c, ln]; - -break; -} -}, -table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],20:[1,9]},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],12:[1,7],18:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,16],9:[2,16],12:[2,16],18:[2,16],20:[1,15]},{10:19,13:16,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{10:22,20:[1,9]},{5:[2,18],9:[2,18],11:[2,18],12:[2,18],14:[2,18],17:[2,18],18:[2,18],19:[2,18],20:[2,18]},{1:[2,1]},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:24,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,4],18:[2,4]},{5:[2,6],18:[2,6]},{5:[2,19],9:[2,19],11:[2,19],12:[2,19],14:[2,19],17:[2,19],18:[2,19],19:[2,19],20:[2,19]},{14:[1,25]},{14:[2,10],16:26,17:[1,20],19:[1,21]},{10:19,13:27,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,17],17:[2,17],19:[2,17],20:[1,15]},{4:28,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:29,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{11:[1,30],20:[1,15]},{5:[2,3],18:[2,3]},{5:[2,5],18:[2,5]},{5:[2,9],9:[2,9],12:[2,9],18:[2,9],20:[2,9]},{10:19,13:31,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,12]},{18:[1,32]},{18:[1,33]},{5:[2,8],9:[2,8],12:[2,8],18:[2,8],20:[2,8]},{14:[2,11]},{14:[2,14],17:[2,14],19:[2,14],20:[2,14]},{14:[2,15],17:[2,15],19:[2,15],20:[2,15]}], -defaultActions: {10:[2,1],27:[2,12],31:[2,11]}, -parseError: function parseError(str, hash) { - throw new Error(str); -}, -parse: function parse(input) { - var self = this, - stack = [0], - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - //this.reductionCount = this.shiftCount = 0; - - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - if (typeof this.lexer.yylloc == 'undefined') - this.lexer.yylloc = {}; - var yyloc = this.lexer.yylloc; - lstack.push(yyloc); - - if (typeof this.yy.parseError === 'function') - this.parseError = this.yy.parseError; - - function popStack (n) { - stack.length = stack.length - 2*n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - - function lex() { - var token; - token = self.lexer.lex() || 1; // $end = 1 - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length-1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol == null) - symbol = lex(); - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - - // handle parse error - _handle_error: - if (typeof action === 'undefined' || !action.length || !action[0]) { - - if (!recovering) { - // Report error - expected = []; - for (p in table[state]) if (this.terminals_[p] && p > 2) { - expected.push("'"+this.terminals_[p]+"'"); - } - var errStr = ''; - if (this.lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == 1 /*EOF*/ ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, - {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol == EOF) { - throw new Error(errStr || 'Parsing halted.'); - } - - // discard current lookahead and grab another - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - while (1) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - break; - } - if (state == 0) { - throw new Error(errStr || 'Parsing halted.'); - } - popStack(1); - state = stack[stack.length-1]; - } - - preErrorSymbol = symbol; // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: // accept - return true; - } - - } - - return true; -}}; -/* Jison generated lexer */ -var lexer = (function(){ -var lexer = ({EOF:1, -parseError:function parseError(str, hash) { - if (this.yy.parseError) { - this.yy.parseError(str, hash); - } else { - throw new Error(str); - } - }, -setInput:function (input) { - this._input = input; - this._more = this._less = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; - return this; - }, -input:function () { - var ch = this._input[0]; - this.yytext+=ch; - this.yyleng++; - this.match+=ch; - this.matched+=ch; - var lines = ch.match(/\n/); - if (lines) this.yylineno++; - this._input = this._input.slice(1); - return ch; - }, -unput:function (ch) { - this._input = ch + this._input; - return this; - }, -more:function () { - this._more = true; - return this; - }, -less:function (n) { - this._input = this.match.slice(n) + this._input; - }, -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); - }, -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c+"^"; - }, -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) this.done = true; - - var token, - match, - tempMatch, - index, - col, - lines; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i=0;i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (!this.options.flex) break; - } - } - if (match) { - lines = match[0].match(/\n.*/g); - if (lines) this.yylineno += lines.length; - this.yylloc = {first_line: this.yylloc.last_line, - last_line: this.yylineno+1, - first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length} - this.yytext += match[0]; - this.match += match[0]; - this.yyleng = this.yytext.length; - this._more = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, rules[index],this.conditionStack[this.conditionStack.length-1]); - if (this.done && this._input) this.done = false; - if (token) return token; - else return; - } - if (this._input === "") { - return this.EOF; - } else { - this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), - {text: "", token: null, line: this.yylineno}); - } - }, -lex:function lex() { - var r = this.next(); - if (typeof r !== 'undefined') { - return r; - } else { - return this.lex(); - } - }, -begin:function begin(condition) { - this.conditionStack.push(condition); - }, -popState:function popState() { - return this.conditionStack.pop(); - }, -_currentRules:function _currentRules() { - return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; - }, -topState:function () { - return this.conditionStack[this.conditionStack.length-2]; - }, -pushState:function begin(condition) { - this.begin(condition); - }}); -lexer.options = {}; -lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - -var YYSTATE=YY_START -switch($avoiding_name_collisions) { -case 0:return 9; -break; -case 1:return 11; -break; -case 2:return 18; -break; -case 3:return 19; -break; -case 4:return 12; -break; -case 5:return 14; -break; -case 6:return 17; -break; -case 7:return 20; -break; -case 8:return 5; -break; -} -}; -lexer.rules = [/^\{##/,/^##\}/,/^:\}/,/^\{:/,/^\{#/,/^#\}/,/^[\-][\t\r\n ]*\{:/,/^[^{}#\\:\-]+|[\\{}#:\-]/,/^$/]; -lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8],"inclusive":true}}; -return lexer;})() -parser.lexer = lexer; -return parser; -})(); -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = toffee_lang; -exports.parse = function () { return toffee_lang.parse.apply(toffee_lang, arguments); } -exports.main = function commonjsMain(args) { - if (!args[1]) - throw new Error('Usage: '+args[0]+' FILE'); - if (typeof process !== 'undefined') { - var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); - } else { - var cwd = require("file").path(require("file").cwd()); - var source = cwd.join(args[1]).read({charset: "utf-8"}); - } - return exports.parser.parse(source); -} -if (typeof module !== 'undefined' && require.main === module) { - exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); -} -}}, "utils": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - var lex, lexer; - - lexer = require('./coffee-script/lexer'); - - lex = new lexer.Lexer(); - - exports.interpolateString = function(str) { - /* - Similar to the interpolateString function in CoffeeScript, - except that it doesn't actually work on anything inside an outer #{}; - we're just looking to recognize them. - */ - - var expr, i, inner, interpolated, letter, pi, res, tag, tokens, value, _i, _len, _ref; - tokens = []; - res = []; - pi = 0; - i = -1; - while (letter = str.charAt(i += 1)) { - if (letter === '\\') { - i += 1; - continue; - } - if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = lex.balancedString(str.slice(i + 1), '}')))) { - continue; - } - if (pi < i) { - tokens.push(['NEOSTRING', str.slice(pi, i)]); - } - inner = expr.slice(1, -1); - if (inner.length) { - tokens.push(['TOKENS', inner]); - } - i += expr.length; - pi = i + 1; - } - if ((i > pi && pi < str.length)) { - tokens.push(['NEOSTRING', str.slice(pi)]); - } - if (!tokens.length) { - return res.push('STRING', '""'); - } - if (tokens[0][0] !== 'NEOSTRING') { - tokens.unshift(['', '']); - } - if (interpolated = tokens.length > 1) { - res.push('(', '('); - } - for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { - _ref = tokens[i], tag = _ref[0], value = _ref[1]; - if (i) { - res.push('+', '+'); - } - if (tag === 'TOKENS') { - res.push([tag, value]); - } else { - res.push(['STRING', value]); - } - } - if (interpolated) { - res.push(')', ')'); - } - return tokens; - }; - -}).call(this); -}, "view": function(exports, require, module) {// Generated by CoffeeScript 1.3.3 -(function() { - var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; - - parser = require('./toffee_lang').parser; - - _ref = require('./errorHandler'), errorHandler = _ref.errorHandler, toffeeError = _ref.toffeeError, errorTypes = _ref.errorTypes; - - _ref1 = require('./consts'), states = _ref1.states, TAB_SPACES = _ref1.TAB_SPACES; - - utils = require('./utils'); - - vm = require('vm'); - - try { - coffee = require("iced-coffee-script"); - } catch (e) { - coffee = require("coffee-script"); - } - - getCommonHeaders = function() { - /* - each view will use this, or if they're bundled together, - it'll only be used once - */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; - }; - - getCommonHeadersJs = function() { - var ch; - ch = getCommonHeaders(); - return coffee.compile(ch, { - bare: true - }); - }; - - view = (function() { - - function view(txt, options) { - /* - important options: - cb: if this is set, compilation will happen async and cb will be executed when it's ready - */ - - var _this = this; - options = options || {}; - this.fileName = options.fileName || options.filename || null; - this.bundlePath = options.bundlePath || "/"; - this.browserMode = options.browserMode || false; - this.verbose = options.verbose || false; - this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; - this.txt = txt; - this.tokenObj = null; - this.coffeeScript = null; - this.javaScript = null; - this.scriptObj = null; - this.error = null; - if (options.cb) { - this._prepAsync(txt, function() { - return options.cb(_this); - }); - } - } - - view.prototype._prepAsync = function(txt, cb) { - /* - Only once it's fully compiled does it callback. - Defers via setTimeouts in each stage in the compile process - for CPU friendliness. This is a lot prettier with iced-coffee-script. - */ - - var v; - this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async."); - this._toTokenObj(); - v = this; - return setTimeout(function() { - v._toCoffee(); - return setTimeout(function() { - v._toJavaScript(); - return setTimeout(function() { - v._toScriptObj(); - v._log("Done async prep of " + (v.fileName != null ? v.fileName : 'unknown') + ". Calling back."); - return cb(); - }, 0); - }, 0); - }, 0); - }; - - view.prototype._log = function(o) { - var _ref2; - if (this.verbose) { - if ((_ref2 = typeof o) === "string" || _ref2 === "number" || _ref2 === "boolean") { - return console.log("toffee: " + o); - } else { - return console.log("toffee: " + (util.inspect(o))); - } - } - }; - - view.prototype._cleanTabs = function(obj) { - /* - replaces tabs with spaces in their coffee regions - */ - - var item, _i, _len, _ref2, _ref3, _results; - if ((_ref2 = obj[0]) === "INDENTED_TOFFEE_ZONE" || _ref2 === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { - _ref3 = obj[1]; - _results = []; - for (_i = 0, _len = _ref3.length; _i < _len; _i++) { - item = _ref3[_i]; - _results.push(this._cleanTabs(item)); - } - return _results; - } else if (obj[0] === "COFFEE") { - return obj[1] = obj[1].replace(/\t/g, this._tabAsSpaces()); - } - }; - - view.prototype.run = function(options) { - /* - returns [err, str] - */ - - var pair, res, sandbox, script; - script = this._toScriptObj(); - res = null; - if (!this.error) { - try { - sandbox = { - __toffee_run_input: options - }; - script.runInNewContext(sandbox); - res = sandbox.__toffee_run_input.__toffee.res; - delete sandbox.__toffee_run_input.__toffee; - } catch (e) { - this.error = new toffeeError(this, errorTypes.RUNTIME, e); - } - } - if (this.error) { - if (this.prettyPrintErrors) { - pair = [null, this.error.getPrettyPrint()]; - } else { - pair = [null, this.error.getPrettyPrintText()]; - } - if (this.error.errType === errorTypes.RUNTIME) { - this.error = null; - } - } else { - pair = [null, res]; - } - return pair; - }; - - view.prototype._toTokenObj = function() { - /* - compiles Toffee to token array - */ - if (!(this.tokenObj != null)) { - try { - this.tokenObj = parser.parse(this.txt); - } catch (e) { - this.error = new toffeeError(this, errorTypes.PARSER, e); - } - if (!(this.error != null)) { - this._cleanTabs(this.tokenObj); - } - } - return this.tokenObj; - }; - - view.prototype._toScriptObj = function() { - var d, txt; - if (!(this.scriptObj != null)) { - txt = this._toJavaScript(); - if (!this.error) { - d = Date.now(); - this.scriptObj = vm.createScript(txt); - this._log("" + this.fileName + " compiled to scriptObj in " + (Date.now() - d) + "ms"); - } - } - return this.scriptObj; - }; - - view.prototype._toJavaScript = function() { - var c, d; - if (!(this.javaScript != null)) { - c = this._toCoffee(); - if (!this.error) { - d = Date.now(); - try { - this.javaScript = coffee.compile(c, { - bare: false - }); - } catch (e) { - this.error = new toffeeError(this, errorTypes.COFFEE_COMPILE, e); - } - this._log("" + this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms"); - } - } - return this.javaScript; - }; - - view.prototype._toCoffee = function() { - var d, res, tobj; - if (!(this.coffeeScript != null)) { - tobj = this._toTokenObj(); - if (!this.error) { - d = Date.now(); - res = this._coffeeHeaders(); - try { - res += this._toCoffeeRecurse(tobj, TAB_SPACES, 0)[0]; - res += this._coffeeFooters(); - this.coffeeScript = res; - } catch (e) { - this.error; - } - this._log("" + this.fileName + " compiled to CoffeeScript in " + (Date.now() - d) + "ms"); - } - } - return this.coffeeScript; - }; - - view.prototype._printLineNo = function(n, ind) { - if ((this.lastLineNo != null) && (n === this.lastLineNo)) { - return ""; - } else { - this.lastLineNo = n; - return "\n" + (this._space(ind)) + "__toffee.lineno = " + n; - } - }; - - view.prototype._snippetHasEscapeOverride = function(str) { - var token, _i, _len, _ref2, _ref3; - _ref2 = ['print', ' snippet', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify']; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - token = _ref2[_i]; - if (str.slice(0, token.length) === token) { - if ((str.length > token.length) && ((_ref3 = str[token.length]) === ' ' || _ref3 === '\t' || _ref3 === '\n' || _ref3 === '(')) { - return true; - } - } - } - return false; - }; - - view.prototype._snippetIsSoloToken = function(str) { - /* - if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. - */ - if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { - return true; - } - return false; - }; - - view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline) { - var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; - res = ""; - i_delta = 0; - switch (obj[0]) { - case "INDENTED_TOFFEE_ZONE": - indent_level += TAB_SPACES; - _ref2 = obj[1]; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - item = _ref2[_i]; - _ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref3[0], delta = _ref3[1]; - res += s; - } - break; - case "TOFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.TOFFEE"; - _ref4 = obj[1]; - for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { - item = _ref4[_j]; - _ref5 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref5[0], delta = _ref5[1]; - res += s; - } - break; - case "COFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.COFFEE"; - zone_baseline = this._getZoneBaseline(obj[1]); - temp_indent_level = indent_level; - _ref6 = obj[1]; - for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) { - item = _ref6[_k]; - _ref7 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline), s = _ref7[0], delta = _ref7[1]; - res += s; - temp_indent_level = indent_level + delta; - } - break; - case "TOFFEE": - ind = indent_level; - res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.TOFFEE"; - lineno = obj[2]; - try { - t_int = utils.interpolateString(obj[1]); - } catch (e) { - e.relayed_line_range = [lineno, lineno + obj[1].split("\n").length]; - this.error = new toffeeError(this, errorTypes.STR_INTERPOLATE, e); - throw e; - } - for (_l = 0, _len3 = t_int.length; _l < _len3; _l++) { - part = t_int[_l]; - if (part[0] === "TOKENS") { - res += this._printLineNo(lineno, ind); - interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); - if (this._snippetIsSoloToken(interp)) { - chunk = "\#{if " + interp + "? then escape " + interp + " else ''}"; - } else if (this._snippetHasEscapeOverride(interp)) { - chunk = "\#{" + interp + "}"; - } else { - chunk = "\#{escape(" + interp + ")}"; - } - res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk)); - lineno += part[1].split("\n").length - 1; - } else { - lines = part[1].split("\n"); - for (i = _m = 0, _len4 = lines.length; _m < _len4; i = ++_m) { - line = lines[i]; - res += this._printLineNo(lineno, ind); - lbreak = i !== lines.length - 1 ? "\n" : ""; - chunk = this._escapeForStr("" + line + lbreak); - if (chunk.length) { - res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk + lbreak)); - } - if (i < lines.length - 1) { - lineno++; - } - } - } - } - res += this._printLineNo(obj[2] + (obj[1].split('\n').length - 1), ind); - res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.COFFEE"; - break; - case "COFFEE": - c = obj[1]; - res += "\n" + (this._reindent(c, indent_level, indent_baseline)); - i_delta = this._getIndentationDelta(c, indent_baseline); - break; - default: - throw "Bad parsing. " + obj + " not handled."; - return ["", 0]; - } - return [res, i_delta]; - }; - - view.prototype._quoteStr = function(s) { - /* - returns a triple-quoted string, dividing into single quoted - start and stops, if the string begins with double quotes, since - coffee doesn't want to let us escape those. - */ - - var follow, lead, res; - lead = ""; - follow = ""; - while (s.length && (s[0] === '"')) { - s = s.slice(1); - lead += '"'; - } - while (s.length && (s.slice(-1) === '"')) { - s = s.slice(0, -1); - follow += '"'; - } - res = ''; - if (lead.length) { - res += "\'" + lead + "\' + "; - } - res += '"""' + s + '"""'; - if (follow.length) { - res += "+ \'" + follow + "\'"; - } - return res; - }; - - view.prototype._escapeForStr = function(s) { - /* - escapes a string so it can make it into coffeescript - triple quotes without losing whitespace, etc. - */ - s = s.replace(/\n/g, '\\n'); - s = s.replace(/\t/g, '\\t'); - return s; - }; - - view.prototype._getZoneBaseline = function(obj_arr) { - var ib, obj, _i, _len; - for (_i = 0, _len = obj_arr.length; _i < _len; _i++) { - obj = obj_arr[_i]; - if (obj[0] === "COFFEE") { - ib = this._getIndentationBaseline(obj[1]); - if (ib != null) { - return ib; - } - } - } - return 0; - }; - - view.prototype._getIndentationBaseline = function(coffee) { - var i, line, lines, res, _i, _len; - res = null; - lines = coffee.split("\n"); - if (lines.length) { - for (i = _i = 0, _len = lines.length; _i < _len; i = ++_i) { - line = lines[i]; - if ((!line.match(/^[ ]*$/)) || i === (lines.length - 1)) { - res = line.match(/[ ]*/)[0].length; - break; - } - } - } - if (!(res != null)) { - res = coffee.length; - } - return res; - }; - - view.prototype._getIndentationDelta = function(coffee, baseline) { - /* - given an arbitrarily indented set of coffeescript, returns the delta - between the first and last lines, in chars. - Ignores leading/trailing whitespace lines - If passed a baseline, uses that instead of own. - */ - - var lines, res, y, y_l; - if (!(baseline != null)) { - baseline = this._getIndentationBaseline(coffee); - } - if (!(baseline != null)) { - res = 0; - } else { - lines = coffee.split("\n"); - if (lines.length < 1) { - res = 0; - } else { - y = lines[lines.length - 1]; - y_l = y.match(/[ ]*/)[0].length; - res = y_l - baseline; - } - } - return res; - }; - - view.prototype._reindent = function(coffee, indent_level, indent_baseline) { - var indent, line, lines, res, rxx, strip; - lines = coffee.split('\n'); - while (lines.length && lines[0].match(/^[ ]*$/)) { - lines = lines.slice(1); - } - if (!lines.length) { - return ''; - } - rxx = /^[ ]*/; - strip = indent_baseline; - indent = this._space(indent_level); - res = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = lines.length; _i < _len; _i++) { - line = lines[_i]; - _results.push("" + indent + line.slice(strip)); - } - return _results; - })()).join("\n"); - return res; - }; - - view.prototype._space = function(indent) { - var i; - return ((function() { - var _i, _results; - _results = []; - for (i = _i = 0; 0 <= indent ? _i < indent : _i > indent; i = 0 <= indent ? ++_i : --_i) { - _results.push(" "); - } - return _results; - })()).join(""); - }; - - view.prototype._tabAsSpaces = function() { - var i; - return ((function() { - var _i, _results; - _results = []; - for (i = _i = 0; 0 <= TAB_SPACES ? _i < TAB_SPACES : _i > TAB_SPACES; i = 0 <= TAB_SPACES ? ++_i : --_i) { - _results.push(" "); - } - return _results; - })()).join(""); - }; - - view.prototype._coffeeHeaders = function() { - var ___; - ___ = this._tabAsSpaces(); - return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o\n\n" + ___ + "locals.__toffee.print = locals.print\n" + ___ + "locals.__toffee.json = locals.json\n" + ___ + "locals.__toffee.raw = locals.raw\n" + ___ + "locals.__toffee.html = locals.html\n" + ___ + "locals.__toffee.escape = locals.escape\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; - }; - - view.prototype._coffeeFooters = function() { - var ___; - ___ = this._tabAsSpaces(); - return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return toffee.templates[\"" + this.bundlePath + "\"].pub __toffee_run_input"; - }; - - return view; - - })(); - - exports.view = view; - - exports.getCommonHeaders = getCommonHeaders; - - exports.getCommonHeadersJs = getCommonHeadersJs; - - exports.expressCompile = function(txt, options) { - var v; - v = new view(txt, options); - return function(vars) { - var res; - res = v.run(vars); - if (res[0]) { - return res[0]; - } else { - return res[1]; - } - }; - }; - -}).call(this); -}}); From 0c49f26e2f9ec5b5e9752b5859d20b35b00e8e8e Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 31 Jul 2012 18:02:29 -0400 Subject: [PATCH 026/163] command line compilation of test cases as part of build step --- Cakefile | 26 +- lib/command_line.js | 16 +- src/command_line.coffee | 15 +- .../express3/public/javascripts/test_cases.js | 6910 +++-------------- 4 files changed, 1245 insertions(+), 5722 deletions(-) diff --git a/Cakefile b/Cakefile index 1836137..9ea81fc 100644 --- a/Cakefile +++ b/Cakefile @@ -11,26 +11,18 @@ task 'build', 'build the whole jam', (cb) -> buildParser -> runCoffee ['-c', '-o', 'lib/'].concat(files), -> runCoffee ['-c', 'index.coffee'], -> - #stitchIt -> - console.log "Done building." - cb() if typeof cb is 'function' + generateExpressTest -> + console.log "Done building." + cb() if typeof cb is 'function' runCoffee = (args, cb) -> proc = spawn 'coffee', args console.log args proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> - process.exit(1) if status != 0 + process.exit(1) if status isnt 0 cb() if typeof cb is 'function' -#stitchIt = (cb) -> -# s = stitch.createPackage { paths: ['lib'] } -# s.compile (err, source) -> -# fs.writeFile 'toffee.js', source, (err) -> -# if err then throw err -# console.log "Stitched." -# cb() - clearLibJs = (cb) -> files = fs.readdirSync 'lib' files = ("lib/#{file}" for file in files when file.match(/\.js$/)) @@ -46,4 +38,12 @@ buildParser = (cb) -> moduleName: 'toffee_lang' } fs.writeFileSync "./lib/#{file_name}", source - cb() \ No newline at end of file + cb() + +generateExpressTest = (cb) -> + proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc.stderr.on 'data', (buffer) -> console.log buffer.toString() + proc.stdout.on 'data', (buffer) -> console.log buffer.toString() + proc.on 'exit', (status) -> + process.exit(1) if status isnt 0 + cb() if typeof cb is 'function' \ No newline at end of file diff --git a/lib/command_line.js b/lib/command_line.js index 5ee25ca..e46acee 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -21,7 +21,7 @@ return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); }); - program.version(getVersionNumber()).option('-o, --output', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); + program.version(getVersionNumber()).option('-o, --output [path]', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); compile = function(start_path, path) { /* @@ -66,6 +66,7 @@ var out_text, start_path; if (program.args.length !== 1) { console.log("Unexpected input. toffee --help for examples"); + console.log(program.args); return process.exit(1); } else { try { @@ -77,7 +78,18 @@ start_path = path.normalize(start_path); out_text = recurseRun(start_path, start_path, ""); out_text = getCommonHeadersJs() + out_text; - return console.log(out_text); + if (program.print) { + console.log(out_text); + } + if (program.output) { + try { + console.log("Writing " + program.output); + return fs.writeFileSync(program.output, out_text, "utf8"); + } catch (e) { + console.log(e); + return process.exit(1); + } + } } }; diff --git a/src/command_line.coffee b/src/command_line.coffee index b09a896..541bd6e 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -33,7 +33,7 @@ program.on '--help', -> " program.version(getVersionNumber()) - .option('-o, --output', 'output file') + .option('-o, --output [path]', 'output file') .option('-p, --print', 'print output to stdout') .option('-c, --coffee', 'output to CoffeeScript (not JS)') .parse process.argv @@ -72,8 +72,10 @@ recurseRun = (start_path, curr_path, out_text) -> return out_text run = exports.run = -> + if program.args.length isnt 1 console.log "Unexpected input. toffee --help for examples" + console.log program.args process.exit 1 else try @@ -84,7 +86,16 @@ run = exports.run = -> start_path = path.normalize start_path out_text = recurseRun start_path, start_path, "" out_text = getCommonHeadersJs() + out_text - console.log out_text + if program.print + console.log out_text + if program.output + try + console.log "Writing #{program.output}" + fs.writeFileSync program.output, out_text, "utf8" + catch e + console.log e + process.exit 1 + # ----------------------------------------------------------------------------- diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 1765974..1447661 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,45 +1,50 @@ var toffee; -if (!toffee) toffee = {}; +if (!(typeof toffee !== "undefined" && toffee !== null)) toffee = {}; if (!toffee.templates) toffee.templates = {}; -toffee.print = function(__toffee, txt) { - if (__toffee.state === states.COFFEE) { - __toffee.out.push(txt); +toffee.states = { + "TOFFEE": 1, + "COFFEE": 2 +}; + +toffee.__print = function(locals, o) { + if (locals.__toffee.state === toffee.states.COFFEE) { + locals.__toffee.out.push(o); return ''; } else { - return "" + txt + "x"; + return "" + o; } }; -toffee.json = function(__toffee, o) { +toffee.__json = function(locals, o) { var json; try { json = JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); } catch (e) { throw { stack: [], - message: "JSONify error (" + e.message + ") on line " + __toffee.lineno, - toffee_line_base: __toffee.lineno + message: "JSONify error (" + e.message + ") on line " + locals.__toffee.lineno, + toffee_line_base: locals.__toffee.lineno }; } return "" + json; }; -toffee.raw = function(__toffee, o) { +toffee.__raw = function(locals, o) { return o; }; -toffee.html = function(__toffee, o) { +toffee.__html = function(locals, o) { return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); }; -toffee.escape = function(__toffee, o) { - if ((!(__toffee.autoEscape != null)) || __toffee.autoEscape) { +toffee.__escape = function(locals, o) { + if ((!(locals.__toffee.autoEscape != null)) || locals.__toffee.autoEscape) { if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return __toffee.json(o); - return __toffee.html(o); + if ((o != null) && (typeof o) === "object") return locals.json(o); + return locals.html(o); } return o; }; @@ -48,46 +53,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/big_file/input.toffee"] = {}; toffee.templates["/big_file/input.toffee"].pub = function(locals) { - var count, escape, html, i, json, print, raw, states, _i, _toffeePtr; - _toffeePtr = toffee; + var count, i, localsPointer, _i; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; count = 0; - for (i = _i = 0; _i < 5; i = ++_i) { - __toffee.state = states.TOFFEE; + for (i = _i = 0; _i < 2; i = ++_i) { + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 3; __toffee.out.push("" + (escape(count++))); __toffee.lineno = 4; @@ -205,24 +211,6 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("" + (escape(count++))); __toffee.out.push("..."); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); __toffee.lineno = 9; __toffee.out.push("..."); __toffee.out.push("" + (escape(count++))); @@ -252,87 +240,12 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("" + (escape(count++))); __toffee.lineno = 10; __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 11; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 12; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; + count += 1; + print("" + count + "..."); + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 13; - __toffee.out.push("..."); __toffee.out.push("" + (escape(count++))); __toffee.out.push("..."); __toffee.out.push("" + (escape(count++))); @@ -522,4459 +435,10 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("" + (escape(count++))); __toffee.lineno = 20; __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 21; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 22; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 23; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 24; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 25; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 26; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 27; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 28; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 29; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 30; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 31; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 32; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 33; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 34; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 35; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 36; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 37; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 38; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 39; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 40; - __toffee.out.push("..."); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - count += 1; - print("" + count + "..."); - __toffee.state = states.TOFFEE; - __toffee.lineno = 43; - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 44; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 45; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 46; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 47; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 48; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 49; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 50; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 51; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 52; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 53; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 54; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 55; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 56; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 57; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 58; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 59; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 60; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 61; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 62; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 63; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 64; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 65; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 66; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 67; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 68; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 69; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 70; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 71; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 72; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 73; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 74; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 75; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 76; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 77; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 78; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 79; - __toffee.out.push("..."); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - count += 1; - print("" + count + "..."); - __toffee.state = states.TOFFEE; - __toffee.lineno = 82; - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 83; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 84; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 85; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 86; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 87; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 88; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 89; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 90; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 91; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 92; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 93; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 94; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 95; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 96; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 97; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 98; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 99; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 100; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 101; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 102; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 103; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 104; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 105; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 106; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 107; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 108; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 109; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 110; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 111; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 112; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 113; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 114; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 115; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 116; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 117; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 118; - __toffee.out.push("..."); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - count += 1; - print("" + count + "..."); - __toffee.state = states.TOFFEE; - __toffee.lineno = 121; - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 122; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 123; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 124; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 125; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 126; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 127; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 128; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 129; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 130; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 131; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 132; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 133; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 134; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 135; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 136; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 137; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 138; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 139; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 140; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 141; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 142; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 143; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 144; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 145; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 146; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 147; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 148; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 149; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 150; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 151; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 152; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 153; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 154; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 155; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 156; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 157; - __toffee.out.push("..."); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - count += 1; - print("" + count + "..."); - __toffee.state = states.TOFFEE; - __toffee.lineno = 160; - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 161; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 162; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 163; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 164; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 165; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 166; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 167; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 168; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 169; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 170; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 171; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 172; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 173; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 174; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 175; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 176; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 177; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 178; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 179; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 180; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 181; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 182; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 183; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 184; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 185; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 186; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 187; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 188; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 189; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 190; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 191; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 192; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 193; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 194; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 195; - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 196; - __toffee.out.push("..."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; + count += 1; + print("" + count + "..."); } __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -4991,46 +455,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/big_file/output.toffee"] = {}; toffee.templates["/big_file/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; - __toffee.out.push("0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...69...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...161...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...231...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...323...324...325...326...327...328...329...330...331...332...333...334...335...336...337...338...339...340...341...342...343...344...345...346...347...348...349...350...351...352...353...354...355...356...357...358...359...360...361...362...363...364...365...366...367...368...369...370...371...372...373...374...375...376...377...378...379...380...381...382...383...384...385...386...387...388...389...390...391...392...393...394...395...396...397...398...399...400...401...402...403...404...405...406...407...408...409...410...411...412...413...414...415...416...417...418...419...420...421...422...423...424...425...426...427...428...429...430...431...432...433...434...435...436...437...438...439...440...441...442...443...444...445...446...447...448...449...450...451...452...453...454...455...456...457...458...459...460...461...462...463...464...465...466...467...469...469...470...471...472...473...474...475...476...477...478...479...480...481...482...483...484...485...486...487...488...489...490...491...492...493...494...495...496...497...498...499...500...501...502...503...504...505...506...507...508...509...510...511...512...513...514...515...516...517...518...519...520...521...522...523...524...525...526...527...528...529...530...531...532...533...534...535...536...537...538...539...540...541...542...543...544...545...546...547...548...549...550...551...552...553...554...555...556...557...558...559...560...561...562...563...564...565...566...567...568...569...570...571...572...573...574...575...576...577...578...579...580...581...582...583...584...585...586...587...588...589...590...591...592...593...594...595...596...597...598...599...600...601...602...603...604...605...606...607...608...609...610...611...612...613...614...615...616...617...618...619...620...621...622...623...624...625...626...627...628...629...630...631...632...633...634...635...636...637...638...639...640...641...642...643...644...645...646...647...648...649...650...651...652...653...654...655...656...657...658...659...660...661...662...663...664...665...666...667...668...669...670...671...672...673...674...675...676...677...678...679...680...681...682...683...684...685...686...687...688...689...690...691...692...693...694...695...696...697...698...699...700...701...702...703...704...705...706...707...708...709...710...711...712...713...714...715...716...717...718...719...720...721...722...723...724...725...726...727...728...729...730...731...732...733...734...735...736...737...738...739...740...741...742...743...744...745...746...747...748...749...750...751...752...753...754...755...756...757...758...759...760...761...762...763...764...765...766...767...768...769...770...771...772...773...774...775...776...777...778...779...780...781...782...783...784...785...786...787...788...789...790...791...792...793...794...795...796...797...798...799...800...801...802...803...804...805...806...807...808...809...810...811...812...813...814...815...816...817...818...819...820...821...822...823...824...825...826...827...828...829...830...831...832...833...834...835...836...837...838...839...840...841...842...843...844...845...846...847...848...849...850...851...852...853...854...855...856...857...858...859...860...861...862...863...864...865...866...867...868...869...870...871...872...873...874...875...876...877...878...879...880...881...882...883...884...885...886...887...888...889...890...891...892...893...894...895...896...897...898...899...900...901...902...903...904...905...906...907...908...909...910...911...912...913...914...915...916...917...918...919...920...921...922...923...924...925...926...927...928...929...930...931...932...933...934...935...936...938...938...939...940...941...942...943...944...945...946...947...948...949...950...951...952...953...954...955...956...957...958...959...960...961...962...963...964...965...966...967...968...969...970...971...972...973...974...975...976...977...978...979...980...981...982...983...984...985...986...987...988...989...990...991...992...993...994...995...996...997...998...999...1000...1001...1002...1003...1004...1005...1006...1007...1008...1009...1010...1011...1012...1013...1014...1015...1016...1017...1018...1019...1020...1021...1022...1023...1024...1025...1026...1027...1028...1029...1030...1031...1032...1033...1034...1035...1036...1037...1038...1039...1040...1041...1042...1043...1044...1045...1046...1047...1048...1049...1050...1051...1052...1053...1054...1055...1056...1057...1058...1059...1060...1061...1062...1063...1064...1065...1066...1067...1068...1069...1070...1071...1072...1073...1074...1075...1076...1077...1078...1079...1080...1081...1082...1083...1084...1085...1086...1087...1088...1089...1090...1091...1092...1093...1094...1095...1096...1097...1098...1099...1100...1101...1102...1103...1104...1105...1106...1107...1108...1109...1110...1111...1112...1113...1114...1115...1116...1117...1118...1119...1120...1121...1122...1123...1124...1125...1126...1127...1128...1129...1130...1131...1132...1133...1134...1135...1136...1137...1138...1139...1140...1141...1142...1143...1144...1145...1146...1147...1148...1149...1150...1151...1152...1153...1154...1155...1156...1157...1158...1159...1160...1161...1162...1163...1164...1165...1166...1167...1168...1169...1170...1171...1172...1173...1174...1175...1176...1177...1178...1179...1180...1181...1182...1183...1184...1185...1186...1187...1188...1189...1190...1191...1192...1193...1194...1195...1196...1197...1198...1199...1200...1201...1202...1203...1204...1205...1206...1207...1208...1209...1210...1211...1212...1213...1214...1215...1216...1217...1218...1219...1220...1221...1222...1223...1224...1225...1226...1227...1228...1229...1230...1231...1232...1233...1234...1235...1236...1237...1238...1239...1240...1241...1242...1243...1244...1245...1246...1247...1248...1249...1250...1251...1252...1253...1254...1255...1256...1257...1258...1259...1260...1261...1262...1263...1264...1265...1266...1267...1268...1269...1270...1271...1272...1273...1274...1275...1276...1277...1278...1279...1280...1281...1282...1283...1284...1285...1286...1287...1288...1289...1290...1291...1292...1293...1294...1295...1296...1297...1298...1299...1300...1301...1302...1303...1304...1305...1306...1307...1308...1309...1310...1311...1312...1313...1314...1315...1316...1317...1318...1319...1320...1321...1322...1323...1324...1325...1326...1327...1328...1329...1330...1331...1332...1333...1334...1335...1336...1337...1338...1339...1340...1341...1342...1343...1344...1345...1346...1347...1348...1349...1350...1351...1352...1353...1354...1355...1356...1357...1358...1359...1360...1361...1362...1363...1364...1365...1366...1367...1368...1369...1370...1371...1372...1373...1374...1375...1376...1377...1378...1379...1380...1381...1382...1383...1384...1385...1386...1387...1388...1389...1390...1391...1392...1393...1394...1395...1396...1397...1398...1399...1400...1401...1402...1403...1404...1405...1407...1407...1408...1409...1410...1411...1412...1413...1414...1415...1416...1417...1418...1419...1420...1421...1422...1423...1424...1425...1426...1427...1428...1429...1430...1431...1432...1433...1434...1435...1436...1437...1438...1439...1440...1441...1442...1443...1444...1445...1446...1447...1448...1449...1450...1451...1452...1453...1454...1455...1456...1457...1458...1459...1460...1461...1462...1463...1464...1465...1466...1467...1468...1469...1470...1471...1472...1473...1474...1475...1476...1477...1478...1479...1480...1481...1482...1483...1484...1485...1486...1487...1488...1489...1490...1491...1492...1493...1494...1495...1496...1497...1498...1499...1500...1501...1502...1503...1504...1505...1506...1507...1508...1509...1510...1511...1512...1513...1514...1515...1516...1517...1518...1519...1520...1521...1522...1523...1524...1525...1526...1527...1528...1529...1530...1531...1532...1533...1534...1535...1536...1537...1538...1539...1540...1541...1542...1543...1544...1545...1546...1547...1548...1549...1550...1551...1552...1553...1554...1555...1556...1557...1558...1559...1560...1561...1562...1563...1564...1565...1566...1567...1568...1569...1570...1571...1572...1573...1574...1575...1576...1577...1578...1579...1580...1581...1582...1583...1584...1585...1586...1587...1588...1589...1590...1591...1592...1593...1594...1595...1596...1597...1598...1599...1600...1601...1602...1603...1604...1605...1606...1607...1608...1609...1610...1611...1612...1613...1614...1615...1616...1617...1618...1619...1620...1621...1622...1623...1624...1625...1626...1627...1628...1629...1630...1631...1632...1633...1634...1635...1636...1637...1638...1639...1640...1641...1642...1643...1644...1645...1646...1647...1648...1649...1650...1651...1652...1653...1654...1655...1656...1657...1658...1659...1660...1661...1662...1663...1664...1665...1666...1667...1668...1669...1670...1671...1672...1673...1674...1675...1676...1677...1678...1679...1680...1681...1682...1683...1684...1685...1686...1687...1688...1689...1690...1691...1692...1693...1694...1695...1696...1697...1698...1699...1700...1701...1702...1703...1704...1705...1706...1707...1708...1709...1710...1711...1712...1713...1714...1715...1716...1717...1718...1719...1720...1721...1722...1723...1724...1725...1726...1727...1728...1729...1730...1731...1732...1733...1734...1735...1736...1737...1738...1739...1740...1741...1742...1743...1744...1745...1746...1747...1748...1749...1750...1751...1752...1753...1754...1755...1756...1757...1758...1759...1760...1761...1762...1763...1764...1765...1766...1767...1768...1769...1770...1771...1772...1773...1774...1775...1776...1777...1778...1779...1780...1781...1782...1783...1784...1785...1786...1787...1788...1789...1790...1791...1792...1793...1794...1795...1796...1797...1798...1799...1800...1801...1802...1803...1804...1805...1806...1807...1808...1809...1810...1811...1812...1813...1814...1815...1816...1817...1818...1819...1820...1821...1822...1823...1824...1825...1826...1827...1828...1829...1830...1831...1832...1833...1834...1835...1836...1837...1838...1839...1840...1841...1842...1843...1844...1845...1846...1847...1848...1849...1850...1851...1852...1853...1854...1855...1856...1857...1858...1859...1860...1861...1862...1863...1864...1865...1866...1867...1868...1869...1870...1871...1872...1873...1874...1876...1876...1877...1878...1879...1880...1881...1882...1883...1884...1885...1886...1887...1888...1889...1890...1891...1892...1893...1894...1895...1896...1897...1898...1899...1900...1901...1902...1903...1904...1905...1906...1907...1908...1909...1910...1911...1912...1913...1914...1915...1916...1917...1918...1919...1920...1921...1922...1923...1924...1925...1926...1927...1928...1929...1930...1931...1932...1933...1934...1935...1936...1937...1938...1939...1940...1941...1942...1943...1944...1945...1946...1947...1948...1949...1950...1951...1952...1953...1954...1955...1956...1957...1958...1959...1960...1961...1962...1963...1964...1965...1966...1967...1968...1969...1970...1971...1972...1973...1974...1975...1976...1977...1978...1979...1980...1981...1982...1983...1984...1985...1986...1987...1988...1989...1990...1991...1992...1993...1994...1995...1996...1997...1998...1999...2000...2001...2002...2003...2004...2005...2006...2007...2008...2009...2010...2011...2012...2013...2014...2015...2016...2017...2018...2019...2020...2021...2022...2023...2024...2025...2026...2027...2028...2029...2030...2031...2032...2033...2034...2035...2036...2037...2038...2039...2040...2041...2042...2043...2044...2045...2046...2047...2048...2049...2050...2051...2052...2053...2054...2055...2056...2057...2058...2059...2060...2061...2062...2063...2064...2065...2066...2067...2068...2069...2070...2071...2072...2073...2074...2075...2076...2077...2078...2079...2080...2081...2082...2083...2084...2085...2086...2087...2088...2089...2090...2091...2092...2093...2094...2095...2096...2097...2098...2099...2100...2101...2102...2103...2104...2105...2106...2107...2108...2109...2110...2111...2112...2113...2114...2115...2116...2117...2118...2119...2120...2121...2122...2123...2124...2125...2126...2127...2128...2129...2130...2131...2132...2133...2134...2135...2136...2137...2138...2139...2140...2141...2142...2143...2144...2145...2146...2147...2148...2149...2150...2151...2152...2153...2154...2155...2156...2157...2158...2159...2160...2161...2162...2163...2164...2165...2166...2167...2168...2169...2170...2171...2172...2173...2174...2175...2176...2177...2178...2179...2180...2181...2182...2183...2184...2185...2186...2187...2188...2189...2190...2191...2192...2193...2194...2195...2196...2197...2198...2199...2200...2201...2202...2203...2204...2205...2206...2207...2208...2209...2210...2211...2212...2213...2214...2215...2216...2217...2218...2219...2220...2221...2222...2223...2224...2225...2226...2227...2228...2229...2230...2231...2232...2233...2234...2235...2236...2237...2238...2239...2240...2241...2242...2243...2244...2245...2246...2247...2248...2249...2250...2251...2252...2253...2254...2255...2256...2257...2258...2259...2260...2261...2262...2263...2264...2265...2266...2267...2268...2269...2270...2271...2272...2273...2274...2275...2276...2277...2278...2279...2280...2281...2282...2283...2284...2285...2286...2287...2288...2289...2290...2291...2292...2293...2294...2295...2296...2297...2298...2299...2300...2301...2302...2303...2304...2305...2306...2307...2308...2309...2310...2311...2312...2313...2314...2315...2316...2317...2318...2319...2320...2321...2322...2323...2324...2325...2326...2327...2328...2329...2330...2331...2332...2333...2334...2335...2336...2337...2338...2339...2340...2341...2342...2343...2344...2345...2346...2347...2348...2349...2350...2351...2352...2353...2354...2355...2356...2357...2358...2359...2360...2361...2362...2363...2364...2365...2366...2367...2368...2369...2370...2371...2372...2373...2374...2375...2376...2377...2378...2379...2380...2381...2382...2383...2384...2385...2386...2387...2388...2389...2390...2391...2392...2393...2394...2395...2396...2397...2398...2399...2400...2401...2402...2403...2404...2405...2406...2407...2408...2409...2410...2411...2412...2413...2414...2415...2416...2417...2418...2419...2420...2421...2422...2423...2424...2425...2426...2427...2428...2429...2430...2431...2432...2433...2434...2435...2436...2437...2438...2439...2440...2441...2442...2443...2444...2445...2446...2447...2448...2449...2450...2451...2452...2453...2454...2455...2456...2457...2458...2459...2460...2461...2462...2463...2464...2465...2466...2467...2468...2469...2470...2471...2472...2473...2474...2475...2476...2477...2478...2479...2480...2481...2482...2483...2484...2485...2486...2487...2488...2489...2490...2491...2492...2493...2494...2495...2496...2497...2498...2499...2500...2501...2502...2503...2504...2505...2506...2507...2508...2509...2510...2511...2512...2513...2514...2515...2516...2517...2518...2519...2520...2521...2522...2523...2524...2525...2526...2527...2528...2529...2530...2531...2532...2533...2534...2535...2536...2537...2538...2539...2540...2541...2542...2543...2544...2545...2546...2547...2548...2549...2550...2551...2552...2553...2554...2555...2556...2557...2558...2559...2560...2561...2562...2563...2564...2565...2566...2567...2568...2569...2570...2571...2572...2573...2574...2575...2576...2577...2578...2579...2580...2581...2582...2583...2584...2585...2586...2587...2588...2589...2590...2591...2592...2593...2594...2595...2596...2597...2598...2599...2600...2601...2602...2603...2604...2605...2606...2607...2608...2609...2610...2611...2612...2613...2614...2615...2616...2617...2618...2619...2620...2621...2622...2623...2624...2625...2626...2627...2628...2629...2630...2631...2632...2633...2634...2635...2636...2637...2638...2639...2640...2641...2642...2643...2644...2645...2646...2647...2648...2649...2650...2651...2652...2653...2654...2655...2656...2657...2658...2659...2660...2661...2662...2663...2664...2665...2666...2667...2668...2669...2670...2671...2672...2673...2674...2675...2676...2677...2678...2679...2680...2681...2682...2683...2684...2685...2686...2687...2688...2689...2690...2691...2692...2693...2694...2695...2696...2697...2698...2699...2700...2701...2702...2703...2704...2705...2706...2707...2708...2709...2710...2711...2712...2713...2714...2715...2716...2717...2718...2719...2720...2721...2722...2723...2724...2725...2726...2727...2728...2729...2730...2731...2732...2733...2734...2735...2736...2737...2738...2739...2740...2741...2742...2743...2744...2745...2746...2747...2748...2749...2750...2751...2752...2753...2754...2755...2756...2757...2758...2759...2760...2761...2762...2763...2764...2765...2766...2767...2768...2769...2770...2771...2772...2773...2774...2775...2776...2777...2778...2779...2780...2781...2782...2783...2784...2785...2786...2787...2788...2789...2790...2791...2792...2793...2794...2795...2796...2797...2798...2799...2800...2801...2802...2803...2804...2805...2806...2807...2808...2809...2810...2811...2813...2813...2814...2815...2816...2817...2818...2819...2820...2821...2822...2823...2824...2825...2826...2827...2828...2829...2830...2831...2832...2833...2834...2835...2836...2837...2838...2839...2840...2841...2842...2843...2844...2845...2846...2847...2848...2849...2850...2851...2852...2853...2854...2855...2856...2857...2858...2859...2860...2861...2862...2863...2864...2865...2866...2867...2868...2869...2870...2871...2872...2873...2874...2875...2876...2877...2878...2879...2880...2881...2882...2883...2884...2885...2886...2887...2888...2889...2890...2891...2892...2893...2894...2895...2896...2897...2898...2899...2900...2901...2902...2903...2904...2905...2906...2907...2908...2909...2910...2911...2912...2913...2914...2915...2916...2917...2918...2919...2920...2921...2922...2923...2924...2925...2926...2927...2928...2929...2930...2931...2932...2933...2934...2935...2936...2937...2938...2939...2940...2941...2942...2943...2944...2945...2946...2947...2948...2949...2950...2951...2952...2953...2954...2955...2956...2957...2958...2959...2960...2961...2962...2963...2964...2965...2966...2967...2968...2969...2970...2971...2972...2973...2974...2975...2976...2977...2978...2979...2980...2981...2982...2983...2984...2985...2986...2987...2988...2989...2990...2991...2992...2993...2994...2995...2996...2997...2998...2999...3000...3001...3002...3003...3004...3005...3006...3007...3008...3009...3010...3011...3012...3013...3014...3015...3016...3017...3018...3019...3020...3021...3022...3023...3024...3025...3026...3027...3028...3029...3030...3031...3032...3033...3034...3035...3036...3037...3038...3039...3040...3041...3042...3043...3044...3045...3046...3047...3048...3049...3050...3051...3052...3053...3054...3055...3056...3057...3058...3059...3060...3061...3062...3063...3064...3065...3066...3067...3068...3069...3070...3071...3072...3073...3074...3075...3076...3077...3078...3079...3080...3081...3082...3083...3084...3085...3086...3087...3088...3089...3090...3091...3092...3093...3094...3095...3096...3097...3098...3099...3100...3101...3102...3103...3104...3105...3106...3107...3108...3109...3110...3111...3112...3113...3114...3115...3116...3117...3118...3119...3120...3121...3122...3123...3124...3125...3126...3127...3128...3129...3130...3131...3132...3133...3134...3135...3136...3137...3138...3139...3140...3141...3142...3143...3144...3145...3146...3147...3148...3149...3150...3151...3152...3153...3154...3155...3156...3157...3158...3159...3160...3161...3162...3163...3164...3165...3166...3167...3168...3169...3170...3171...3172...3173...3174...3175...3176...3177...3178...3179...3180...3181...3182...3183...3184...3185...3186...3187...3188...3189...3190...3191...3192...3193...3194...3195...3196...3197...3198...3199...3200...3201...3202...3203...3204...3205...3206...3207...3208...3209...3210...3211...3212...3213...3214...3215...3216...3217...3218...3219...3220...3221...3222...3223...3224...3225...3226...3227...3228...3229...3230...3231...3232...3233...3234...3235...3236...3237...3238...3239...3240...3241...3242...3243...3244...3245...3246...3247...3248...3249...3250...3251...3252...3253...3254...3255...3256...3257...3258...3259...3260...3261...3262...3263...3264...3265...3266...3267...3268...3269...3270...3271...3272...3273...3274...3275...3276...3277...3278...3279...3280...3282...3282...3283...3284...3285...3286...3287...3288...3289...3290...3291...3292...3293...3294...3295...3296...3297...3298...3299...3300...3301...3302...3303...3304...3305...3306...3307...3308...3309...3310...3311...3312...3313...3314...3315...3316...3317...3318...3319...3320...3321...3322...3323...3324...3325...3326...3327...3328...3329...3330...3331...3332...3333...3334...3335...3336...3337...3338...3339...3340...3341...3342...3343...3344...3345...3346...3347...3348...3349...3350...3351...3352...3353...3354...3355...3356...3357...3358...3359...3360...3361...3362...3363...3364...3365...3366...3367...3368...3369...3370...3371...3372...3373...3374...3375...3376...3377...3378...3379...3380...3381...3382...3383...3384...3385...3386...3387...3388...3389...3390...3391...3392...3393...3394...3395...3396...3397...3398...3399...3400...3401...3402...3403...3404...3405...3406...3407...3408...3409...3410...3411...3412...3413...3414...3415...3416...3417...3418...3419...3420...3421...3422...3423...3424...3425...3426...3427...3428...3429...3430...3431...3432...3433...3434...3435...3436...3437...3438...3439...3440...3441...3442...3443...3444...3445...3446...3447...3448...3449...3450...3451...3452...3453...3454...3455...3456...3457...3458...3459...3460...3461...3462...3463...3464...3465...3466...3467...3468...3469...3470...3471...3472...3473...3474...3475...3476...3477...3478...3479...3480...3481...3482...3483...3484...3485...3486...3487...3488...3489...3490...3491...3492...3493...3494...3495...3496...3497...3498...3499...3500...3501...3502...3503...3504...3505...3506...3507...3508...3509...3510...3511...3512...3513...3514...3515...3516...3517...3518...3519...3520...3521...3522...3523...3524...3525...3526...3527...3528...3529...3530...3531...3532...3533...3534...3535...3536...3537...3538...3539...3540...3541...3542...3543...3544...3545...3546...3547...3548...3549...3550...3551...3552...3553...3554...3555...3556...3557...3558...3559...3560...3561...3562...3563...3564...3565...3566...3567...3568...3569...3570...3571...3572...3573...3574...3575...3576...3577...3578...3579...3580...3581...3582...3583...3584...3585...3586...3587...3588...3589...3590...3591...3592...3593...3594...3595...3596...3597...3598...3599...3600...3601...3602...3603...3604...3605...3606...3607...3608...3609...3610...3611...3612...3613...3614...3615...3616...3617...3618...3619...3620...3621...3622...3623...3624...3625...3626...3627...3628...3629...3630...3631...3632...3633...3634...3635...3636...3637...3638...3639...3640...3641...3642...3643...3644...3645...3646...3647...3648...3649...3650...3651...3652...3653...3654...3655...3656...3657...3658...3659...3660...3661...3662...3663...3664...3665...3666...3667...3668...3669...3670...3671...3672...3673...3674...3675...3676...3677...3678...3679...3680...3681...3682...3683...3684...3685...3686...3687...3688...3689...3690...3691...3692...3693...3694...3695...3696...3697...3698...3699...3700...3701...3702...3703...3704...3705...3706...3707...3708...3709...3710...3711...3712...3713...3714...3715...3716...3717...3718...3719...3720...3721...3722...3723...3724...3725...3726...3727...3728...3729...3730...3731...3732...3733...3734...3735...3736...3737...3738...3739...3740...3741...3742...3743...3744...3745...3746...3747...3748...3749...3751...3751...3752...3753...3754...3755...3756...3757...3758...3759...3760...3761...3762...3763...3764...3765...3766...3767...3768...3769...3770...3771...3772...3773...3774...3775...3776...3777...3778...3779...3780...3781...3782...3783...3784...3785...3786...3787...3788...3789...3790...3791...3792...3793...3794...3795...3796...3797...3798...3799...3800...3801...3802...3803...3804...3805...3806...3807...3808...3809...3810...3811...3812...3813...3814...3815...3816...3817...3818...3819...3820...3821...3822...3823...3824...3825...3826...3827...3828...3829...3830...3831...3832...3833...3834...3835...3836...3837...3838...3839...3840...3841...3842...3843...3844...3845...3846...3847...3848...3849...3850...3851...3852...3853...3854...3855...3856...3857...3858...3859...3860...3861...3862...3863...3864...3865...3866...3867...3868...3869...3870...3871...3872...3873...3874...3875...3876...3877...3878...3879...3880...3881...3882...3883...3884...3885...3886...3887...3888...3889...3890...3891...3892...3893...3894...3895...3896...3897...3898...3899...3900...3901...3902...3903...3904...3905...3906...3907...3908...3909...3910...3911...3912...3913...3914...3915...3916...3917...3918...3919...3920...3921...3922...3923...3924...3925...3926...3927...3928...3929...3930...3931...3932...3933...3934...3935...3936...3937...3938...3939...3940...3941...3942...3943...3944...3945...3946...3947...3948...3949...3950...3951...3952...3953...3954...3955...3956...3957...3958...3959...3960...3961...3962...3963...3964...3965...3966...3967...3968...3969...3970...3971...3972...3973...3974...3975...3976...3977...3978...3979...3980...3981...3982...3983...3984...3985...3986...3987...3988...3989...3990...3991...3992...3993...3994...3995...3996...3997...3998...3999...4000...4001...4002...4003...4004...4005...4006...4007...4008...4009...4010...4011...4012...4013...4014...4015...4016...4017...4018...4019...4020...4021...4022...4023...4024...4025...4026...4027...4028...4029...4030...4031...4032...4033...4034...4035...4036...4037...4038...4039...4040...4041...4042...4043...4044...4045...4046...4047...4048...4049...4050...4051...4052...4053...4054...4055...4056...4057...4058...4059...4060...4061...4062...4063...4064...4065...4066...4067...4068...4069...4070...4071...4072...4073...4074...4075...4076...4077...4078...4079...4080...4081...4082...4083...4084...4085...4086...4087...4088...4089...4090...4091...4092...4093...4094...4095...4096...4097...4098...4099...4100...4101...4102...4103...4104...4105...4106...4107...4108...4109...4110...4111...4112...4113...4114...4115...4116...4117...4118...4119...4120...4121...4122...4123...4124...4125...4126...4127...4128...4129...4130...4131...4132...4133...4134...4135...4136...4137...4138...4139...4140...4141...4142...4143...4144...4145...4146...4147...4148...4149...4150...4151...4152...4153...4154...4155...4156...4157...4158...4159...4160...4161...4162...4163...4164...4165...4166...4167...4168...4169...4170...4171...4172...4173...4174...4175...4176...4177...4178...4179...4180...4181...4182...4183...4184...4185...4186...4187...4188...4189...4190...4191...4192...4193...4194...4195...4196...4197...4198...4199...4200...4201...4202...4203...4204...4205...4206...4207...4208...4209...4210...4211...4212...4213...4214...4215...4216...4217...4218...4220...4220...4221...4222...4223...4224...4225...4226...4227...4228...4229...4230...4231...4232...4233...4234...4235...4236...4237...4238...4239...4240...4241...4242...4243...4244...4245...4246...4247...4248...4249...4250...4251...4252...4253...4254...4255...4256...4257...4258...4259...4260...4261...4262...4263...4264...4265...4266...4267...4268...4269...4270...4271...4272...4273...4274...4275...4276...4277...4278...4279...4280...4281...4282...4283...4284...4285...4286...4287...4288...4289...4290...4291...4292...4293...4294...4295...4296...4297...4298...4299...4300...4301...4302...4303...4304...4305...4306...4307...4308...4309...4310...4311...4312...4313...4314...4315...4316...4317...4318...4319...4320...4321...4322...4323...4324...4325...4326...4327...4328...4329...4330...4331...4332...4333...4334...4335...4336...4337...4338...4339...4340...4341...4342...4343...4344...4345...4346...4347...4348...4349...4350...4351...4352...4353...4354...4355...4356...4357...4358...4359...4360...4361...4362...4363...4364...4365...4366...4367...4368...4369...4370...4371...4372...4373...4374...4375...4376...4377...4378...4379...4380...4381...4382...4383...4384...4385...4386...4387...4388...4389...4390...4391...4392...4393...4394...4395...4396...4397...4398...4399...4400...4401...4402...4403...4404...4405...4406...4407...4408...4409...4410...4411...4412...4413...4414...4415...4416...4417...4418...4419...4420...4421...4422...4423...4424...4425...4426...4427...4428...4429...4430...4431...4432...4433...4434...4435...4436...4437...4438...4439...4440...4441...4442...4443...4444...4445...4446...4447...4448...4449...4450...4451...4452...4453...4454...4455...4456...4457...4458...4459...4460...4461...4462...4463...4464...4465...4466...4467...4468...4469...4470...4471...4472...4473...4474...4475...4476...4477...4478...4479...4480...4481...4482...4483...4484...4485...4486...4487...4488...4489...4490...4491...4492...4493...4494...4495...4496...4497...4498...4499...4500...4501...4502...4503...4504...4505...4506...4507...4508...4509...4510...4511...4512...4513...4514...4515...4516...4517...4518...4519...4520...4521...4522...4523...4524...4525...4526...4527...4528...4529...4530...4531...4532...4533...4534...4535...4536...4537...4538...4539...4540...4541...4542...4543...4544...4545...4546...4547...4548...4549...4550...4551...4552...4553...4554...4555...4556...4557...4558...4559...4560...4561...4562...4563...4564...4565...4566...4567...4568...4569...4570...4571...4572...4573...4574...4575...4576...4577...4578...4579...4580...4581...4582...4583...4584...4585...4586...4587...4588...4589...4590...4591...4592...4593...4594...4595...4596...4597...4598...4599...4600...4601...4602...4603...4604...4605...4606...4607...4608...4609...4610...4611...4612...4613...4614...4615...4616...4617...4618...4619...4620...4621...4622...4623...4624...4625...4626...4627...4628...4629...4630...4631...4632...4633...4634...4635...4636...4637...4638...4639...4640...4641...4642...4643...4644...4645...4646...4647...4648...4649...4650...4651...4652...4653...4654...4655...4656...4657...4658...4659...4660...4661...4662...4663...4664...4665...4666...4667...4668...4669...4670...4671...4672...4673...4674...4675...4676...4677...4678...4679...4680...4681...4682...4683...4684...4685...4686...4687...4688...4689...4690...4691...4692...4693...4694...4695...4696...4697...4698...4699...4700...4701...4702...4703...4704...4705...4706...4707...4708...4709...4710...4711...4712...4713...4714...4715...4716...4717...4718...4719...4720...4721...4722...4723...4724...4725...4726...4727...4728...4729...4730...4731...4732...4733...4734...4735...4736...4737...4738...4739...4740...4741...4742...4743...4744...4745...4746...4747...4748...4749...4750...4751...4752...4753...4754...4755...4756...4757...4758...4759...4760...4761...4762...4763...4764...4765...4766...4767...4768...4769...4770...4771...4772...4773...4774...4775...4776...4777...4778...4779...4780...4781...4782...4783...4784...4785...4786...4787...4788...4789...4790...4791...4792...4793...4794...4795...4796...4797...4798...4799...4800...4801...4802...4803...4804...4805...4806...4807...4808...4809...4810...4811...4812...4813...4814...4815...4816...4817...4818...4819...4820...4821...4822...4823...4824...4825...4826...4827...4828...4829...4830...4831...4832...4833...4834...4835...4836...4837...4838...4839...4840...4841...4842...4843...4844...4845...4846...4847...4848...4849...4850...4851...4852...4853...4854...4855...4856...4857...4858...4859...4860...4861...4862...4863...4864...4865...4866...4867...4868...4869...4870...4871...4872...4873...4874...4875...4876...4877...4878...4879...4880...4881...4882...4883...4884...4885...4886...4887...4888...4889...4890...4891...4892...4893...4894...4895...4896...4897...4898...4899...4900...4901...4902...4903...4904...4905...4906...4907...4908...4909...4910...4911...4912...4913...4914...4915...4916...4917...4918...4919...4920...4921...4922...4923...4924...4925...4926...4927...4928...4929...4930...4931...4932...4933...4934...4935...4936...4937...4938...4939...4940...4941...4942...4943...4944...4945...4946...4947...4948...4949...4950...4951...4952...4953...4954...4955...4956...4957...4958...4959...4960...4961...4962...4963...4964...4965...4966...4967...4968...4969...4970...4971...4972...4973...4974...4975...4976...4977...4978...4979...4980...4981...4982...4983...4984...4985...4986...4987...4988...4989...4990...4991...4992...4993...4994...4995...4996...4997...4998...4999...5000...5001...5002...5003...5004...5005...5006...5007...5008...5009...5010...5011...5012...5013...5014...5015...5016...5017...5018...5019...5020...5021...5022...5023...5024...5025...5026...5027...5028...5029...5030...5031...5032...5033...5034...5035...5036...5037...5038...5039...5040...5041...5042...5043...5044...5045...5046...5047...5048...5049...5050...5051...5052...5053...5054...5055...5056...5057...5058...5059...5060...5061...5062...5063...5064...5065...5066...5067...5068...5069...5070...5071...5072...5073...5074...5075...5076...5077...5078...5079...5080...5081...5082...5083...5084...5085...5086...5087...5088...5089...5090...5091...5092...5093...5094...5095...5096...5097...5098...5099...5100...5101...5102...5103...5104...5105...5106...5107...5108...5109...5110...5111...5112...5113...5114...5115...5116...5117...5118...5119...5120...5121...5122...5123...5124...5125...5126...5127...5128...5129...5130...5131...5132...5133...5134...5135...5136...5137...5138...5139...5140...5141...5142...5143...5144...5145...5146...5147...5148...5149...5150...5151...5152...5153...5154...5155...5157...5157...5158...5159...5160...5161...5162...5163...5164...5165...5166...5167...5168...5169...5170...5171...5172...5173...5174...5175...5176...5177...5178...5179...5180...5181...5182...5183...5184...5185...5186...5187...5188...5189...5190...5191...5192...5193...5194...5195...5196...5197...5198...5199...5200...5201...5202...5203...5204...5205...5206...5207...5208...5209...5210...5211...5212...5213...5214...5215...5216...5217...5218...5219...5220...5221...5222...5223...5224...5225...5226...5227...5228...5229...5230...5231...5232...5233...5234...5235...5236...5237...5238...5239...5240...5241...5242...5243...5244...5245...5246...5247...5248...5249...5250...5251...5252...5253...5254...5255...5256...5257...5258...5259...5260...5261...5262...5263...5264...5265...5266...5267...5268...5269...5270...5271...5272...5273...5274...5275...5276...5277...5278...5279...5280...5281...5282...5283...5284...5285...5286...5287...5288...5289...5290...5291...5292...5293...5294...5295...5296...5297...5298...5299...5300...5301...5302...5303...5304...5305...5306...5307...5308...5309...5310...5311...5312...5313...5314...5315...5316...5317...5318...5319...5320...5321...5322...5323...5324...5325...5326...5327...5328...5329...5330...5331...5332...5333...5334...5335...5336...5337...5338...5339...5340...5341...5342...5343...5344...5345...5346...5347...5348...5349...5350...5351...5352...5353...5354...5355...5356...5357...5358...5359...5360...5361...5362...5363...5364...5365...5366...5367...5368...5369...5370...5371...5372...5373...5374...5375...5376...5377...5378...5379...5380...5381...5382...5383...5384...5385...5386...5387...5388...5389...5390...5391...5392...5393...5394...5395...5396...5397...5398...5399...5400...5401...5402...5403...5404...5405...5406...5407...5408...5409...5410...5411...5412...5413...5414...5415...5416...5417...5418...5419...5420...5421...5422...5423...5424...5425...5426...5427...5428...5429...5430...5431...5432...5433...5434...5435...5436...5437...5438...5439...5440...5441...5442...5443...5444...5445...5446...5447...5448...5449...5450...5451...5452...5453...5454...5455...5456...5457...5458...5459...5460...5461...5462...5463...5464...5465...5466...5467...5468...5469...5470...5471...5472...5473...5474...5475...5476...5477...5478...5479...5480...5481...5482...5483...5484...5485...5486...5487...5488...5489...5490...5491...5492...5493...5494...5495...5496...5497...5498...5499...5500...5501...5502...5503...5504...5505...5506...5507...5508...5509...5510...5511...5512...5513...5514...5515...5516...5517...5518...5519...5520...5521...5522...5523...5524...5525...5526...5527...5528...5529...5530...5531...5532...5533...5534...5535...5536...5537...5538...5539...5540...5541...5542...5543...5544...5545...5546...5547...5548...5549...5550...5551...5552...5553...5554...5555...5556...5557...5558...5559...5560...5561...5562...5563...5564...5565...5566...5567...5568...5569...5570...5571...5572...5573...5574...5575...5576...5577...5578...5579...5580...5581...5582...5583...5584...5585...5586...5587...5588...5589...5590...5591...5592...5593...5594...5595...5596...5597...5598...5599...5600...5601...5602...5603...5604...5605...5606...5607...5608...5609...5610...5611...5612...5613...5614...5615...5616...5617...5618...5619...5620...5621...5622...5623...5624...5626...5626...5627...5628...5629...5630...5631...5632...5633...5634...5635...5636...5637...5638...5639...5640...5641...5642...5643...5644...5645...5646...5647...5648...5649...5650...5651...5652...5653...5654...5655...5656...5657...5658...5659...5660...5661...5662...5663...5664...5665...5666...5667...5668...5669...5670...5671...5672...5673...5674...5675...5676...5677...5678...5679...5680...5681...5682...5683...5684...5685...5686...5687...5688...5689...5690...5691...5692...5693...5694...5695...5696...5697...5698...5699...5700...5701...5702...5703...5704...5705...5706...5707...5708...5709...5710...5711...5712...5713...5714...5715...5716...5717...5718...5719...5720...5721...5722...5723...5724...5725...5726...5727...5728...5729...5730...5731...5732...5733...5734...5735...5736...5737...5738...5739...5740...5741...5742...5743...5744...5745...5746...5747...5748...5749...5750...5751...5752...5753...5754...5755...5756...5757...5758...5759...5760...5761...5762...5763...5764...5765...5766...5767...5768...5769...5770...5771...5772...5773...5774...5775...5776...5777...5778...5779...5780...5781...5782...5783...5784...5785...5786...5787...5788...5789...5790...5791...5792...5793...5794...5795...5796...5797...5798...5799...5800...5801...5802...5803...5804...5805...5806...5807...5808...5809...5810...5811...5812...5813...5814...5815...5816...5817...5818...5819...5820...5821...5822...5823...5824...5825...5826...5827...5828...5829...5830...5831...5832...5833...5834...5835...5836...5837...5838...5839...5840...5841...5842...5843...5844...5845...5846...5847...5848...5849...5850...5851...5852...5853...5854...5855...5856...5857...5858...5859...5860...5861...5862...5863...5864...5865...5866...5867...5868...5869...5870...5871...5872...5873...5874...5875...5876...5877...5878...5879...5880...5881...5882...5883...5884...5885...5886...5887...5888...5889...5890...5891...5892...5893...5894...5895...5896...5897...5898...5899...5900...5901...5902...5903...5904...5905...5906...5907...5908...5909...5910...5911...5912...5913...5914...5915...5916...5917...5918...5919...5920...5921...5922...5923...5924...5925...5926...5927...5928...5929...5930...5931...5932...5933...5934...5935...5936...5937...5938...5939...5940...5941...5942...5943...5944...5945...5946...5947...5948...5949...5950...5951...5952...5953...5954...5955...5956...5957...5958...5959...5960...5961...5962...5963...5964...5965...5966...5967...5968...5969...5970...5971...5972...5973...5974...5975...5976...5977...5978...5979...5980...5981...5982...5983...5984...5985...5986...5987...5988...5989...5990...5991...5992...5993...5994...5995...5996...5997...5998...5999...6000...6001...6002...6003...6004...6005...6006...6007...6008...6009...6010...6011...6012...6013...6014...6015...6016...6017...6018...6019...6020...6021...6022...6023...6024...6025...6026...6027...6028...6029...6030...6031...6032...6033...6034...6035...6036...6037...6038...6039...6040...6041...6042...6043...6044...6045...6046...6047...6048...6049...6050...6051...6052...6053...6054...6055...6056...6057...6058...6059...6060...6061...6062...6063...6064...6065...6066...6067...6068...6069...6070...6071...6072...6073...6074...6075...6076...6077...6078...6079...6080...6081...6082...6083...6084...6085...6086...6087...6088...6089...6090...6091...6092...6093...6095...6095...6096...6097...6098...6099...6100...6101...6102...6103...6104...6105...6106...6107...6108...6109...6110...6111...6112...6113...6114...6115...6116...6117...6118...6119...6120...6121...6122...6123...6124...6125...6126...6127...6128...6129...6130...6131...6132...6133...6134...6135...6136...6137...6138...6139...6140...6141...6142...6143...6144...6145...6146...6147...6148...6149...6150...6151...6152...6153...6154...6155...6156...6157...6158...6159...6160...6161...6162...6163...6164...6165...6166...6167...6168...6169...6170...6171...6172...6173...6174...6175...6176...6177...6178...6179...6180...6181...6182...6183...6184...6185...6186...6187...6188...6189...6190...6191...6192...6193...6194...6195...6196...6197...6198...6199...6200...6201...6202...6203...6204...6205...6206...6207...6208...6209...6210...6211...6212...6213...6214...6215...6216...6217...6218...6219...6220...6221...6222...6223...6224...6225...6226...6227...6228...6229...6230...6231...6232...6233...6234...6235...6236...6237...6238...6239...6240...6241...6242...6243...6244...6245...6246...6247...6248...6249...6250...6251...6252...6253...6254...6255...6256...6257...6258...6259...6260...6261...6262...6263...6264...6265...6266...6267...6268...6269...6270...6271...6272...6273...6274...6275...6276...6277...6278...6279...6280...6281...6282...6283...6284...6285...6286...6287...6288...6289...6290...6291...6292...6293...6294...6295...6296...6297...6298...6299...6300...6301...6302...6303...6304...6305...6306...6307...6308...6309...6310...6311...6312...6313...6314...6315...6316...6317...6318...6319...6320...6321...6322...6323...6324...6325...6326...6327...6328...6329...6330...6331...6332...6333...6334...6335...6336...6337...6338...6339...6340...6341...6342...6343...6344...6345...6346...6347...6348...6349...6350...6351...6352...6353...6354...6355...6356...6357...6358...6359...6360...6361...6362...6363...6364...6365...6366...6367...6368...6369...6370...6371...6372...6373...6374...6375...6376...6377...6378...6379...6380...6381...6382...6383...6384...6385...6386...6387...6388...6389...6390...6391...6392...6393...6394...6395...6396...6397...6398...6399...6400...6401...6402...6403...6404...6405...6406...6407...6408...6409...6410...6411...6412...6413...6414...6415...6416...6417...6418...6419...6420...6421...6422...6423...6424...6425...6426...6427...6428...6429...6430...6431...6432...6433...6434...6435...6436...6437...6438...6439...6440...6441...6442...6443...6444...6445...6446...6447...6448...6449...6450...6451...6452...6453...6454...6455...6456...6457...6458...6459...6460...6461...6462...6463...6464...6465...6466...6467...6468...6469...6470...6471...6472...6473...6474...6475...6476...6477...6478...6479...6480...6481...6482...6483...6484...6485...6486...6487...6488...6489...6490...6491...6492...6493...6494...6495...6496...6497...6498...6499...6500...6501...6502...6503...6504...6505...6506...6507...6508...6509...6510...6511...6512...6513...6514...6515...6516...6517...6518...6519...6520...6521...6522...6523...6524...6525...6526...6527...6528...6529...6530...6531...6532...6533...6534...6535...6536...6537...6538...6539...6540...6541...6542...6543...6544...6545...6546...6547...6548...6549...6550...6551...6552...6553...6554...6555...6556...6557...6558...6559...6560...6561...6562...6564...6564...6565...6566...6567...6568...6569...6570...6571...6572...6573...6574...6575...6576...6577...6578...6579...6580...6581...6582...6583...6584...6585...6586...6587...6588...6589...6590...6591...6592...6593...6594...6595...6596...6597...6598...6599...6600...6601...6602...6603...6604...6605...6606...6607...6608...6609...6610...6611...6612...6613...6614...6615...6616...6617...6618...6619...6620...6621...6622...6623...6624...6625...6626...6627...6628...6629...6630...6631...6632...6633...6634...6635...6636...6637...6638...6639...6640...6641...6642...6643...6644...6645...6646...6647...6648...6649...6650...6651...6652...6653...6654...6655...6656...6657...6658...6659...6660...6661...6662...6663...6664...6665...6666...6667...6668...6669...6670...6671...6672...6673...6674...6675...6676...6677...6678...6679...6680...6681...6682...6683...6684...6685...6686...6687...6688...6689...6690...6691...6692...6693...6694...6695...6696...6697...6698...6699...6700...6701...6702...6703...6704...6705...6706...6707...6708...6709...6710...6711...6712...6713...6714...6715...6716...6717...6718...6719...6720...6721...6722...6723...6724...6725...6726...6727...6728...6729...6730...6731...6732...6733...6734...6735...6736...6737...6738...6739...6740...6741...6742...6743...6744...6745...6746...6747...6748...6749...6750...6751...6752...6753...6754...6755...6756...6757...6758...6759...6760...6761...6762...6763...6764...6765...6766...6767...6768...6769...6770...6771...6772...6773...6774...6775...6776...6777...6778...6779...6780...6781...6782...6783...6784...6785...6786...6787...6788...6789...6790...6791...6792...6793...6794...6795...6796...6797...6798...6799...6800...6801...6802...6803...6804...6805...6806...6807...6808...6809...6810...6811...6812...6813...6814...6815...6816...6817...6818...6819...6820...6821...6822...6823...6824...6825...6826...6827...6828...6829...6830...6831...6832...6833...6834...6835...6836...6837...6838...6839...6840...6841...6842...6843...6844...6845...6846...6847...6848...6849...6850...6851...6852...6853...6854...6855...6856...6857...6858...6859...6860...6861...6862...6863...6864...6865...6866...6867...6868...6869...6870...6871...6872...6873...6874...6875...6876...6877...6878...6879...6880...6881...6882...6883...6884...6885...6886...6887...6888...6889...6890...6891...6892...6893...6894...6895...6896...6897...6898...6899...6900...6901...6902...6903...6904...6905...6906...6907...6908...6909...6910...6911...6912...6913...6914...6915...6916...6917...6918...6919...6920...6921...6922...6923...6924...6925...6926...6927...6928...6929...6930...6931...6932...6933...6934...6935...6936...6937...6938...6939...6940...6941...6942...6943...6944...6945...6946...6947...6948...6949...6950...6951...6952...6953...6954...6955...6956...6957...6958...6959...6960...6961...6962...6963...6964...6965...6966...6967...6968...6969...6970...6971...6972...6973...6974...6975...6976...6977...6978...6979...6980...6981...6982...6983...6984...6985...6986...6987...6988...6989...6990...6991...6992...6993...6994...6995...6996...6997...6998...6999...7000...7001...7002...7003...7004...7005...7006...7007...7008...7009...7010...7011...7012...7013...7014...7015...7016...7017...7018...7019...7020...7021...7022...7023...7024...7025...7026...7027...7028...7029...7030...7031...7032...7033...7034...7035...7036...7037...7038...7039...7040...7041...7042...7043...7044...7045...7046...7047...7048...7049...7050...7051...7052...7053...7054...7055...7056...7057...7058...7059...7060...7061...7062...7063...7064...7065...7066...7067...7068...7069...7070...7071...7072...7073...7074...7075...7076...7077...7078...7079...7080...7081...7082...7083...7084...7085...7086...7087...7088...7089...7090...7091...7092...7093...7094...7095...7096...7097...7098...7099...7100...7101...7102...7103...7104...7105...7106...7107...7108...7109...7110...7111...7112...7113...7114...7115...7116...7117...7118...7119...7120...7121...7122...7123...7124...7125...7126...7127...7128...7129...7130...7131...7132...7133...7134...7135...7136...7137...7138...7139...7140...7141...7142...7143...7144...7145...7146...7147...7148...7149...7150...7151...7152...7153...7154...7155...7156...7157...7158...7159...7160...7161...7162...7163...7164...7165...7166...7167...7168...7169...7170...7171...7172...7173...7174...7175...7176...7177...7178...7179...7180...7181...7182...7183...7184...7185...7186...7187...7188...7189...7190...7191...7192...7193...7194...7195...7196...7197...7198...7199...7200...7201...7202...7203...7204...7205...7206...7207...7208...7209...7210...7211...7212...7213...7214...7215...7216...7217...7218...7219...7220...7221...7222...7223...7224...7225...7226...7227...7228...7229...7230...7231...7232...7233...7234...7235...7236...7237...7238...7239...7240...7241...7242...7243...7244...7245...7246...7247...7248...7249...7250...7251...7252...7253...7254...7255...7256...7257...7258...7259...7260...7261...7262...7263...7264...7265...7266...7267...7268...7269...7270...7271...7272...7273...7274...7275...7276...7277...7278...7279...7280...7281...7282...7283...7284...7285...7286...7287...7288...7289...7290...7291...7292...7293...7294...7295...7296...7297...7298...7299...7300...7301...7302...7303...7304...7305...7306...7307...7308...7309...7310...7311...7312...7313...7314...7315...7316...7317...7318...7319...7320...7321...7322...7323...7324...7325...7326...7327...7328...7329...7330...7331...7332...7333...7334...7335...7336...7337...7338...7339...7340...7341...7342...7343...7344...7345...7346...7347...7348...7349...7350...7351...7352...7353...7354...7355...7356...7357...7358...7359...7360...7361...7362...7363...7364...7365...7366...7367...7368...7369...7370...7371...7372...7373...7374...7375...7376...7377...7378...7379...7380...7381...7382...7383...7384...7385...7386...7387...7388...7389...7390...7391...7392...7393...7394...7395...7396...7397...7398...7399...7400...7401...7402...7403...7404...7405...7406...7407...7408...7409...7410...7411...7412...7413...7414...7415...7416...7417...7418...7419...7420...7421...7422...7423...7424...7425...7426...7427...7428...7429...7430...7431...7432...7433...7434...7435...7436...7437...7438...7439...7440...7441...7442...7443...7444...7445...7446...7447...7448...7449...7450...7451...7452...7453...7454...7455...7456...7457...7458...7459...7460...7461...7462...7463...7464...7465...7466...7467...7468...7469...7470...7471...7472...7473...7474...7475...7476...7477...7478...7479...7480...7481...7482...7483...7484...7485...7486...7487...7488...7489...7490...7491...7492...7493...7494...7495...7496...7497...7498...7499...7501...7501...7502...7503...7504...7505...7506...7507...7508...7509...7510...7511...7512...7513...7514...7515...7516...7517...7518...7519...7520...7521...7522...7523...7524...7525...7526...7527...7528...7529...7530...7531...7532...7533...7534...7535...7536...7537...7538...7539...7540...7541...7542...7543...7544...7545...7546...7547...7548...7549...7550...7551...7552...7553...7554...7555...7556...7557...7558...7559...7560...7561...7562...7563...7564...7565...7566...7567...7568...7569...7570...7571...7572...7573...7574...7575...7576...7577...7578...7579...7580...7581...7582...7583...7584...7585...7586...7587...7588...7589...7590...7591...7592...7593...7594...7595...7596...7597...7598...7599...7600...7601...7602...7603...7604...7605...7606...7607...7608...7609...7610...7611...7612...7613...7614...7615...7616...7617...7618...7619...7620...7621...7622...7623...7624...7625...7626...7627...7628...7629...7630...7631...7632...7633...7634...7635...7636...7637...7638...7639...7640...7641...7642...7643...7644...7645...7646...7647...7648...7649...7650...7651...7652...7653...7654...7655...7656...7657...7658...7659...7660...7661...7662...7663...7664...7665...7666...7667...7668...7669...7670...7671...7672...7673...7674...7675...7676...7677...7678...7679...7680...7681...7682...7683...7684...7685...7686...7687...7688...7689...7690...7691...7692...7693...7694...7695...7696...7697...7698...7699...7700...7701...7702...7703...7704...7705...7706...7707...7708...7709...7710...7711...7712...7713...7714...7715...7716...7717...7718...7719...7720...7721...7722...7723...7724...7725...7726...7727...7728...7729...7730...7731...7732...7733...7734...7735...7736...7737...7738...7739...7740...7741...7742...7743...7744...7745...7746...7747...7748...7749...7750...7751...7752...7753...7754...7755...7756...7757...7758...7759...7760...7761...7762...7763...7764...7765...7766...7767...7768...7769...7770...7771...7772...7773...7774...7775...7776...7777...7778...7779...7780...7781...7782...7783...7784...7785...7786...7787...7788...7789...7790...7791...7792...7793...7794...7795...7796...7797...7798...7799...7800...7801...7802...7803...7804...7805...7806...7807...7808...7809...7810...7811...7812...7813...7814...7815...7816...7817...7818...7819...7820...7821...7822...7823...7824...7825...7826...7827...7828...7829...7830...7831...7832...7833...7834...7835...7836...7837...7838...7839...7840...7841...7842...7843...7844...7845...7846...7847...7848...7849...7850...7851...7852...7853...7854...7855...7856...7857...7858...7859...7860...7861...7862...7863...7864...7865...7866...7867...7868...7869...7870...7871...7872...7873...7874...7875...7876...7877...7878...7879...7880...7881...7882...7883...7884...7885...7886...7887...7888...7889...7890...7891...7892...7893...7894...7895...7896...7897...7898...7899...7900...7901...7902...7903...7904...7905...7906...7907...7908...7909...7910...7911...7912...7913...7914...7915...7916...7917...7918...7919...7920...7921...7922...7923...7924...7925...7926...7927...7928...7929...7930...7931...7932...7933...7934...7935...7936...7937...7938...7939...7940...7941...7942...7943...7944...7945...7946...7947...7948...7949...7950...7951...7952...7953...7954...7955...7956...7957...7958...7959...7960...7961...7962...7963...7964...7965...7966...7967...7968...7970...7970...7971...7972...7973...7974...7975...7976...7977...7978...7979...7980...7981...7982...7983...7984...7985...7986...7987...7988...7989...7990...7991...7992...7993...7994...7995...7996...7997...7998...7999...8000...8001...8002...8003...8004...8005...8006...8007...8008...8009...8010...8011...8012...8013...8014...8015...8016...8017...8018...8019...8020...8021...8022...8023...8024...8025...8026...8027...8028...8029...8030...8031...8032...8033...8034...8035...8036...8037...8038...8039...8040...8041...8042...8043...8044...8045...8046...8047...8048...8049...8050...8051...8052...8053...8054...8055...8056...8057...8058...8059...8060...8061...8062...8063...8064...8065...8066...8067...8068...8069...8070...8071...8072...8073...8074...8075...8076...8077...8078...8079...8080...8081...8082...8083...8084...8085...8086...8087...8088...8089...8090...8091...8092...8093...8094...8095...8096...8097...8098...8099...8100...8101...8102...8103...8104...8105...8106...8107...8108...8109...8110...8111...8112...8113...8114...8115...8116...8117...8118...8119...8120...8121...8122...8123...8124...8125...8126...8127...8128...8129...8130...8131...8132...8133...8134...8135...8136...8137...8138...8139...8140...8141...8142...8143...8144...8145...8146...8147...8148...8149...8150...8151...8152...8153...8154...8155...8156...8157...8158...8159...8160...8161...8162...8163...8164...8165...8166...8167...8168...8169...8170...8171...8172...8173...8174...8175...8176...8177...8178...8179...8180...8181...8182...8183...8184...8185...8186...8187...8188...8189...8190...8191...8192...8193...8194...8195...8196...8197...8198...8199...8200...8201...8202...8203...8204...8205...8206...8207...8208...8209...8210...8211...8212...8213...8214...8215...8216...8217...8218...8219...8220...8221...8222...8223...8224...8225...8226...8227...8228...8229...8230...8231...8232...8233...8234...8235...8236...8237...8238...8239...8240...8241...8242...8243...8244...8245...8246...8247...8248...8249...8250...8251...8252...8253...8254...8255...8256...8257...8258...8259...8260...8261...8262...8263...8264...8265...8266...8267...8268...8269...8270...8271...8272...8273...8274...8275...8276...8277...8278...8279...8280...8281...8282...8283...8284...8285...8286...8287...8288...8289...8290...8291...8292...8293...8294...8295...8296...8297...8298...8299...8300...8301...8302...8303...8304...8305...8306...8307...8308...8309...8310...8311...8312...8313...8314...8315...8316...8317...8318...8319...8320...8321...8322...8323...8324...8325...8326...8327...8328...8329...8330...8331...8332...8333...8334...8335...8336...8337...8338...8339...8340...8341...8342...8343...8344...8345...8346...8347...8348...8349...8350...8351...8352...8353...8354...8355...8356...8357...8358...8359...8360...8361...8362...8363...8364...8365...8366...8367...8368...8369...8370...8371...8372...8373...8374...8375...8376...8377...8378...8379...8380...8381...8382...8383...8384...8385...8386...8387...8388...8389...8390...8391...8392...8393...8394...8395...8396...8397...8398...8399...8400...8401...8402...8403...8404...8405...8406...8407...8408...8409...8410...8411...8412...8413...8414...8415...8416...8417...8418...8419...8420...8421...8422...8423...8424...8425...8426...8427...8428...8429...8430...8431...8432...8433...8434...8435...8436...8437...8439...8439...8440...8441...8442...8443...8444...8445...8446...8447...8448...8449...8450...8451...8452...8453...8454...8455...8456...8457...8458...8459...8460...8461...8462...8463...8464...8465...8466...8467...8468...8469...8470...8471...8472...8473...8474...8475...8476...8477...8478...8479...8480...8481...8482...8483...8484...8485...8486...8487...8488...8489...8490...8491...8492...8493...8494...8495...8496...8497...8498...8499...8500...8501...8502...8503...8504...8505...8506...8507...8508...8509...8510...8511...8512...8513...8514...8515...8516...8517...8518...8519...8520...8521...8522...8523...8524...8525...8526...8527...8528...8529...8530...8531...8532...8533...8534...8535...8536...8537...8538...8539...8540...8541...8542...8543...8544...8545...8546...8547...8548...8549...8550...8551...8552...8553...8554...8555...8556...8557...8558...8559...8560...8561...8562...8563...8564...8565...8566...8567...8568...8569...8570...8571...8572...8573...8574...8575...8576...8577...8578...8579...8580...8581...8582...8583...8584...8585...8586...8587...8588...8589...8590...8591...8592...8593...8594...8595...8596...8597...8598...8599...8600...8601...8602...8603...8604...8605...8606...8607...8608...8609...8610...8611...8612...8613...8614...8615...8616...8617...8618...8619...8620...8621...8622...8623...8624...8625...8626...8627...8628...8629...8630...8631...8632...8633...8634...8635...8636...8637...8638...8639...8640...8641...8642...8643...8644...8645...8646...8647...8648...8649...8650...8651...8652...8653...8654...8655...8656...8657...8658...8659...8660...8661...8662...8663...8664...8665...8666...8667...8668...8669...8670...8671...8672...8673...8674...8675...8676...8677...8678...8679...8680...8681...8682...8683...8684...8685...8686...8687...8688...8689...8690...8691...8692...8693...8694...8695...8696...8697...8698...8699...8700...8701...8702...8703...8704...8705...8706...8707...8708...8709...8710...8711...8712...8713...8714...8715...8716...8717...8718...8719...8720...8721...8722...8723...8724...8725...8726...8727...8728...8729...8730...8731...8732...8733...8734...8735...8736...8737...8738...8739...8740...8741...8742...8743...8744...8745...8746...8747...8748...8749...8750...8751...8752...8753...8754...8755...8756...8757...8758...8759...8760...8761...8762...8763...8764...8765...8766...8767...8768...8769...8770...8771...8772...8773...8774...8775...8776...8777...8778...8779...8780...8781...8782...8783...8784...8785...8786...8787...8788...8789...8790...8791...8792...8793...8794...8795...8796...8797...8798...8799...8800...8801...8802...8803...8804...8805...8806...8807...8808...8809...8810...8811...8812...8813...8814...8815...8816...8817...8818...8819...8820...8821...8822...8823...8824...8825...8826...8827...8828...8829...8830...8831...8832...8833...8834...8835...8836...8837...8838...8839...8840...8841...8842...8843...8844...8845...8846...8847...8848...8849...8850...8851...8852...8853...8854...8855...8856...8857...8858...8859...8860...8861...8862...8863...8864...8865...8866...8867...8868...8869...8870...8871...8872...8873...8874...8875...8876...8877...8878...8879...8880...8881...8882...8883...8884...8885...8886...8887...8888...8889...8890...8891...8892...8893...8894...8895...8896...8897...8898...8899...8900...8901...8902...8903...8904...8905...8906...8908...8908...8909...8910...8911...8912...8913...8914...8915...8916...8917...8918...8919...8920...8921...8922...8923...8924...8925...8926...8927...8928...8929...8930...8931...8932...8933...8934...8935...8936...8937...8938...8939...8940...8941...8942...8943...8944...8945...8946...8947...8948...8949...8950...8951...8952...8953...8954...8955...8956...8957...8958...8959...8960...8961...8962...8963...8964...8965...8966...8967...8968...8969...8970...8971...8972...8973...8974...8975...8976...8977...8978...8979...8980...8981...8982...8983...8984...8985...8986...8987...8988...8989...8990...8991...8992...8993...8994...8995...8996...8997...8998...8999...9000...9001...9002...9003...9004...9005...9006...9007...9008...9009...9010...9011...9012...9013...9014...9015...9016...9017...9018...9019...9020...9021...9022...9023...9024...9025...9026...9027...9028...9029...9030...9031...9032...9033...9034...9035...9036...9037...9038...9039...9040...9041...9042...9043...9044...9045...9046...9047...9048...9049...9050...9051...9052...9053...9054...9055...9056...9057...9058...9059...9060...9061...9062...9063...9064...9065...9066...9067...9068...9069...9070...9071...9072...9073...9074...9075...9076...9077...9078...9079...9080...9081...9082...9083...9084...9085...9086...9087...9088...9089...9090...9091...9092...9093...9094...9095...9096...9097...9098...9099...9100...9101...9102...9103...9104...9105...9106...9107...9108...9109...9110...9111...9112...9113...9114...9115...9116...9117...9118...9119...9120...9121...9122...9123...9124...9125...9126...9127...9128...9129...9130...9131...9132...9133...9134...9135...9136...9137...9138...9139...9140...9141...9142...9143...9144...9145...9146...9147...9148...9149...9150...9151...9152...9153...9154...9155...9156...9157...9158...9159...9160...9161...9162...9163...9164...9165...9166...9167...9168...9169...9170...9171...9172...9173...9174...9175...9176...9177...9178...9179...9180...9181...9182...9183...9184...9185...9186...9187...9188...9189...9190...9191...9192...9193...9194...9195...9196...9197...9198...9199...9200...9201...9202...9203...9204...9205...9206...9207...9208...9209...9210...9211...9212...9213...9214...9215...9216...9217...9218...9219...9220...9221...9222...9223...9224...9225...9226...9227...9228...9229...9230...9231...9232...9233...9234...9235...9236...9237...9238...9239...9240...9241...9242...9243...9244...9245...9246...9247...9248...9249...9250...9251...9252...9253...9254...9255...9256...9257...9258...9259...9260...9261...9262...9263...9264...9265...9266...9267...9268...9269...9270...9271...9272...9273...9274...9275...9276...9277...9278...9279...9280...9281...9282...9283...9284...9285...9286...9287...9288...9289...9290...9291...9292...9293...9294...9295...9296...9297...9298...9299...9300...9301...9302...9303...9304...9305...9306...9307...9308...9309...9310...9311...9312...9313...9314...9315...9316...9317...9318...9319...9320...9321...9322...9323...9324...9325...9326...9327...9328...9329...9330...9331...9332...9333...9334...9335...9336...9337...9338...9339...9340...9341...9342...9343...9344...9345...9346...9347...9348...9349...9350...9351...9352...9353...9354...9355...9356...9357...9358...9359...9360...9361...9362...9363...9364...9365...9366...9367...9368...9369...9370...9371...9372...9373...9374...9375...9376...9377...9378...9379...9380...9381...9382...9383...9384...9385...9386...9387...9388...9389...9390...9391...9392...9393...9394...9395...9396...9397...9398...9399...9400...9401...9402...9403...9404...9405...9406...9407...9408...9409...9410...9411...9412...9413...9414...9415...9416...9417...9418...9419...9420...9421...9422...9423...9424...9425...9426...9427...9428...9429...9430...9431...9432...9433...9434...9435...9436...9437...9438...9439...9440...9441...9442...9443...9444...9445...9446...9447...9448...9449...9450...9451...9452...9453...9454...9455...9456...9457...9458...9459...9460...9461...9462...9463...9464...9465...9466...9467...9468...9469...9470...9471...9472...9473...9474...9475...9476...9477...9478...9479...9480...9481...9482...9483...9484...9485...9486...9487...9488...9489...9490...9491...9492...9493...9494...9495...9496...9497...9498...9499...9500...9501...9502...9503...9504...9505...9506...9507...9508...9509...9510...9511...9512...9513...9514...9515...9516...9517...9518...9519...9520...9521...9522...9523...9524...9525...9526...9527...9528...9529...9530...9531...9532...9533...9534...9535...9536...9537...9538...9539...9540...9541...9542...9543...9544...9545...9546...9547...9548...9549...9550...9551...9552...9553...9554...9555...9556...9557...9558...9559...9560...9561...9562...9563...9564...9565...9566...9567...9568...9569...9570...9571...9572...9573...9574...9575...9576...9577...9578...9579...9580...9581...9582...9583...9584...9585...9586...9587...9588...9589...9590...9591...9592...9593...9594...9595...9596...9597...9598...9599...9600...9601...9602...9603...9604...9605...9606...9607...9608...9609...9610...9611...9612...9613...9614...9615...9616...9617...9618...9619...9620...9621...9622...9623...9624...9625...9626...9627...9628...9629...9630...9631...9632...9633...9634...9635...9636...9637...9638...9639...9640...9641...9642...9643...9644...9645...9646...9647...9648...9649...9650...9651...9652...9653...9654...9655...9656...9657...9658...9659...9660...9661...9662...9663...9664...9665...9666...9667...9668...9669...9670...9671...9672...9673...9674...9675...9676...9677...9678...9679...9680...9681...9682...9683...9684...9685...9686...9687...9688...9689...9690...9691...9692...9693...9694...9695...9696...9697...9698...9699...9700...9701...9702...9703...9704...9705...9706...9707...9708...9709...9710...9711...9712...9713...9714...9715...9716...9717...9718...9719...9720...9721...9722...9723...9724...9725...9726...9727...9728...9729...9730...9731...9732...9733...9734...9735...9736...9737...9738...9739...9740...9741...9742...9743...9744...9745...9746...9747...9748...9749...9750...9751...9752...9753...9754...9755...9756...9757...9758...9759...9760...9761...9762...9763...9764...9765...9766...9767...9768...9769...9770...9771...9772...9773...9774...9775...9776...9777...9778...9779...9780...9781...9782...9783...9784...9785...9786...9787...9788...9789...9790...9791...9792...9793...9794...9795...9796...9797...9798...9799...9800...9801...9802...9803...9804...9805...9806...9807...9808...9809...9810...9811...9812...9813...9814...9815...9816...9817...9818...9819...9820...9821...9822...9823...9824...9825...9826...9827...9828...9829...9830...9831...9832...9833...9834...9835...9836...9837...9838...9839...9840...9841...9842...9843...9845...9845...9846...9847...9848...9849...9850...9851...9852...9853...9854...9855...9856...9857...9858...9859...9860...9861...9862...9863...9864...9865...9866...9867...9868...9869...9870...9871...9872...9873...9874...9875...9876...9877...9878...9879...9880...9881...9882...9883...9884...9885...9886...9887...9888...9889...9890...9891...9892...9893...9894...9895...9896...9897...9898...9899...9900...9901...9902...9903...9904...9905...9906...9907...9908...9909...9910...9911...9912...9913...9914...9915...9916...9917...9918...9919...9920...9921...9922...9923...9924...9925...9926...9927...9928...9929...9930...9931...9932...9933...9934...9935...9936...9937...9938...9939...9940...9941...9942...9943...9944...9945...9946...9947...9948...9949...9950...9951...9952...9953...9954...9955...9956...9957...9958...9959...9960...9961...9962...9963...9964...9965...9966...9967...9968...9969...9970...9971...9972...9973...9974...9975...9976...9977...9978...9979...9980...9981...9982...9983...9984...9985...9986...9987...9988...9989...9990...9991...9992...9993...9994...9995...9996...9997...9998...9999...10000...10001...10002...10003...10004...10005...10006...10007...10008...10009...10010...10011...10012...10013...10014...10015...10016...10017...10018...10019...10020...10021...10022...10023...10024...10025...10026...10027...10028...10029...10030...10031...10032...10033...10034...10035...10036...10037...10038...10039...10040...10041...10042...10043...10044...10045...10046...10047...10048...10049...10050...10051...10052...10053...10054...10055...10056...10057...10058...10059...10060...10061...10062...10063...10064...10065...10066...10067...10068...10069...10070...10071...10072...10073...10074...10075...10076...10077...10078...10079...10080...10081...10082...10083...10084...10085...10086...10087...10088...10089...10090...10091...10092...10093...10094...10095...10096...10097...10098...10099...10100...10101...10102...10103...10104...10105...10106...10107...10108...10109...10110...10111...10112...10113...10114...10115...10116...10117...10118...10119...10120...10121...10122...10123...10124...10125...10126...10127...10128...10129...10130...10131...10132...10133...10134...10135...10136...10137...10138...10139...10140...10141...10142...10143...10144...10145...10146...10147...10148...10149...10150...10151...10152...10153...10154...10155...10156...10157...10158...10159...10160...10161...10162...10163...10164...10165...10166...10167...10168...10169...10170...10171...10172...10173...10174...10175...10176...10177...10178...10179...10180...10181...10182...10183...10184...10185...10186...10187...10188...10189...10190...10191...10192...10193...10194...10195...10196...10197...10198...10199...10200...10201...10202...10203...10204...10205...10206...10207...10208...10209...10210...10211...10212...10213...10214...10215...10216...10217...10218...10219...10220...10221...10222...10223...10224...10225...10226...10227...10228...10229...10230...10231...10232...10233...10234...10235...10236...10237...10238...10239...10240...10241...10242...10243...10244...10245...10246...10247...10248...10249...10250...10251...10252...10253...10254...10255...10256...10257...10258...10259...10260...10261...10262...10263...10264...10265...10266...10267...10268...10269...10270...10271...10272...10273...10274...10275...10276...10277...10278...10279...10280...10281...10282...10283...10284...10285...10286...10287...10288...10289...10290...10291...10292...10293...10294...10295...10296...10297...10298...10299...10300...10301...10302...10303...10304...10305...10306...10307...10308...10309...10310...10311...10312...10314...10314...10315...10316...10317...10318...10319...10320...10321...10322...10323...10324...10325...10326...10327...10328...10329...10330...10331...10332...10333...10334...10335...10336...10337...10338...10339...10340...10341...10342...10343...10344...10345...10346...10347...10348...10349...10350...10351...10352...10353...10354...10355...10356...10357...10358...10359...10360...10361...10362...10363...10364...10365...10366...10367...10368...10369...10370...10371...10372...10373...10374...10375...10376...10377...10378...10379...10380...10381...10382...10383...10384...10385...10386...10387...10388...10389...10390...10391...10392...10393...10394...10395...10396...10397...10398...10399...10400...10401...10402...10403...10404...10405...10406...10407...10408...10409...10410...10411...10412...10413...10414...10415...10416...10417...10418...10419...10420...10421...10422...10423...10424...10425...10426...10427...10428...10429...10430...10431...10432...10433...10434...10435...10436...10437...10438...10439...10440...10441...10442...10443...10444...10445...10446...10447...10448...10449...10450...10451...10452...10453...10454...10455...10456...10457...10458...10459...10460...10461...10462...10463...10464...10465...10466...10467...10468...10469...10470...10471...10472...10473...10474...10475...10476...10477...10478...10479...10480...10481...10482...10483...10484...10485...10486...10487...10488...10489...10490...10491...10492...10493...10494...10495...10496...10497...10498...10499...10500...10501...10502...10503...10504...10505...10506...10507...10508...10509...10510...10511...10512...10513...10514...10515...10516...10517...10518...10519...10520...10521...10522...10523...10524...10525...10526...10527...10528...10529...10530...10531...10532...10533...10534...10535...10536...10537...10538...10539...10540...10541...10542...10543...10544...10545...10546...10547...10548...10549...10550...10551...10552...10553...10554...10555...10556...10557...10558...10559...10560...10561...10562...10563...10564...10565...10566...10567...10568...10569...10570...10571...10572...10573...10574...10575...10576...10577...10578...10579...10580...10581...10582...10583...10584...10585...10586...10587...10588...10589...10590...10591...10592...10593...10594...10595...10596...10597...10598...10599...10600...10601...10602...10603...10604...10605...10606...10607...10608...10609...10610...10611...10612...10613...10614...10615...10616...10617...10618...10619...10620...10621...10622...10623...10624...10625...10626...10627...10628...10629...10630...10631...10632...10633...10634...10635...10636...10637...10638...10639...10640...10641...10642...10643...10644...10645...10646...10647...10648...10649...10650...10651...10652...10653...10654...10655...10656...10657...10658...10659...10660...10661...10662...10663...10664...10665...10666...10667...10668...10669...10670...10671...10672...10673...10674...10675...10676...10677...10678...10679...10680...10681...10682...10683...10684...10685...10686...10687...10688...10689...10690...10691...10692...10693...10694...10695...10696...10697...10698...10699...10700...10701...10702...10703...10704...10705...10706...10707...10708...10709...10710...10711...10712...10713...10714...10715...10716...10717...10718...10719...10720...10721...10722...10723...10724...10725...10726...10727...10728...10729...10730...10731...10732...10733...10734...10735...10736...10737...10738...10739...10740...10741...10742...10743...10744...10745...10746...10747...10748...10749...10750...10751...10752...10753...10754...10755...10756...10757...10758...10759...10760...10761...10762...10763...10764...10765...10766...10767...10768...10769...10770...10771...10772...10773...10774...10775...10776...10777...10778...10779...10780...10781...10783...10783...10784...10785...10786...10787...10788...10789...10790...10791...10792...10793...10794...10795...10796...10797...10798...10799...10800...10801...10802...10803...10804...10805...10806...10807...10808...10809...10810...10811...10812...10813...10814...10815...10816...10817...10818...10819...10820...10821...10822...10823...10824...10825...10826...10827...10828...10829...10830...10831...10832...10833...10834...10835...10836...10837...10838...10839...10840...10841...10842...10843...10844...10845...10846...10847...10848...10849...10850...10851...10852...10853...10854...10855...10856...10857...10858...10859...10860...10861...10862...10863...10864...10865...10866...10867...10868...10869...10870...10871...10872...10873...10874...10875...10876...10877...10878...10879...10880...10881...10882...10883...10884...10885...10886...10887...10888...10889...10890...10891...10892...10893...10894...10895...10896...10897...10898...10899...10900...10901...10902...10903...10904...10905...10906...10907...10908...10909...10910...10911...10912...10913...10914...10915...10916...10917...10918...10919...10920...10921...10922...10923...10924...10925...10926...10927...10928...10929...10930...10931...10932...10933...10934...10935...10936...10937...10938...10939...10940...10941...10942...10943...10944...10945...10946...10947...10948...10949...10950...10951...10952...10953...10954...10955...10956...10957...10958...10959...10960...10961...10962...10963...10964...10965...10966...10967...10968...10969...10970...10971...10972...10973...10974...10975...10976...10977...10978...10979...10980...10981...10982...10983...10984...10985...10986...10987...10988...10989...10990...10991...10992...10993...10994...10995...10996...10997...10998...10999...11000...11001...11002...11003...11004...11005...11006...11007...11008...11009...11010...11011...11012...11013...11014...11015...11016...11017...11018...11019...11020...11021...11022...11023...11024...11025...11026...11027...11028...11029...11030...11031...11032...11033...11034...11035...11036...11037...11038...11039...11040...11041...11042...11043...11044...11045...11046...11047...11048...11049...11050...11051...11052...11053...11054...11055...11056...11057...11058...11059...11060...11061...11062...11063...11064...11065...11066...11067...11068...11069...11070...11071...11072...11073...11074...11075...11076...11077...11078...11079...11080...11081...11082...11083...11084...11085...11086...11087...11088...11089...11090...11091...11092...11093...11094...11095...11096...11097...11098...11099...11100...11101...11102...11103...11104...11105...11106...11107...11108...11109...11110...11111...11112...11113...11114...11115...11116...11117...11118...11119...11120...11121...11122...11123...11124...11125...11126...11127...11128...11129...11130...11131...11132...11133...11134...11135...11136...11137...11138...11139...11140...11141...11142...11143...11144...11145...11146...11147...11148...11149...11150...11151...11152...11153...11154...11155...11156...11157...11158...11159...11160...11161...11162...11163...11164...11165...11166...11167...11168...11169...11170...11171...11172...11173...11174...11175...11176...11177...11178...11179...11180...11181...11182...11183...11184...11185...11186...11187...11188...11189...11190...11191...11192...11193...11194...11195...11196...11197...11198...11199...11200...11201...11202...11203...11204...11205...11206...11207...11208...11209...11210...11211...11212...11213...11214...11215...11216...11217...11218...11219...11220...11221...11222...11223...11224...11225...11226...11227...11228...11229...11230...11231...11232...11233...11234...11235...11236...11237...11238...11239...11240...11241...11242...11243...11244...11245...11246...11247...11248...11249...11250...11252...11252...11253...11254...11255...11256...11257...11258...11259...11260...11261...11262...11263...11264...11265...11266...11267...11268...11269...11270...11271...11272...11273...11274...11275...11276...11277...11278...11279...11280...11281...11282...11283...11284...11285...11286...11287...11288...11289...11290...11291...11292...11293...11294...11295...11296...11297...11298...11299...11300...11301...11302...11303...11304...11305...11306...11307...11308...11309...11310...11311...11312...11313...11314...11315...11316...11317...11318...11319...11320...11321...11322...11323...11324...11325...11326...11327...11328...11329...11330...11331...11332...11333...11334...11335...11336...11337...11338...11339...11340...11341...11342...11343...11344...11345...11346...11347...11348...11349...11350...11351...11352...11353...11354...11355...11356...11357...11358...11359...11360...11361...11362...11363...11364...11365...11366...11367...11368...11369...11370...11371...11372...11373...11374...11375...11376...11377...11378...11379...11380...11381...11382...11383...11384...11385...11386...11387...11388...11389...11390...11391...11392...11393...11394...11395...11396...11397...11398...11399...11400...11401...11402...11403...11404...11405...11406...11407...11408...11409...11410...11411...11412...11413...11414...11415...11416...11417...11418...11419...11420...11421...11422...11423...11424...11425...11426...11427...11428...11429...11430...11431...11432...11433...11434...11435...11436...11437...11438...11439...11440...11441...11442...11443...11444...11445...11446...11447...11448...11449...11450...11451...11452...11453...11454...11455...11456...11457...11458...11459...11460...11461...11462...11463...11464...11465...11466...11467...11468...11469...11470...11471...11472...11473...11474...11475...11476...11477...11478...11479...11480...11481...11482...11483...11484...11485...11486...11487...11488...11489...11490...11491...11492...11493...11494...11495...11496...11497...11498...11499...11500...11501...11502...11503...11504...11505...11506...11507...11508...11509...11510...11511...11512...11513...11514...11515...11516...11517...11518...11519...11520...11521...11522...11523...11524...11525...11526...11527...11528...11529...11530...11531...11532...11533...11534...11535...11536...11537...11538...11539...11540...11541...11542...11543...11544...11545...11546...11547...11548...11549...11550...11551...11552...11553...11554...11555...11556...11557...11558...11559...11560...11561...11562...11563...11564...11565...11566...11567...11568...11569...11570...11571...11572...11573...11574...11575...11576...11577...11578...11579...11580...11581...11582...11583...11584...11585...11586...11587...11588...11589...11590...11591...11592...11593...11594...11595...11596...11597...11598...11599...11600...11601...11602...11603...11604...11605...11606...11607...11608...11609...11610...11611...11612...11613...11614...11615...11616...11617...11618...11619...11620...11621...11622...11623...11624...11625...11626...11627...11628...11629...11630...11631...11632...11633...11634...11635...11636...11637...11638...11639...11640...11641...11642...11643...11644...11645...11646...11647...11648...11649...11650...11651...11652...11653...11654...11655...11656...11657...11658...11659...11660...11661...11662...11663...11664...11665...11666...11667...11668...11669...11670...11671...11672...11673...11674...11675...11676...11677...11678...11679...11680...11681...11682...11683...11684...11685...11686...11687...11688...11689...11690...11691...11692...11693...11694...11695...11696...11697...11698...11699...11700...11701...11702...11703...11704...11705...11706...11707...11708...11709...11710...11711...11712...11713...11714...11715...11716...11717...11718...11719..."); - __toffee.state = states.COFFEE; + __toffee.out.push("0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...70...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...162...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...232...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...324..."); + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5046,69 +511,70 @@ toffee.escape = function(__toffee, o) { toffee.templates["/comments/input.toffee"] = {}; toffee.templates["/comments/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("\n"); __toffee.lineno = 2; __toffee.out.push("Pass 1\n"); __toffee.lineno = 3; - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 8; __toffee.out.push("\n"); __toffee.lineno = 9; __toffee.out.push("Pass 2\n"); __toffee.lineno = 10; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; /* print "FAIL FAIL FAIL" #{ foo } */ - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 19; __toffee.out.push("\n"); __toffee.lineno = 20; __toffee.out.push("Pass 3\n"); __toffee.lineno = 21; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5124,43 +590,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/comments/output.toffee"] = {}; toffee.templates["/comments/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("\n"); __toffee.lineno = 2; @@ -5174,7 +641,7 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 6; __toffee.out.push("Pass 3\n"); __toffee.lineno = 7; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5190,43 +657,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/custom_escape/input.toffee"] = {}; toffee.templates["/custom_escape/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, w, x, y, z, _toffeePtr; - _toffeePtr = toffee; + var localsPointer, w, x, y, z; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; x = '"Hello world"'; y = ''; z = 'click&clack'; @@ -5235,7 +703,7 @@ toffee.escape = function(__toffee, o) { "place": "The Dreadfort" } ]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 6; __toffee.out.push("

    \n"); __toffee.lineno = 7; @@ -5299,18 +767,18 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 24; __toffee.out.push("

    \n"); __toffee.lineno = 25; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(" raw printed x = " + x + "\n"); print(" raw printed y = " + y + "\n"); print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 30; __toffee.out.push("\n"); __toffee.lineno = 31; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5326,43 +794,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/custom_escape/output.toffee"] = {}; toffee.templates["/custom_escape/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("

    \n"); __toffee.lineno = 2; @@ -5411,7 +880,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push(" raw printed w = 1,2,[object Object]\n"); __toffee.lineno = 24; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5427,43 +896,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/eco_compare/input.toffee"] = {}; toffee.templates["/eco_compare/input.toffee"].pub = function(locals) { - var escape, f, friends, html, json, print, project, raw, states, _i, _len, _ref, _toffeePtr; - _toffeePtr = toffee; + var f, friends, localsPointer, project, _i, _len, _ref; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; this.projects = [ { url: "http://localhost:3000", @@ -5479,7 +949,7 @@ toffee.escape = function(__toffee, o) { _ref = this.projects; for (_i = 0, _len = _ref.length; _i < _len; _i++) { project = _ref[_i]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 8; __toffee.out.push("\n"); __toffee.lineno = 9; @@ -5494,13 +964,13 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("

    \n"); __toffee.lineno = 11; __toffee.out.push(" "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } else { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 12; __toffee.out.push(" No projects "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } friends = [ { @@ -5517,7 +987,7 @@ toffee.escape = function(__toffee, o) { name: "Marissa" } ]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 20; __toffee.out.push("\n"); __toffee.lineno = 21; @@ -5534,7 +1004,7 @@ toffee.escape = function(__toffee, o) { return _results; })()).length))); __toffee.out.push(" female friends."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5550,43 +1020,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/eco_compare/output.toffee"] = {}; toffee.templates["/eco_compare/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("\n"); __toffee.lineno = 2; @@ -5605,7 +1076,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("\n"); __toffee.lineno = 9; __toffee.out.push("You have 3 female friends."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5621,43 +1092,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/escape/input.toffee"] = {}; toffee.templates["/escape/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, w, x, y, z, _toffeePtr; - _toffeePtr = toffee; + var localsPointer, w, x, y, z; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; x = '"Hello world"'; y = ''; z = 'click&clack'; @@ -5666,7 +1138,7 @@ toffee.escape = function(__toffee, o) { "place": "The Dreadfort" } ]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 6; __toffee.out.push("

    \n"); __toffee.lineno = 7; @@ -5738,13 +1210,13 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 26; __toffee.out.push("

    \n"); __toffee.lineno = 27; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(" raw printed x = " + x + "\n"); print(" raw printed y = " + y + "\n"); print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 32; __toffee.out.push("\n"); __toffee.lineno = 33; @@ -5752,13 +1224,13 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 34; __toffee.out.push("

    \n"); __toffee.lineno = 35; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 40; __toffee.out.push("\n"); __toffee.lineno = 41; @@ -5766,18 +1238,18 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 42; __toffee.out.push("

    \n"); __toffee.lineno = 43; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); print(" html printed longhand w = " + (__toffee.html(w))); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 48; __toffee.out.push("\n"); __toffee.lineno = 49; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5793,43 +1265,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/escape/output.toffee"] = {}; toffee.templates["/escape/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("

    \n"); __toffee.lineno = 2; @@ -5906,7 +1379,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push(" html printed longhand w = 1,2,[object Object]\n"); __toffee.lineno = 38; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5922,47 +1395,48 @@ toffee.escape = function(__toffee, o) { toffee.templates["/hello_world/input.toffee"] = {}; toffee.templates["/hello_world/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); __toffee.out.push(", world."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -5978,46 +1452,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/hello_world/output.toffee"] = {}; toffee.templates["/hello_world/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("Hello, world."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6033,43 +1508,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/hello_world/temp.toffee"] = {}; toffee.templates["/hello_world/temp.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("a\n"); __toffee.lineno = 2; @@ -6085,7 +1561,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("e\n"); __toffee.lineno = 7; __toffee.out.push("f"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6101,55 +1577,56 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_order/child.toffee"] = {}; toffee.templates["/include_order/child.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("a\n"); __toffee.lineno = 2; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; say_hi(); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 4; __toffee.out.push("\n"); __toffee.lineno = 5; __toffee.out.push("b"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6165,51 +1642,52 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_order/input.toffee"] = {}; toffee.templates["/include_order/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, say_hi, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer, say_hi; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; say_hi = function() { - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 3; __toffee.out.push("hi"); - return __toffee.state = states.COFFEE; + return __toffee.state = toffee.states.COFFEE; }; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 4; __toffee.out.push("1\n"); __toffee.lineno = 5; @@ -6223,7 +1701,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("3\n"); __toffee.lineno = 8; __toffee.out.push("4"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6239,43 +1717,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_order/output.toffee"] = {}; toffee.templates["/include_order/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("1\n"); __toffee.lineno = 2; @@ -6290,7 +1769,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("3\n"); __toffee.lineno = 7; __toffee.out.push("4"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6306,48 +1785,49 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_recursion/input.toffee"] = {}; toffee.templates["/include_recursion/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; if (countdown === 0) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 2; __toffee.out.push("blastoff!"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } else { print("" + countdown + "..." + (partial('input.toffee', { countdown: countdown - 1 @@ -6368,46 +1848,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_recursion/output.toffee"] = {}; toffee.templates["/include_recursion/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("10...9...8...7...6...5...4...3...2...1...blastoff!"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6423,43 +1904,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_techniques/input.toffee"] = {}; toffee.templates["/include_techniques/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("" + (partial("message.toffee", { from: "Chris " @@ -6471,18 +1953,18 @@ toffee.escape = function(__toffee, o) { }))); __toffee.out.push("\n"); __toffee.lineno = 3; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(partial("message.toffee", { from: "Christian" })); - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 5; __toffee.out.push("" + (partial("message.toffee", { from: "Jennie" }))); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; print(partial("message.toffee", { sender: "The enemy" })); @@ -6501,45 +1983,46 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_techniques/message.toffee"] = {}; toffee.templates["/include_techniques/message.toffee"].pub = function(locals) { - var escape, from, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var from, localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; from = from || "Unknown"; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 3; __toffee.out.push("From: "); __toffee.out.push("" + (from != null ? escape(from) : '')); @@ -6547,7 +2030,7 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 4; __toffee.out.push("Msg: Hello, world\n"); __toffee.lineno = 5; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6563,43 +2046,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/include_techniques/output.toffee"] = {}; toffee.templates["/include_techniques/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("From: Chris <ccoyne77@gmail> \n"); __toffee.lineno = 2; @@ -6625,7 +2109,7 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 12; __toffee.out.push("Msg: Hello, world\n"); __toffee.lineno = 13; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6641,84 +2125,85 @@ toffee.escape = function(__toffee, o) { toffee.templates["/indent_attack/input.toffee"] = {}; toffee.templates["/indent_attack/input.toffee"].pub = function(locals) { - var escape, html, i, json, print, raw, states, x, _i, _toffeePtr; - _toffeePtr = toffee; + var i, localsPointer, x, _i; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("
    \n"); __toffee.lineno = 2; __toffee.out.push(" "); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; if (1 === 1) { if (2 === 2) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 5; __toffee.out.push("Pass1"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } if (1 === 1) { if (2 === 3) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 9; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } else { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 11; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } else { if (2 === 2) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 14; __toffee.out.push("Pass2"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } } - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 15; __toffee.out.push("\n"); __toffee.lineno = 16; @@ -6726,43 +2211,43 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 17; __toffee.out.push("\n"); __toffee.lineno = 18; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; if (1 === 1) { if (2 === 2) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 21; __toffee.out.push("Pass3"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } if (1 === 1) { if (2 === 3) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 25; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } else { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 27; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } else { if (2 === 2) { if (3 === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 30; __toffee.out.push("Pass4"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } } - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 31; __toffee.out.push("\n"); __toffee.lineno = 32; @@ -6770,109 +2255,109 @@ toffee.escape = function(__toffee, o) { __toffee.lineno = 33; __toffee.out.push("\n"); __toffee.lineno = 34; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; if (10 === 10) { if (20 === 20) { if (30 === 30) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 37; __toffee.out.push("Pass5"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } if (10 === 10) { if (20 === 30) { if (30 === 30) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 41; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } else { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 43; __toffee.out.push("Fail"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } else { if (20 === 20) { if (30 === 30) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 46; __toffee.out.push("Pass6"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } } - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 47; __toffee.out.push("\n"); __toffee.lineno = 48; __toffee.out.push("\n"); __toffee.lineno = 49; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; if (99 === 99) { print('Pass7'); } else { print('Fail'); - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 54; __toffee.out.push("Fail8"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 55; __toffee.out.push("Pass8"); - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 56; __toffee.out.push("\n"); __toffee.lineno = 57; __toffee.out.push("\n"); __toffee.lineno = 58; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 60; __toffee.out.push("...passed with flying colors."); - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 61; __toffee.out.push("\n"); __toffee.lineno = 62; __toffee.out.push("

    \n"); __toffee.lineno = 63; __toffee.out.push(" "); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; x = 10; if (x > 1) { for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 67; __toffee.out.push("
    "); __toffee.out.push("" + (i != null ? escape(i) : '')); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; if (i === 3) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 68; __toffee.out.push(" (my favorite number) "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } } } - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 70; __toffee.out.push("\n"); __toffee.lineno = 71; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6888,43 +2373,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/indent_attack/output.toffee"] = {}; toffee.templates["/indent_attack/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("
    \n"); __toffee.lineno = 2; @@ -6955,7 +2441,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); __toffee.lineno = 15; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -6971,64 +2457,65 @@ toffee.escape = function(__toffee, o) { toffee.templates["/junk/input.toffee"] = {}; toffee.templates["/junk/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, supplies, supply, _i, _len, _toffeePtr; - _toffeePtr = toffee; + var localsPointer, supplies, supply, _i, _len; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; supplies = ["broom", "mop", "vacuum"]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 3; __toffee.out.push("
      \n"); __toffee.lineno = 4; __toffee.out.push(" "); - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; for (_i = 0, _len = supplies.length; _i < _len; _i++) { supply = supplies[_i]; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.out.push("
    • "); __toffee.out.push("" + (supply != null ? escape(supply) : '')); __toffee.out.push("
    • "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; } - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.out.push("\n"); __toffee.lineno = 5; __toffee.out.push("
    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7044,50 +2531,51 @@ toffee.escape = function(__toffee, o) { toffee.templates["/junk/output.toffee"] = {}; toffee.templates["/junk/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("
      \n"); __toffee.lineno = 2; __toffee.out.push("
    • broom
    • mop
    • vacuum
    • \n"); __toffee.lineno = 3; __toffee.out.push("
    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7103,62 +2591,63 @@ toffee.escape = function(__toffee, o) { toffee.templates["/lambda_fns/input.toffee"] = {}; toffee.templates["/lambda_fns/input.toffee"].pub = function(locals) { - var echo_it, escape, html, json, print, print_it, print_it_twice, raw, states, _toffeePtr; - _toffeePtr = toffee; + var echo_it, localsPointer, print_it, print_it_twice; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; print_it = function(msg) { - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 2; __toffee.out.push("" + (msg != null ? escape(msg) : '')); - return __toffee.state = states.COFFEE; + return __toffee.state = toffee.states.COFFEE; }; print_it_twice = function(msg) { var m; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 5; __toffee.out.push("" + (msg != null ? escape(msg) : '')); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; m = msg; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 7; __toffee.out.push("" + (m != null ? escape(m) : '')); - return __toffee.state = states.COFFEE; + return __toffee.state = toffee.states.COFFEE; }; echo_it = function(msg) { var v; @@ -7183,46 +2672,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/lambda_fns/output.toffee"] = {}; toffee.templates["/lambda_fns/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("PassPassPassPass"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7238,48 +2728,49 @@ toffee.escape = function(__toffee, o) { toffee.templates["/multiline_interpolation/foo.toffee"] = {}; toffee.templates["/multiline_interpolation/foo.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); __toffee.out.push(" "); __toffee.out.push("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7295,43 +2786,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/multiline_interpolation/input.toffee"] = {}; toffee.templates["/multiline_interpolation/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("" + (escape("Hello, " + "world"))); __toffee.lineno = 4; @@ -7344,7 +2836,7 @@ toffee.escape = function(__toffee, o) { b: "world" }))); __toffee.lineno = 10; - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7360,50 +2852,51 @@ toffee.escape = function(__toffee, o) { toffee.templates["/multiline_interpolation/output.toffee"] = {}; toffee.templates["/multiline_interpolation/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("Hello, world\n"); __toffee.lineno = 2; __toffee.out.push("
    \n"); __toffee.lineno = 3; __toffee.out.push("Goodbye, world"); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7419,46 +2912,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/plaintext/input.toffee"] = {}; toffee.templates["/plaintext/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("Hi there."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7474,46 +2968,47 @@ toffee.escape = function(__toffee, o) { toffee.templates["/plaintext/output.toffee"] = {}; toffee.templates["/plaintext/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("Hi there."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7529,43 +3024,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/snippets/foo/bar/body.toffee"] = {}; toffee.templates["/snippets/foo/bar/body.toffee"].pub = function(locals) { - var escape, html, json, msg, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer, msg; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; msg = msg || "Unknown message"; print(msg); __toffee.res = __toffee.out.join(""); @@ -7583,43 +3079,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/snippets/foo/message.toffee"] = {}; toffee.templates["/snippets/foo/message.toffee"].pub = function(locals) { - var escape, from, html, json, msg, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var from, localsPointer, msg; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.COFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.COFFEE; from = from || "Unknown sender"; msg = msg || "Unknown message."; print("From: " + from + "\n" + (snippet('./bar/body.toffee', { @@ -7640,43 +3137,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/snippets/input.toffee"] = {}; toffee.templates["/snippets/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("" + (partial("./foo/message.toffee"))); __toffee.out.push("\n"); @@ -7692,7 +3190,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("" + (escape(snippet("./foo/message.toffee", { from: "Max" })))); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7708,43 +3206,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/snippets/output.toffee"] = {}; toffee.templates["/snippets/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("From: Preloaded sender\n"); __toffee.lineno = 2; @@ -7761,7 +3260,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("From: Max\n"); __toffee.lineno = 8; __toffee.out.push("Unknown message."); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7777,59 +3276,60 @@ toffee.escape = function(__toffee, o) { toffee.templates["/special_cases/input.toffee"] = {}; toffee.templates["/special_cases/input.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 5; __toffee.out.push("\n"); __toffee.lineno = 6; - __toffee.state = states.COFFEE; - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 7; __toffee.out.push('"' + "PASSED" + '"'); - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 8; __toffee.out.push("\n"); __toffee.lineno = 9; - __toffee.state = states.COFFEE; - __toffee.state = states.TOFFEE; + __toffee.state = toffee.states.COFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 13; __toffee.out.push("\n"); __toffee.lineno = 14; @@ -7840,7 +3340,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push("\n"); __toffee.lineno = 16; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7856,43 +3356,44 @@ toffee.escape = function(__toffee, o) { toffee.templates["/special_cases/output.toffee"] = {}; toffee.templates["/special_cases/output.toffee"].pub = function(locals) { - var escape, html, json, print, raw, states, _toffeePtr; - _toffeePtr = toffee; + var localsPointer; + localsPointer = locals; locals.__toffee = {}; - with (locals) {; - - __toffee.out = []; - if (!(typeof print !== "undefined" && print !== null)) { - print = function(o) { - return _toffeePtr.print(__toffee, o); + if (!(locals.print != null)) { + locals.print = function(o) { + return toffee.__print(localsPointer, o); }; } - if (!(typeof json !== "undefined" && json !== null)) { - json = function(o) { - return _toffeePtr.json(__toffee, o); + if (!(locals.json != null)) { + locals.json = function(o) { + return toffee.__json(localsPointer, o); }; } - if (!(typeof raw !== "undefined" && raw !== null)) { - raw = function(o) { - return _toffeePtr.raw(__toffee, o); + if (!(locals.raw != null)) { + locals.raw = function(o) { + return toffee.__raw(localsPointer, o); }; } - if (!(typeof html !== "undefined" && html !== null)) { - html = function(o) { - return _toffeePtr.html(__toffee, o); + if (!(locals.html != null)) { + locals.html = function(o) { + return toffee.__html(localsPointer, o); }; } - if (!(typeof escape !== "undefined" && escape !== null)) { - escape = function(o) { - return _toffeePtr.escape(__toffee, o); + if (!(locals.escape != null)) { + locals.escape = function(o) { + return toffee.__escape(localsPointer, o); }; } - states = { - "TOFFEE": 1, - "COFFEE": 2 - }; - __toffee.state = states.TOFFEE; - __toffee.state = states.TOFFEE; + locals.__toffee.print = locals.print; + locals.__toffee.json = locals.json; + locals.__toffee.raw = locals.raw; + locals.__toffee.html = locals.html; + locals.__toffee.escape = locals.escape; + with (locals) {; + + __toffee.out = []; + __toffee.state = toffee.states.TOFFEE; + __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; __toffee.out.push("\n"); __toffee.lineno = 2; @@ -7905,7 +3406,7 @@ toffee.escape = function(__toffee, o) { __toffee.out.push(" click & clack\n"); __toffee.lineno = 6; __toffee.out.push("

    "); - __toffee.state = states.COFFEE; + __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; @@ -7916,4 +3417,3 @@ toffee.escape = function(__toffee, o) { } }).call(this); - From 93422aeea9c2fb88f1a315fff3ced62b4cf018c9 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 31 Jul 2012 18:30:11 -0400 Subject: [PATCH 027/163] incremental --- Cakefile | 45 ++- test/cases/big_file/input.toffee | 30 +- test/cases/big_file/output.toffee | 2 +- .../express3/public/javascripts/test_cases.js | 323 +++++++++--------- test/express3/views/index.toffee | 101 +++++- 5 files changed, 315 insertions(+), 186 deletions(-) diff --git a/Cakefile b/Cakefile index 9ea81fc..926e00d 100644 --- a/Cakefile +++ b/Cakefile @@ -1,7 +1,7 @@ {spawn, exec} = require 'child_process' fs = require 'fs' jison = require 'jison' -stitch = require 'stitch' +path = require 'path' task 'build', 'build the whole jam', (cb) -> console.log "Building" @@ -41,9 +41,50 @@ buildParser = (cb) -> cb() generateExpressTest = (cb) -> + + # generate the JS file bundling all the tests + proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> process.exit(1) if status isnt 0 - cb() if typeof cb is 'function' \ No newline at end of file + cb() if typeof cb is 'function' + + # generate an index page that tests them all + + test_page = """ + + + Test Toffee in the browser + + + + + """ + + case_dirs = fs.readdirSync "./test/cases/" + + for dir in case_dirs + if dir isnt "custom_escape" # a special case since this isn't actually JSON + if path.existsSync "./test/cases/#{dir}/vars.js" + vars = "," + fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" + else + vars = "" + test_page += """ +
    +
    \#{partial '../../cases/#{dir}/input.toffee' #{vars}}
    +
    +
    +
    +
    + """ + + test_page += """ + + + """ + fs.writeFileSync "./test/express3/views/index.toffee", test_page, "utf8" \ No newline at end of file diff --git a/test/cases/big_file/input.toffee b/test/cases/big_file/input.toffee index 7346588..f9aab74 100644 --- a/test/cases/big_file/input.toffee +++ b/test/cases/big_file/input.toffee @@ -1,24 +1,24 @@ {# count = 0 for i in [0...2] {:#{ - count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ + count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ }...{# count += 1 - print "#{count}..." - #}#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ - }...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++}...#{count++ + print " #{count}..." + #} #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ + }... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++}... #{count++ }...{# count += 1 - print "#{count}..." + print " #{count}..." #}:} #} \ No newline at end of file diff --git a/test/cases/big_file/output.toffee b/test/cases/big_file/output.toffee index e6e0d8d..2525b55 100644 --- a/test/cases/big_file/output.toffee +++ b/test/cases/big_file/output.toffee @@ -1 +1 @@ -0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...70...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...162...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...232...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...324... \ No newline at end of file +0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324... \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 1447661..3b3e075 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -97,348 +97,349 @@ toffee.__escape = function(locals, o) { __toffee.lineno = 3; __toffee.out.push("" + (escape(count++))); __toffee.lineno = 4; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 5; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 6; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 7; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 8; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 9; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 10; __toffee.out.push("..."); __toffee.state = toffee.states.COFFEE; __toffee.state = toffee.states.COFFEE; count += 1; - print("" + count + "..."); + print(" " + count + "..."); __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 13; + __toffee.out.push(" "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 14; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 15; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 16; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 17; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 18; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 19; - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); - __toffee.out.push("..."); + __toffee.out.push("... "); __toffee.out.push("" + (escape(count++))); __toffee.lineno = 20; __toffee.out.push("..."); __toffee.state = toffee.states.COFFEE; __toffee.state = toffee.states.COFFEE; count += 1; - print("" + count + "..."); + print(" " + count + "..."); } __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -494,7 +495,7 @@ toffee.__escape = function(locals, o) { __toffee.state = toffee.states.TOFFEE; __toffee.state = toffee.states.TOFFEE; __toffee.lineno = 1; - __toffee.out.push("0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...16...17...18...19...20...21...22...23...24...25...26...27...28...29...30...31...32...33...34...35...36...37...38...39...40...41...42...43...44...45...46...47...48...49...50...51...52...53...54...55...56...57...58...59...60...61...62...63...64...65...66...67...68...70...70...71...72...73...74...75...76...77...78...79...80...81...82...83...84...85...86...87...88...89...90...91...92...93...94...95...96...97...98...99...100...101...102...103...104...105...106...107...108...109...110...111...112...113...114...115...116...117...118...119...120...121...122...123...124...125...126...127...128...129...130...131...132...133...134...135...136...137...138...139...140...141...142...143...144...145...146...147...148...149...150...151...152...153...154...155...156...157...158...159...160...162...162...163...164...165...166...167...168...169...170...171...172...173...174...175...176...177...178...179...180...181...182...183...184...185...186...187...188...189...190...191...192...193...194...195...196...197...198...199...200...201...202...203...204...205...206...207...208...209...210...211...212...213...214...215...216...217...218...219...220...221...222...223...224...225...226...227...228...229...230...232...232...233...234...235...236...237...238...239...240...241...242...243...244...245...246...247...248...249...250...251...252...253...254...255...256...257...258...259...260...261...262...263...264...265...266...267...268...269...270...271...272...273...274...275...276...277...278...279...280...281...282...283...284...285...286...287...288...289...290...291...292...293...294...295...296...297...298...299...300...301...302...303...304...305...306...307...308...309...310...311...312...313...314...315...316...317...318...319...320...321...322...324..."); + __toffee.out.push("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); __toffee.state = toffee.states.COFFEE; __toffee.res = __toffee.out.join(""); return __toffee.res; diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index c6c3cc1..5ba4506 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -1,12 +1,99 @@ - Toffee Test + Test Toffee in the browser + - -

    Test Results

    - #{partial "./subdir1/hello_world.toffee", rows:10, cols:10 } -
    - #{partial "./subdir2/goodbye_world.toffee"} - +
    +
    #{partial '../../cases/big_file/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/comments/input.toffee' ,{ + "greeting": "Hello" +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/eco_compare/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/escape/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/hello_world/input.toffee' ,{ + "greeting": "Hello" +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/include_order/input.toffee' ,{ + "greeting": "Hello" +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/include_recursion/input.toffee' ,{ + "countdown" : 10 +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/include_techniques/input.toffee' ,{ +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/indent_attack/input.toffee' ,{ +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/junk/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/lambda_fns/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/multiline_interpolation/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/plaintext/input.toffee' }
    +
    +
    +
    +
    +
    #{partial '../../cases/snippets/input.toffee' ,{ + "from": "Preloaded sender", + "msg" : "Preloaded message." +}}
    +
    +
    +
    +
    +
    #{partial '../../cases/special_cases/input.toffee' }
    +
    +
    +
    +
    \ No newline at end of file From 1adec72769571e2c84770c3c6f945f3a4dbba591 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 12:04:12 -0400 Subject: [PATCH 028/163] partials and snippets in browser-side nearly working --- Cakefile | 24 +- lib/errorHandler.js | 4 +- lib/view.js | 21 +- src/command_line.coffee | 2 +- src/errorHandler.coffee | 4 +- src/view.coffee | 109 +- test/cases/special_cases/input.toffee | 11 +- test/cases/special_cases/output.toffee | 7 +- .../express3/public/javascripts/test_cases.js | 5505 ++++++++++------- test/express3/views/index.toffee | 481 +- 10 files changed, 3843 insertions(+), 2325 deletions(-) diff --git a/Cakefile b/Cakefile index 926e00d..91322d5 100644 --- a/Cakefile +++ b/Cakefile @@ -59,7 +59,7 @@ generateExpressTest = (cb) -> Test Toffee in the browser @@ -70,17 +70,29 @@ generateExpressTest = (cb) -> for dir in case_dirs if dir isnt "custom_escape" # a special case since this isn't actually JSON + expected_output = fs.readFileSync "./test/cases/#{dir}/output.toffee", "utf8" if path.existsSync "./test/cases/#{dir}/vars.js" - vars = "," + fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" + vars = fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" else - vars = "" + vars = "{}" + rid = Math.floor 100000 * Math.random() test_page += """ + \n\n\n
    -
    \#{partial '../../cases/#{dir}/input.toffee' #{vars}}
    -
    -
    +
    \#{partial '../../cases/#{dir}/input.toffee', #{vars}}
    + +
    #{expected_output}
    + +
    +
    +
    + + \n\n\n """ test_page += """ diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 03c6edb..24a7947 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -265,8 +265,8 @@ } prev = ol.slice(0, lineno).join("\n"); next = ol.slice(lineno).join("\n"); - prev_matches = prev.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - next_matches = next.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); + prev_matches = prev.match(/_ln[ ]*([0-9]+)/g); + next_matches = next.match(/_ln[ ]*([0-9]+)/g); res = [1, tl.length]; if (prev_matches != null ? prev_matches.length : void 0) { res[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); diff --git a/lib/view.js b/lib/view.js index 198cdcd..556828b 100644 --- a/lib/view.js +++ b/lib/view.js @@ -23,7 +23,7 @@ each view will use this, or if they're bundled together, it'll only be used once */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n"; + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\ntoffee.__normalize = (path) ->\n if (not path?) or path is \"/\"\n return path\n else \n parts = path.split \"/\"\n np = []\n # make sure path always starts with '/'\n if parts[0]\n np.push ''\n for part in parts\n if part is \"..\"\n if np.length > 1\n np.pop()\n else\n np.push part\n else\n if part isnt \".\"\n np.push part\n path = np.join \"/\"\n if not path then path = \"/\"\n return path\n\ntoffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n console.log \"Partial called: \#{path}\"\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n console.log \"Snippet called: \#{path}\"\n vars = if vars? then vars else {}\n vars.__toffee = vars.__toffee or {}\n vars.__toffee.noInheritance = true\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__inlineInclude = (path, locals, parent_locals) ->\n options = locals or {}\n options.__toffee = options.__toffee or {}\n\n # we need to make a shallow copy of parent variables\n if not options.__toffee.noInheritance\n for k,v of parent_locals when not locals?[k]?\n if not (k in [\"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\"])\n options[k] = v\n\n if not toffee.templates[path]\n return \"Could not fund \#{path}\"\n else\n return toffee.templates[path].pub options\n"; }; getCommonHeadersJs = function() { @@ -225,7 +225,7 @@ return ""; } else { this.lastLineNo = n; - return "\n" + (this._space(ind)) + "__toffee.lineno = " + n; + return "\n" + (this._space(ind)) + "_ln " + n; } }; @@ -268,7 +268,7 @@ } break; case "TOFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.TOFFEE"; + res += "\n" + (this._space(indent_level)) + "_ts " + states.TOFFEE; _ref4 = obj[1]; for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { item = _ref4[_j]; @@ -277,7 +277,7 @@ } break; case "COFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "__toffee.state = toffee.states.COFFEE"; + res += "\n" + (this._space(indent_level)) + "_ts " + states.COFFEE; zone_baseline = this._getZoneBaseline(obj[1]); temp_indent_level = indent_level; _ref6 = obj[1]; @@ -290,7 +290,7 @@ break; case "TOFFEE": ind = indent_level; - res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.TOFFEE"; + res += "\n" + (this._space(ind)) + "_ts " + states.TOFFEE; lineno = obj[2]; try { t_int = utils.interpolateString(obj[1]); @@ -311,7 +311,7 @@ } else { chunk = "\#{escape(" + interp + ")}"; } - res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk)); + res += "\n" + (this._space(ind)) + "_to " + (this._quoteStr(chunk)); lineno += part[1].split("\n").length - 1; } else { lines = part[1].split("\n"); @@ -321,7 +321,7 @@ lbreak = i !== lines.length - 1 ? "\n" : ""; chunk = this._escapeForStr("" + line + lbreak); if (chunk.length) { - res += "\n" + (this._space(ind)) + "__toffee.out.push " + (this._quoteStr(chunk + lbreak)); + res += "\n" + (this._space(ind)) + "_to " + (this._quoteStr(chunk + lbreak)); } if (i < lines.length - 1) { lineno++; @@ -330,7 +330,7 @@ } } res += this._printLineNo(obj[2] + (obj[1].split('\n').length - 1), ind); - res += "\n" + (this._space(ind)) + "__toffee.state = toffee.states.COFFEE"; + res += "\n" + (this._space(ind)) + "_ts " + states.COFFEE; break; case "COFFEE": c = obj[1]; @@ -378,6 +378,7 @@ escapes a string so it can make it into coffeescript triple quotes without losing whitespace, etc. */ + s = s.replace(/\\/g, '\\\\'); s = s.replace(/\n/g, '\\n'); s = s.replace(/\t/g, '\\t'); return s; @@ -494,13 +495,13 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntoffee.templates[\"" + this.bundlePath + "\"] = {}\ntoffee.templates[\"" + this.bundlePath + "\"].pub = (locals) ->\n" + ___ + "localsPointer = locals\n" + ___ + "locals.__toffee = {}\n\n" + ___ + "if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o\n" + ___ + "if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o\n" + ___ + "if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o\n" + ___ + "if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o\n" + ___ + "if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o\n\n" + ___ + "locals.__toffee.print = locals.print\n" + ___ + "locals.__toffee.json = locals.json\n" + ___ + "locals.__toffee.raw = locals.raw\n" + ___ + "locals.__toffee.html = locals.html\n" + ___ + "locals.__toffee.escape = locals.escape\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (locals) ->\n" + ___ + "_l = locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> locals.__toffee.state = x\n\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { var ___; ___ = this._tabAsSpaces(); - return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return toffee.templates[\"" + this.bundlePath + "\"].pub __toffee_run_input"; + return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return tmpl.pub __toffee_run_input"; }; return view; diff --git a/src/command_line.coffee b/src/command_line.coffee index 541bd6e..c30d577 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -89,7 +89,7 @@ run = exports.run = -> if program.print console.log out_text if program.output - try + try console.log "Writing #{program.output}" fs.writeFileSync program.output, out_text, "utf8" catch e diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index 2bdc5ae..32351e3 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -218,8 +218,8 @@ class toffeeError prev = ol[0...lineno].join "\n" next = ol[lineno...].join "\n" - prev_matches = prev.match /__toffee.lineno[ ]*=[ ]*([0-9]+)/g - next_matches = next.match /__toffee.lineno[ ]*=[ ]*([0-9]+)/g + prev_matches = prev.match /_ln[ ]*([0-9]+)/g + next_matches = next.match /_ln[ ]*([0-9]+)/g res = [1,tl.length] if prev_matches?.length diff --git a/src/view.coffee b/src/view.coffee index 8308303..d40926f 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -46,6 +46,56 @@ toffee.__escape = (locals, o) -> return locals.html o return o +toffee.__normalize = (path) -> + if (not path?) or path is "/" + return path + else + parts = path.split "/" + np = [] + # make sure path always starts with '/' + if parts[0] + np.push '' + for part in parts + if part is ".." + if np.length > 1 + np.pop() + else + np.push part + else + if part isnt "." + np.push part + path = np.join "/" + if not path then path = "/" + return path + +toffee.__partial = (parent_tmpl, parent_locals, path, vars) -> + path = toffee.__normalize parent_tmpl.bundlePath + "/../" + path + console.log "Partial called: \#{path}" + return toffee.__inlineInclude path, vars, parent_locals + +toffee.__snippet = (parent_tmpl, parent_locals, path, vars) -> + path = toffee.__normalize parent_tmpl.bundlePath + "/../" + path + console.log "Snippet called: \#{path}" + vars = if vars? then vars else {} + vars.__toffee = vars.__toffee or {} + vars.__toffee.noInheritance = true + return toffee.__inlineInclude path, vars, parent_locals + +toffee.__inlineInclude = (path, locals, parent_locals) -> + options = locals or {} + options.__toffee = options.__toffee or {} + + # we need to make a shallow copy of parent variables + if not options.__toffee.noInheritance + for k,v of parent_locals when not locals?[k]? + if not (k in ["print", "partial", "snippet", "layout", "__toffee"]) + options[k] = v + + if not toffee.templates[path] + return "Could not fund \#{path}" + else + return toffee.templates[path].pub options + """ getCommonHeadersJs = -> @@ -194,7 +244,7 @@ class view return "" else @lastLineNo = n - return "\n#{@_space ind}__toffee.lineno = #{n}" + return "\n#{@_space ind}_ln #{n}" _snippetHasEscapeOverride: (str) -> for token in ['print',' snippet', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify'] @@ -231,12 +281,12 @@ class view [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline res += s when "TOFFEE_ZONE" - res += "\n#{@_space indent_level}__toffee.state = toffee.states.TOFFEE" + res += "\n#{@_space indent_level}_ts #{states.TOFFEE}" for item in obj[1] [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline res += s when "COFFEE_ZONE" - res += "\n#{@_space indent_level}__toffee.state = toffee.states.COFFEE" + res += "\n#{@_space indent_level}_ts #{states.COFFEE}" zone_baseline = @_getZoneBaseline obj[1] temp_indent_level = indent_level for item in obj[1] @@ -245,7 +295,7 @@ class view temp_indent_level = indent_level + delta when "TOFFEE" ind = indent_level - res += "\n#{@_space ind}__toffee.state = toffee.states.TOFFEE" + res += "\n#{@_space ind}_ts #{states.TOFFEE}" lineno = obj[2] try t_int = utils.interpolateString obj[1] @@ -263,7 +313,7 @@ class view chunk = "\#{#{interp}}" else chunk = "\#{escape(#{interp})}" - res += "\n#{@_space ind}__toffee.out.push #{@_quoteStr chunk}" + res += "\n#{@_space ind}_to #{@_quoteStr chunk}" lineno += part[1].split("\n").length - 1 else lines = part[1].split "\n" @@ -272,10 +322,10 @@ class view lbreak = if i isnt lines.length - 1 then "\n" else "" chunk = @_escapeForStr "#{line}#{lbreak}" if chunk.length - res += "\n#{@_space ind}__toffee.out.push #{@_quoteStr(chunk + lbreak)}" + res += "\n#{@_space ind}_to #{@_quoteStr(chunk + lbreak)}" if i < lines.length - 1 then lineno++ res += @_printLineNo obj[2] + (obj[1].split('\n').length-1), ind - res += "\n#{@_space ind}__toffee.state = toffee.states.COFFEE" + res += "\n#{@_space ind}_ts #{states.COFFEE}" when "COFFEE" c = obj[1] res += "\n#{@_reindent c, indent_level, indent_baseline}" @@ -311,6 +361,7 @@ class view escapes a string so it can make it into coffeescript triple quotes without losing whitespace, etc. ### + s = s.replace /\\/g, '\\\\' s = s.replace /\n/g, '\\n' s = s.replace /\t/g, '\\t' s @@ -378,22 +429,32 @@ class view """ #{if not @browserMode then getCommonHeaders() else ''} -toffee.templates["#{@bundlePath}"] = {} -toffee.templates["#{@bundlePath}"].pub = (locals) -> -#{___}localsPointer = locals -#{___}locals.__toffee = {} - -#{___}if not locals.print? then locals.print = (o) -> toffee.__print localsPointer, o -#{___}if not locals.json? then locals.json = (o) -> toffee.__json localsPointer, o -#{___}if not locals.raw? then locals.raw = (o) -> toffee.__raw localsPointer, o -#{___}if not locals.html? then locals.html = (o) -> toffee.__html localsPointer, o -#{___}if not locals.escape? then locals.escape = (o) -> toffee.__escape localsPointer, o - -#{___}locals.__toffee.print = locals.print -#{___}locals.__toffee.json = locals.json -#{___}locals.__toffee.raw = locals.raw -#{___}locals.__toffee.html = locals.html -#{___}locals.__toffee.escape = locals.escape +tmpl = toffee.templates["#{@bundlePath}"] = + bundlePath: "#{@bundlePath}" +tmpl.pub = (locals) -> +#{___}_l = locals +#{___}_t = _l.__toffee = { out: []} +#{___}_to = (x) -> locals.__toffee.out.push x +#{___}_ln = (x) -> locals.__toffee.lineno = x +#{___}_ts = (x) -> locals.__toffee.state = x + + +#{___}if not _l.print? then _l.print = (o) -> toffee.__print _l, o +#{___}if not _l.json? then _l.json = (o) -> toffee.__json _l, o +#{___}if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o +#{___}if not _l.html? then _l.html = (o) -> toffee.__html _l, o +#{___}if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o +#{___}if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["#{@bundlePath}"], _l, path, vars +#{___}if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["#{@bundlePath}"], _l, path, vars + + +#{___}_t.print = _l.print +#{___}_t.json = _l.json +#{___}_t.raw = _l.raw +#{___}_t.html = _l.html +#{___}_t.escape = _l.escape +#{___}_t.partial = _l.partial +#{___}_t.snippet = _l.snippet #{___}`with (locals) {` #{___}__toffee.out = [] @@ -408,7 +469,7 @@ toffee.templates["#{@bundlePath}"].pub = (locals) -> # sometimes we want to execute the whole thing in a sandbox # and just output results if __toffee_run_input? -#{___}return toffee.templates["#{@bundlePath}"].pub __toffee_run_input +#{___}return tmpl.pub __toffee_run_input """ exports.view = view diff --git a/test/cases/special_cases/input.toffee b/test/cases/special_cases/input.toffee index 32f977a..429d51c 100644 --- a/test/cases/special_cases/input.toffee +++ b/test/cases/special_cases/input.toffee @@ -13,4 +13,13 @@ ##}

    #{print "#{'click & clack'}"} -

    \ No newline at end of file +

    +{## + + Make backslashes in text are handled ok. + +##} +A backslash is a \ + \ No newline at end of file diff --git a/test/cases/special_cases/output.toffee b/test/cases/special_cases/output.toffee index 5554959..1490d7f 100644 --- a/test/cases/special_cases/output.toffee +++ b/test/cases/special_cases/output.toffee @@ -3,4 +3,9 @@

    click & clack -

    \ No newline at end of file +

    + +A backslash is a \ + \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 3b3e075..1054427 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -48,396 +48,484 @@ toffee.__escape = function(locals, o) { } return o; }; + +toffee.__normalize = function(path) { + var np, part, parts, _i, _len; + if ((!(path != null)) || path === "/") { + return path; + } else { + parts = path.split("/"); + np = []; + if (parts[0]) np.push(''); + for (_i = 0, _len = parts.length; _i < _len; _i++) { + part = parts[_i]; + if (part === "..") { + if (np.length > 1) { + np.pop(); + } else { + np.push(part); + } + } else { + if (part !== ".") np.push(part); + } + } + path = np.join("/"); + if (!path) path = "/"; + return path; + } +}; + +toffee.__partial = function(parent_tmpl, parent_locals, path, vars) { + path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); + console.log("Partial called: " + path); + return toffee.__inlineInclude(path, vars, parent_locals); +}; + +toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) { + path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); + console.log("Snippet called: " + path); + vars = vars != null ? vars : {}; + vars.__toffee = vars.__toffee || {}; + vars.__toffee.noInheritance = true; + return toffee.__inlineInclude(path, vars, parent_locals); +}; + +toffee.__inlineInclude = function(path, locals, parent_locals) { + var k, options, v; + options = locals || {}; + options.__toffee = options.__toffee || {}; + if (!options.__toffee.noInheritance) { + for (k in parent_locals) { + v = parent_locals[k]; + if (!((locals != null ? locals[k] : void 0) != null)) { + if (!(k === "print" || k === "partial" || k === "snippet" || k === "layout" || k === "__toffee")) { + options[k] = v; + } + } + } + } + if (!toffee.templates[path]) { + return "Could not fund " + path; + } else { + return toffee.templates[path].pub(options); + } +}; (function() { + var tmpl; - toffee.templates["/big_file/input.toffee"] = {}; + tmpl = toffee.templates["/big_file/input.toffee"] = { + bundlePath: "/big_file/input.toffee" + }; - toffee.templates["/big_file/input.toffee"].pub = function(locals) { - var count, i, localsPointer, _i; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var count, i, _i, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/big_file/input.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/big_file/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); count = 0; for (i = _i = 0; _i < 2; i = ++_i) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 3; - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 4; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 5; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 6; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 7; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 8; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 9; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 10; - __toffee.out.push("..."); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(3); + _to("" + (escape(count++))); + _ln(4); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(5); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(6); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(7); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(8); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(9); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(10); + _to("..."); + _ts(2); + _ts(2); count += 1; print(" " + count + "..."); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 13; - __toffee.out.push(" "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 14; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 15; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 16; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 17; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 18; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 19; - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.out.push("... "); - __toffee.out.push("" + (escape(count++))); - __toffee.lineno = 20; - __toffee.out.push("..."); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(13); + _to(" "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(14); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(15); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(16); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(17); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(18); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(19); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(20); + _to("..."); + _ts(2); + _ts(2); count += 1; print(" " + count + "..."); } @@ -447,255 +535,359 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/big_file/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/big_file/output.toffee"] = {}; + tmpl = toffee.templates["/big_file/output.toffee"] = { + bundlePath: "/big_file/output.toffee" + }; - toffee.templates["/big_file/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/big_file/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/big_file/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/big_file/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/comments/input.toffee"] = {}; + tmpl = toffee.templates["/comments/input.toffee"] = { + bundlePath: "/comments/input.toffee" + }; - toffee.templates["/comments/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/comments/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/comments/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push("Pass 1\n"); - __toffee.lineno = 3; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 8; - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.out.push("Pass 2\n"); - __toffee.lineno = 10; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to("Pass 1\n"); + _ln(3); + _ts(2); + _ts(1); + _ln(8); + _to("\n"); + _ln(9); + _to("Pass 2\n"); + _ln(10); + _ts(2); + _ts(2); /* print "FAIL FAIL FAIL" #{ foo } */ - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 19; - __toffee.out.push("\n"); - __toffee.lineno = 20; - __toffee.out.push("Pass 3\n"); - __toffee.lineno = 21; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(19); + _to("\n"); + _ln(20); + _to("Pass 3\n"); + _ln(21); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/comments/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/comments/output.toffee"] = {}; + tmpl = toffee.templates["/comments/output.toffee"] = { + bundlePath: "/comments/output.toffee" + }; - toffee.templates["/comments/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/comments/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/comments/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push("Pass 1\n"); - __toffee.lineno = 3; - __toffee.out.push("\n"); - __toffee.lineno = 4; - __toffee.out.push("Pass 2\n"); - __toffee.lineno = 5; - __toffee.out.push("\n"); - __toffee.lineno = 6; - __toffee.out.push("Pass 3\n"); - __toffee.lineno = 7; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to("Pass 1\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("Pass 2\n"); + _ln(5); + _to("\n"); + _ln(6); + _to("Pass 3\n"); + _ln(7); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/comments/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/custom_escape/input.toffee"] = {}; + tmpl = toffee.templates["/custom_escape/input.toffee"] = { + bundlePath: "/custom_escape/input.toffee" + }; - toffee.templates["/custom_escape/input.toffee"].pub = function(locals) { - var localsPointer, w, x, y, z; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var w, x, y, z, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); x = '"Hello world"'; y = ''; z = 'click&clack'; @@ -704,237 +896,289 @@ toffee.__escape = function(locals, o) { "place": "The Dreadfort" } ]; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 6; - __toffee.out.push("

    \n"); - __toffee.lineno = 7; - __toffee.out.push(" default x = "); - __toffee.out.push("" + (x != null ? escape(x) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 8; - __toffee.out.push(" default y = "); - __toffee.out.push("" + (y != null ? escape(y) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.out.push(" default z = "); - __toffee.out.push("" + (z != null ? escape(z) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 10; - __toffee.out.push(" default w = "); - __toffee.out.push("" + (w != null ? escape(w) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 11; - __toffee.out.push("

    \n"); - __toffee.lineno = 12; - __toffee.out.push("

    \n"); - __toffee.lineno = 13; - __toffee.out.push(" raw x = "); - __toffee.out.push("" + (raw(x))); - __toffee.out.push("\n"); - __toffee.lineno = 14; - __toffee.out.push(" raw y = "); - __toffee.out.push("" + (raw(y))); - __toffee.out.push("\n"); - __toffee.lineno = 15; - __toffee.out.push(" raw z = "); - __toffee.out.push("" + (raw(z))); - __toffee.out.push("\n"); - __toffee.lineno = 16; - __toffee.out.push(" raw w = "); - __toffee.out.push("" + (raw(w))); - __toffee.out.push("\n"); - __toffee.lineno = 17; - __toffee.out.push("

    \n"); - __toffee.lineno = 18; - __toffee.out.push("\n"); - __toffee.lineno = 24; - __toffee.out.push("

    \n"); - __toffee.lineno = 25; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(6); + _to("

    \n"); + _ln(7); + _to(" default x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _ln(8); + _to(" default y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _ln(9); + _to(" default z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _ln(10); + _to(" default w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _ln(11); + _to("

    \n"); + _ln(12); + _to("

    \n"); + _ln(13); + _to(" raw x = "); + _to("" + (raw(x))); + _to("\n"); + _ln(14); + _to(" raw y = "); + _to("" + (raw(y))); + _to("\n"); + _ln(15); + _to(" raw z = "); + _to("" + (raw(z))); + _to("\n"); + _ln(16); + _to(" raw w = "); + _to("" + (raw(w))); + _to("\n"); + _ln(17); + _to("

    \n"); + _ln(18); + _to("\n"); + _ln(24); + _to("

    \n"); + _ln(25); + _ts(2); + _ts(2); print(" raw printed x = " + x + "\n"); print(" raw printed y = " + y + "\n"); print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 30; - __toffee.out.push("\n"); - __toffee.lineno = 31; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(30); + _to("\n"); + _ln(31); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/custom_escape/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/custom_escape/output.toffee"] = {}; + tmpl = toffee.templates["/custom_escape/output.toffee"] = { + bundlePath: "/custom_escape/output.toffee" + }; - toffee.templates["/custom_escape/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("

    \n"); - __toffee.lineno = 2; - __toffee.out.push(" default x = [\"Hello world\"]\n"); - __toffee.lineno = 3; - __toffee.out.push(" default y = []\n"); - __toffee.lineno = 4; - __toffee.out.push(" default z = [click&clack]\n"); - __toffee.lineno = 5; - __toffee.out.push(" default w = [1,2,[object Object]]\n"); - __toffee.lineno = 6; - __toffee.out.push("

    \n"); - __toffee.lineno = 7; - __toffee.out.push("

    \n"); - __toffee.lineno = 8; - __toffee.out.push(" raw x = \"Hello world\"\n"); - __toffee.lineno = 9; - __toffee.out.push(" raw y = \n"); - __toffee.lineno = 10; - __toffee.out.push(" raw z = click&clack\n"); - __toffee.lineno = 11; - __toffee.out.push(" raw w = 1,2,[object Object]\n"); - __toffee.lineno = 12; - __toffee.out.push("

    \n"); - __toffee.lineno = 13; - __toffee.out.push("\n"); - __toffee.lineno = 19; - __toffee.out.push("

    \n"); - __toffee.lineno = 20; - __toffee.out.push(" raw printed x = \"Hello world\"\n"); - __toffee.lineno = 21; - __toffee.out.push(" raw printed y = \n"); - __toffee.lineno = 22; - __toffee.out.push(" raw printed z = click&clack\n"); - __toffee.lineno = 23; - __toffee.out.push(" raw printed w = 1,2,[object Object]\n"); - __toffee.lineno = 24; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("

    \n"); + _ln(2); + _to(" default x = [\"Hello world\"]\n"); + _ln(3); + _to(" default y = []\n"); + _ln(4); + _to(" default z = [click&clack]\n"); + _ln(5); + _to(" default w = [1,2,[object Object]]\n"); + _ln(6); + _to("

    \n"); + _ln(7); + _to("

    \n"); + _ln(8); + _to(" raw x = \"Hello world\"\n"); + _ln(9); + _to(" raw y = \n"); + _ln(10); + _to(" raw z = click&clack\n"); + _ln(11); + _to(" raw w = 1,2,[object Object]\n"); + _ln(12); + _to("

    \n"); + _ln(13); + _to("\n"); + _ln(19); + _to("

    \n"); + _ln(20); + _to(" raw printed x = \"Hello world\"\n"); + _ln(21); + _to(" raw printed y = \n"); + _ln(22); + _to(" raw printed z = click&clack\n"); + _ln(23); + _to(" raw printed w = 1,2,[object Object]\n"); + _ln(24); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/custom_escape/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/eco_compare/input.toffee"] = {}; + tmpl = toffee.templates["/eco_compare/input.toffee"] = { + bundlePath: "/eco_compare/input.toffee" + }; - toffee.templates["/eco_compare/input.toffee"].pub = function(locals) { - var f, friends, localsPointer, project, _i, _len, _ref; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var f, friends, project, _i, _l, _len, _ln, _ref, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); this.projects = [ { url: "http://localhost:3000", @@ -950,28 +1194,28 @@ toffee.__escape = function(locals, o) { _ref = this.projects; for (_i = 0, _len = _ref.length; _i < _len; _i++) { project = _ref[_i]; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 8; - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.out.push(" "); - __toffee.out.push("" + (escape(project.name))); - __toffee.out.push("\n"); - __toffee.lineno = 10; - __toffee.out.push("

    "); - __toffee.out.push("" + (escape(project.description))); - __toffee.out.push("

    \n"); - __toffee.lineno = 11; - __toffee.out.push(" "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(8); + _to("\n"); + _ln(9); + _to(" "); + _to("" + (escape(project.name))); + _to("\n"); + _ln(10); + _to("

    "); + _to("" + (escape(project.description))); + _to("

    \n"); + _ln(11); + _to(" "); + _ts(2); } } else { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 12; - __toffee.out.push(" No projects "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(12); + _to(" No projects "); + _ts(2); } friends = [ { @@ -988,14 +1232,14 @@ toffee.__escape = function(locals, o) { name: "Marissa" } ]; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 20; - __toffee.out.push("\n"); - __toffee.lineno = 21; - __toffee.out.push("\n"); - __toffee.lineno = 22; - __toffee.out.push("You have "); - __toffee.out.push("" + (escape(((function() { + _ts(1); + _ln(20); + _to("\n"); + _ln(21); + _to("\n"); + _ln(22); + _to("You have "); + _to("" + (escape(((function() { var _j, _len1, _results; _results = []; for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { @@ -1004,133 +1248,185 @@ toffee.__escape = function(locals, o) { } return _results; })()).length))); - __toffee.out.push(" female friends."); - __toffee.state = toffee.states.COFFEE; + _to(" female friends."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/eco_compare/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/eco_compare/output.toffee"] = {}; + tmpl = toffee.templates["/eco_compare/output.toffee"] = { + bundlePath: "/eco_compare/output.toffee" + }; - toffee.templates["/eco_compare/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push(" okcupid\n"); - __toffee.lineno = 3; - __toffee.out.push("

    A site for singles

    \n"); - __toffee.lineno = 4; - __toffee.out.push(" \n"); - __toffee.lineno = 5; - __toffee.out.push(" tallygram\n"); - __toffee.lineno = 6; - __toffee.out.push("

    A site for anyone

    \n"); - __toffee.lineno = 7; - __toffee.out.push(" \n"); - __toffee.lineno = 8; - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.out.push("You have 3 female friends."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to(" okcupid\n"); + _ln(3); + _to("

    A site for singles

    \n"); + _ln(4); + _to(" \n"); + _ln(5); + _to(" tallygram\n"); + _ln(6); + _to("

    A site for anyone

    \n"); + _ln(7); + _to(" \n"); + _ln(8); + _to("\n"); + _ln(9); + _to("You have 3 female friends."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/eco_compare/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/escape/input.toffee"] = {}; + tmpl = toffee.templates["/escape/input.toffee"] = { + bundlePath: "/escape/input.toffee" + }; - toffee.templates["/escape/input.toffee"].pub = function(locals) { - var localsPointer, w, x, y, z; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var w, x, y, z, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/escape/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/escape/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); x = '"Hello world"'; y = ''; z = 'click&clack'; @@ -1139,696 +1435,904 @@ toffee.__escape = function(locals, o) { "place": "The Dreadfort" } ]; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 6; - __toffee.out.push("

    \n"); - __toffee.lineno = 7; - __toffee.out.push(" default x = "); - __toffee.out.push("" + (x != null ? escape(x) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 8; - __toffee.out.push(" default y = "); - __toffee.out.push("" + (y != null ? escape(y) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.out.push(" default z = "); - __toffee.out.push("" + (z != null ? escape(z) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 10; - __toffee.out.push(" default w = "); - __toffee.out.push("" + (w != null ? escape(w) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 11; - __toffee.out.push(" default r = "); - __toffee.out.push("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); - __toffee.out.push("\n"); - __toffee.lineno = 12; - __toffee.out.push(" default w.foo = "); - __toffee.out.push("" + (escape(w.foo))); - __toffee.out.push("\n"); - __toffee.lineno = 13; - __toffee.out.push("

    \n"); - __toffee.lineno = 14; - __toffee.out.push("

    \n"); - __toffee.lineno = 15; - __toffee.out.push(" raw x = "); - __toffee.out.push("" + (raw(x))); - __toffee.out.push("\n"); - __toffee.lineno = 16; - __toffee.out.push(" raw y = "); - __toffee.out.push("" + (raw(y))); - __toffee.out.push("\n"); - __toffee.lineno = 17; - __toffee.out.push(" raw z = "); - __toffee.out.push("" + (raw(z))); - __toffee.out.push("\n"); - __toffee.lineno = 18; - __toffee.out.push(" raw w = "); - __toffee.out.push("" + (raw(w))); - __toffee.out.push("\n"); - __toffee.lineno = 19; - __toffee.out.push("

    \n"); - __toffee.lineno = 20; - __toffee.out.push("\n"); - __toffee.lineno = 26; - __toffee.out.push("

    \n"); - __toffee.lineno = 27; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(6); + _to("

    \n"); + _ln(7); + _to(" default x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _ln(8); + _to(" default y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _ln(9); + _to(" default z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _ln(10); + _to(" default w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _ln(11); + _to(" default r = "); + _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); + _to("\n"); + _ln(12); + _to(" default w.foo = "); + _to("" + (escape(w.foo))); + _to("\n"); + _ln(13); + _to("

    \n"); + _ln(14); + _to("

    \n"); + _ln(15); + _to(" raw x = "); + _to("" + (raw(x))); + _to("\n"); + _ln(16); + _to(" raw y = "); + _to("" + (raw(y))); + _to("\n"); + _ln(17); + _to(" raw z = "); + _to("" + (raw(z))); + _to("\n"); + _ln(18); + _to(" raw w = "); + _to("" + (raw(w))); + _to("\n"); + _ln(19); + _to("

    \n"); + _ln(20); + _to("\n"); + _ln(26); + _to("

    \n"); + _ln(27); + _ts(2); + _ts(2); print(" raw printed x = " + x + "\n"); print(" raw printed y = " + y + "\n"); print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 32; - __toffee.out.push("\n"); - __toffee.lineno = 33; - __toffee.out.push("

    \n"); - __toffee.lineno = 34; - __toffee.out.push("

    \n"); - __toffee.lineno = 35; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(32); + _to("\n"); + _ln(33); + _to("

    \n"); + _ln(34); + _to("

    \n"); + _ln(35); + _ts(2); + _ts(2); print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 40; - __toffee.out.push("\n"); - __toffee.lineno = 41; - __toffee.out.push("

    \n"); - __toffee.lineno = 42; - __toffee.out.push("

    \n"); - __toffee.lineno = 43; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(40); + _to("\n"); + _ln(41); + _to("

    \n"); + _ln(42); + _to("

    \n"); + _ln(43); + _ts(2); + _ts(2); print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); print(" html printed longhand w = " + (__toffee.html(w))); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 48; - __toffee.out.push("\n"); - __toffee.lineno = 49; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(48); + _to("\n"); + _ln(49); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/escape/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/escape/output.toffee"] = {}; + tmpl = toffee.templates["/escape/output.toffee"] = { + bundlePath: "/escape/output.toffee" + }; - toffee.templates["/escape/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/escape/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/escape/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("

    \n"); - __toffee.lineno = 2; - __toffee.out.push(" default x = "Hello world"\n"); - __toffee.lineno = 3; - __toffee.out.push(" default y = <td>\n"); - __toffee.lineno = 4; - __toffee.out.push(" default z = click&clack\n"); - __toffee.lineno = 5; - __toffee.out.push(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - __toffee.lineno = 6; - __toffee.out.push(" default r = \n"); - __toffee.lineno = 7; - __toffee.out.push(" default w.foo = \n"); - __toffee.lineno = 8; - __toffee.out.push("

    \n"); - __toffee.lineno = 9; - __toffee.out.push("

    \n"); - __toffee.lineno = 10; - __toffee.out.push(" raw x = \"Hello world\"\n"); - __toffee.lineno = 11; - __toffee.out.push(" raw y = \n"); - __toffee.lineno = 12; - __toffee.out.push(" raw z = click&clack\n"); - __toffee.lineno = 13; - __toffee.out.push(" raw w = 1,2,[object Object]\n"); - __toffee.lineno = 14; - __toffee.out.push("

    \n"); - __toffee.lineno = 15; - __toffee.out.push("\n"); - __toffee.lineno = 21; - __toffee.out.push("

    \n"); - __toffee.lineno = 22; - __toffee.out.push(" raw printed x = \"Hello world\"\n"); - __toffee.lineno = 23; - __toffee.out.push(" raw printed y = \n"); - __toffee.lineno = 24; - __toffee.out.push(" raw printed z = click&clack\n"); - __toffee.lineno = 25; - __toffee.out.push(" raw printed w = 1,2,[object Object]\n"); - __toffee.lineno = 26; - __toffee.out.push("

    \n"); - __toffee.lineno = 27; - __toffee.out.push("

    \n"); - __toffee.lineno = 28; - __toffee.out.push(" json printed x = \"\"Hello world\"\"\n"); - __toffee.lineno = 29; - __toffee.out.push(" json printed y = \"\u003Ctd\u003E\"\n"); - __toffee.lineno = 30; - __toffee.out.push(" json printed z = \"click\u0026clack\"\n"); - __toffee.lineno = 31; - __toffee.out.push(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - __toffee.lineno = 32; - __toffee.out.push("

    \n"); - __toffee.lineno = 33; - __toffee.out.push("

    \n"); - __toffee.lineno = 34; - __toffee.out.push(" html printed longhand x = "Hello world"\n"); - __toffee.lineno = 35; - __toffee.out.push(" html printed longhand y = <td>\n"); - __toffee.lineno = 36; - __toffee.out.push(" html printed longhand z = click&clack\n"); - __toffee.lineno = 37; - __toffee.out.push(" html printed longhand w = 1,2,[object Object]\n"); - __toffee.lineno = 38; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("

    \n"); + _ln(2); + _to(" default x = "Hello world"\n"); + _ln(3); + _to(" default y = <td>\n"); + _ln(4); + _to(" default z = click&clack\n"); + _ln(5); + _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(6); + _to(" default r = \n"); + _ln(7); + _to(" default w.foo = \n"); + _ln(8); + _to("

    \n"); + _ln(9); + _to("

    \n"); + _ln(10); + _to(" raw x = \"Hello world\"\n"); + _ln(11); + _to(" raw y = \n"); + _ln(12); + _to(" raw z = click&clack\n"); + _ln(13); + _to(" raw w = 1,2,[object Object]\n"); + _ln(14); + _to("

    \n"); + _ln(15); + _to("\n"); + _ln(21); + _to("

    \n"); + _ln(22); + _to(" raw printed x = \"Hello world\"\n"); + _ln(23); + _to(" raw printed y = \n"); + _ln(24); + _to(" raw printed z = click&clack\n"); + _ln(25); + _to(" raw printed w = 1,2,[object Object]\n"); + _ln(26); + _to("

    \n"); + _ln(27); + _to("

    \n"); + _ln(28); + _to(" json printed x = \"\\\"Hello world\\\"\"\n"); + _ln(29); + _to(" json printed y = \"\\u003Ctd\\u003E\"\n"); + _ln(30); + _to(" json printed z = \"click\\u0026clack\"\n"); + _ln(31); + _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(32); + _to("

    \n"); + _ln(33); + _to("

    \n"); + _ln(34); + _to(" html printed longhand x = "Hello world"\n"); + _ln(35); + _to(" html printed longhand y = <td>\n"); + _ln(36); + _to(" html printed longhand z = click&clack\n"); + _ln(37); + _to(" html printed longhand w = 1,2,[object Object]\n"); + _ln(38); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/escape/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/hello_world/input.toffee"] = {}; + tmpl = toffee.templates["/hello_world/input.toffee"] = { + bundlePath: "/hello_world/input.toffee" + }; - toffee.templates["/hello_world/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/input.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); - __toffee.out.push(", world."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); + _to(", world."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/hello_world/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/hello_world/output.toffee"] = {}; + tmpl = toffee.templates["/hello_world/output.toffee"] = { + bundlePath: "/hello_world/output.toffee" + }; - toffee.templates["/hello_world/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("Hello, world."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("Hello, world."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/hello_world/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/hello_world/temp.toffee"] = {}; + tmpl = toffee.templates["/hello_world/temp.toffee"] = { + bundlePath: "/hello_world/temp.toffee" + }; - toffee.templates["/hello_world/temp.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("a\n"); - __toffee.lineno = 2; - __toffee.out.push("b\n"); - __toffee.lineno = 3; - __toffee.out.push("c\n"); - __toffee.lineno = 4; - __toffee.out.push("" + (escape(passed_fn(100)))); - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("d\n"); - __toffee.lineno = 6; - __toffee.out.push("e\n"); - __toffee.lineno = 7; - __toffee.out.push("f"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("a\n"); + _ln(2); + _to("b\n"); + _ln(3); + _to("c\n"); + _ln(4); + _to("" + (escape(passed_fn(100)))); + _to("\n"); + _ln(5); + _to("d\n"); + _ln(6); + _to("e\n"); + _ln(7); + _to("f"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/hello_world/temp.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_order/child.toffee"] = {}; + tmpl = toffee.templates["/include_order/child.toffee"] = { + bundlePath: "/include_order/child.toffee" + }; - toffee.templates["/include_order/child.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/child.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/child.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("a\n"); - __toffee.lineno = 2; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("a\n"); + _ln(2); + _ts(2); + _ts(2); say_hi(); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 4; - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("b"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(4); + _to("\n"); + _ln(5); + _to("b"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_order/child.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_order/input.toffee"] = {}; + tmpl = toffee.templates["/include_order/input.toffee"] = { + bundlePath: "/include_order/input.toffee" + }; - toffee.templates["/include_order/input.toffee"].pub = function(locals) { - var localsPointer, say_hi; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var say_hi, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); say_hi = function() { - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 3; - __toffee.out.push("hi"); - return __toffee.state = toffee.states.COFFEE; - }; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 4; - __toffee.out.push("1\n"); - __toffee.lineno = 5; - __toffee.out.push("2\n"); - __toffee.lineno = 6; - __toffee.out.push("" + (partial("child.toffee", { + _ts(1); + _ts(1); + _ln(3); + _to("hi"); + return _ts(2); + }; + _ts(1); + _ln(4); + _to("1\n"); + _ln(5); + _to("2\n"); + _ln(6); + _to("" + (partial("child.toffee", { say_hi: say_hi }))); - __toffee.out.push("\n"); - __toffee.lineno = 7; - __toffee.out.push("3\n"); - __toffee.lineno = 8; - __toffee.out.push("4"); - __toffee.state = toffee.states.COFFEE; + _to("\n"); + _ln(7); + _to("3\n"); + _ln(8); + _to("4"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_order/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_order/output.toffee"] = {}; + tmpl = toffee.templates["/include_order/output.toffee"] = { + bundlePath: "/include_order/output.toffee" + }; - toffee.templates["/include_order/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/output.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("1\n"); - __toffee.lineno = 2; - __toffee.out.push("2\n"); - __toffee.lineno = 3; - __toffee.out.push("hia\n"); - __toffee.lineno = 4; - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("b\n"); - __toffee.lineno = 6; - __toffee.out.push("3\n"); - __toffee.lineno = 7; - __toffee.out.push("4"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("1\n"); + _ln(2); + _to("2\n"); + _ln(3); + _to("hia\n"); + _ln(4); + _to("\n"); + _ln(5); + _to("b\n"); + _ln(6); + _to("3\n"); + _ln(7); + _to("4"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_order/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_recursion/input.toffee"] = {}; + tmpl = toffee.templates["/include_recursion/input.toffee"] = { + bundlePath: "/include_recursion/input.toffee" + }; - toffee.templates["/include_recursion/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); if (countdown === 0) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 2; - __toffee.out.push("blastoff!"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(2); + _to("blastoff!"); + _ts(2); } else { print("" + countdown + "..." + (partial('input.toffee', { countdown: countdown - 1 @@ -1840,132 +2344,184 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_recursion/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_recursion/output.toffee"] = {}; + tmpl = toffee.templates["/include_recursion/output.toffee"] = { + bundlePath: "/include_recursion/output.toffee" + }; - toffee.templates["/include_recursion/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("10...9...8...7...6...5...4...3...2...1...blastoff!"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_recursion/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_techniques/input.toffee"] = {}; + tmpl = toffee.templates["/include_techniques/input.toffee"] = { + bundlePath: "/include_techniques/input.toffee" + }; - toffee.templates["/include_techniques/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("" + (partial("message.toffee", { + _ts(1); + _ts(1); + _ln(1); + _to("" + (partial("message.toffee", { from: "Chris " }))); - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push("" + (partial("message.toffee", { + _to("\n"); + _ln(2); + _to("" + (partial("message.toffee", { from: "Max & Sam" }))); - __toffee.out.push("\n"); - __toffee.lineno = 3; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _to("\n"); + _ln(3); + _ts(2); + _ts(2); print(partial("message.toffee", { from: "Christian" })); - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 5; - __toffee.out.push("" + (partial("message.toffee", { + _ts(1); + _ts(1); + _ln(5); + _to("" + (partial("message.toffee", { from: "Jennie" }))); - __toffee.state = toffee.states.COFFEE; + _ts(2); print(partial("message.toffee", { sender: "The enemy" })); @@ -1975,680 +2531,862 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_techniques/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_techniques/message.toffee"] = {}; + tmpl = toffee.templates["/include_techniques/message.toffee"] = { + bundlePath: "/include_techniques/message.toffee" + }; - toffee.templates["/include_techniques/message.toffee"].pub = function(locals) { - var from, localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var from, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); from = from || "Unknown"; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 3; - __toffee.out.push("From: "); - __toffee.out.push("" + (from != null ? escape(from) : '')); - __toffee.out.push(" \n"); - __toffee.lineno = 4; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 5; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(3); + _to("From: "); + _to("" + (from != null ? escape(from) : '')); + _to(" \n"); + _ln(4); + _to("Msg: Hello, world\n"); + _ln(5); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_techniques/message.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/include_techniques/output.toffee"] = {}; + tmpl = toffee.templates["/include_techniques/output.toffee"] = { + bundlePath: "/include_techniques/output.toffee" + }; - toffee.templates["/include_techniques/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("From: Chris <ccoyne77@gmail> \n"); - __toffee.lineno = 2; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 3; - __toffee.out.push("\n"); - __toffee.lineno = 4; - __toffee.out.push("From: Max & Sam \n"); - __toffee.lineno = 5; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 6; - __toffee.out.push("\n"); - __toffee.lineno = 7; - __toffee.out.push("From: Christian \n"); - __toffee.lineno = 8; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 9; - __toffee.out.push("From: Jennie \n"); - __toffee.lineno = 10; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 11; - __toffee.out.push("From: Unknown \n"); - __toffee.lineno = 12; - __toffee.out.push("Msg: Hello, world\n"); - __toffee.lineno = 13; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("From: Chris <ccoyne77@gmail> \n"); + _ln(2); + _to("Msg: Hello, world\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("From: Max & Sam \n"); + _ln(5); + _to("Msg: Hello, world\n"); + _ln(6); + _to("\n"); + _ln(7); + _to("From: Christian \n"); + _ln(8); + _to("Msg: Hello, world\n"); + _ln(9); + _to("From: Jennie \n"); + _ln(10); + _to("Msg: Hello, world\n"); + _ln(11); + _to("From: Unknown \n"); + _ln(12); + _to("Msg: Hello, world\n"); + _ln(13); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/include_techniques/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/indent_attack/input.toffee"] = {}; + tmpl = toffee.templates["/indent_attack/input.toffee"] = { + bundlePath: "/indent_attack/input.toffee" + }; - toffee.templates["/indent_attack/input.toffee"].pub = function(locals) { - var i, localsPointer, x, _i; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var i, x, _i, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("
    \n"); - __toffee.lineno = 2; - __toffee.out.push(" "); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("
    \n"); + _ln(2); + _to(" "); + _ts(2); + _ts(2); if (1 === 1) { if (2 === 2) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 5; - __toffee.out.push("Pass1"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(5); + _to("Pass1"); + _ts(2); } } } if (1 === 1) { if (2 === 3) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 9; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(9); + _to("Fail"); + _ts(2); } else { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 11; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(11); + _to("Fail"); + _ts(2); } } else { if (2 === 2) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 14; - __toffee.out.push("Pass2"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(14); + _to("Pass2"); + _ts(2); } } } } - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 15; - __toffee.out.push("\n"); - __toffee.lineno = 16; - __toffee.out.push("
    \n"); - __toffee.lineno = 17; - __toffee.out.push("\n"); - __toffee.lineno = 18; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(15); + _to("\n"); + _ln(16); + _to("
    \n"); + _ln(17); + _to("\n"); + _ln(18); + _ts(2); + _ts(2); if (1 === 1) { if (2 === 2) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 21; - __toffee.out.push("Pass3"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(21); + _to("Pass3"); + _ts(2); } } } if (1 === 1) { if (2 === 3) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 25; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(25); + _to("Fail"); + _ts(2); } else { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 27; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(27); + _to("Fail"); + _ts(2); } } else { if (2 === 2) { if (3 === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 30; - __toffee.out.push("Pass4"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(30); + _to("Pass4"); + _ts(2); } } } } - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 31; - __toffee.out.push("\n"); - __toffee.lineno = 32; - __toffee.out.push("
    \n"); - __toffee.lineno = 33; - __toffee.out.push("\n"); - __toffee.lineno = 34; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(31); + _to("\n"); + _ln(32); + _to("
    \n"); + _ln(33); + _to("\n"); + _ln(34); + _ts(2); + _ts(2); if (10 === 10) { if (20 === 20) { if (30 === 30) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 37; - __toffee.out.push("Pass5"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(37); + _to("Pass5"); + _ts(2); } } } if (10 === 10) { if (20 === 30) { if (30 === 30) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 41; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(41); + _to("Fail"); + _ts(2); } else { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 43; - __toffee.out.push("Fail"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(43); + _to("Fail"); + _ts(2); } } else { if (20 === 20) { if (30 === 30) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 46; - __toffee.out.push("Pass6"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(46); + _to("Pass6"); + _ts(2); } } } } - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 47; - __toffee.out.push("\n"); - __toffee.lineno = 48; - __toffee.out.push("\n"); - __toffee.lineno = 49; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(47); + _to("\n"); + _ln(48); + _to("\n"); + _ln(49); + _ts(2); + _ts(2); if (99 === 99) { print('Pass7'); } else { print('Fail'); - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 54; - __toffee.out.push("Fail8"); - __toffee.state = toffee.states.COFFEE; - } - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 55; - __toffee.out.push("Pass8"); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 56; - __toffee.out.push("\n"); - __toffee.lineno = 57; - __toffee.out.push("\n"); - __toffee.lineno = 58; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 60; - __toffee.out.push("...passed with flying colors."); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 61; - __toffee.out.push("\n"); - __toffee.lineno = 62; - __toffee.out.push("

    \n"); - __toffee.lineno = 63; - __toffee.out.push(" "); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(54); + _to("Fail8"); + _ts(2); + } + _ts(1); + _ts(1); + _ln(55); + _to("Pass8"); + _ts(2); + _ts(1); + _ln(56); + _to("\n"); + _ln(57); + _to("\n"); + _ln(58); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _ln(60); + _to("...passed with flying colors."); + _ts(2); + _ts(1); + _ln(61); + _to("\n"); + _ln(62); + _to("

    \n"); + _ln(63); + _to(" "); + _ts(2); + _ts(2); x = 10; if (x > 1) { for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 67; - __toffee.out.push("
    "); - __toffee.out.push("" + (i != null ? escape(i) : '')); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(67); + _to("
    "); + _to("" + (i != null ? escape(i) : '')); + _ts(2); + _ts(2); if (i === 3) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 68; - __toffee.out.push(" (my favorite number) "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(68); + _to(" (my favorite number) "); + _ts(2); } } } - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 70; - __toffee.out.push("\n"); - __toffee.lineno = 71; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(70); + _to("\n"); + _ln(71); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/indent_attack/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/indent_attack/output.toffee"] = {}; + tmpl = toffee.templates["/indent_attack/output.toffee"] = { + bundlePath: "/indent_attack/output.toffee" + }; - toffee.templates["/indent_attack/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("
    \n"); - __toffee.lineno = 2; - __toffee.out.push(" Pass1Pass2\n"); - __toffee.lineno = 3; - __toffee.out.push("
    \n"); - __toffee.lineno = 4; - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("Pass3Pass4\n"); - __toffee.lineno = 6; - __toffee.out.push("
    \n"); - __toffee.lineno = 7; - __toffee.out.push("\n"); - __toffee.lineno = 8; - __toffee.out.push("Pass5Pass6\n"); - __toffee.lineno = 9; - __toffee.out.push("\n"); - __toffee.lineno = 10; - __toffee.out.push("Pass7Pass8\n"); - __toffee.lineno = 11; - __toffee.out.push("\n"); - __toffee.lineno = 12; - __toffee.out.push("...passed with flying colors.\n"); - __toffee.lineno = 13; - __toffee.out.push("

    \n"); - __toffee.lineno = 14; - __toffee.out.push("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); - __toffee.lineno = 15; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("
    \n"); + _ln(2); + _to(" Pass1Pass2\n"); + _ln(3); + _to("
    \n"); + _ln(4); + _to("\n"); + _ln(5); + _to("Pass3Pass4\n"); + _ln(6); + _to("
    \n"); + _ln(7); + _to("\n"); + _ln(8); + _to("Pass5Pass6\n"); + _ln(9); + _to("\n"); + _ln(10); + _to("Pass7Pass8\n"); + _ln(11); + _to("\n"); + _ln(12); + _to("...passed with flying colors.\n"); + _ln(13); + _to("

    \n"); + _ln(14); + _to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); + _ln(15); + _to("

    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/indent_attack/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/junk/input.toffee"] = {}; + tmpl = toffee.templates["/junk/input.toffee"] = { + bundlePath: "/junk/input.toffee" + }; - toffee.templates["/junk/input.toffee"].pub = function(locals) { - var localsPointer, supplies, supply, _i, _len; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var supplies, supply, _i, _l, _len, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/junk/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/junk/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); supplies = ["broom", "mop", "vacuum"]; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 3; - __toffee.out.push("
      \n"); - __toffee.lineno = 4; - __toffee.out.push(" "); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(3); + _to("
        \n"); + _ln(4); + _to(" "); + _ts(2); + _ts(2); for (_i = 0, _len = supplies.length; _i < _len; _i++) { supply = supplies[_i]; - __toffee.state = toffee.states.TOFFEE; - __toffee.out.push("
      • "); - __toffee.out.push("" + (supply != null ? escape(supply) : '')); - __toffee.out.push("
      • "); - __toffee.state = toffee.states.COFFEE; - } - __toffee.state = toffee.states.TOFFEE; - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("
      "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _to("
    • "); + _to("" + (supply != null ? escape(supply) : '')); + _to("
    • "); + _ts(2); + } + _ts(1); + _to("\n"); + _ln(5); + _to("
    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/junk/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/junk/output.toffee"] = {}; + tmpl = toffee.templates["/junk/output.toffee"] = { + bundlePath: "/junk/output.toffee" + }; - toffee.templates["/junk/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/junk/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/junk/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("
      \n"); - __toffee.lineno = 2; - __toffee.out.push("
    • broom
    • mop
    • vacuum
    • \n"); - __toffee.lineno = 3; - __toffee.out.push("
    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("
      \n"); + _ln(2); + _to("
    • broom
    • mop
    • vacuum
    • \n"); + _ln(3); + _to("
    "); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/junk/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/lambda_fns/input.toffee"] = {}; + tmpl = toffee.templates["/lambda_fns/input.toffee"] = { + bundlePath: "/lambda_fns/input.toffee" + }; - toffee.templates["/lambda_fns/input.toffee"].pub = function(locals) { - var echo_it, localsPointer, print_it, print_it_twice; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var echo_it, print_it, print_it_twice, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); print_it = function(msg) { - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 2; - __toffee.out.push("" + (msg != null ? escape(msg) : '')); - return __toffee.state = toffee.states.COFFEE; + _ts(1); + _ln(2); + _to("" + (msg != null ? escape(msg) : '')); + return _ts(2); }; print_it_twice = function(msg) { var m; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 5; - __toffee.out.push("" + (msg != null ? escape(msg) : '')); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(5); + _to("" + (msg != null ? escape(msg) : '')); + _ts(2); m = msg; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 7; - __toffee.out.push("" + (m != null ? escape(m) : '')); - return __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(7); + _to("" + (m != null ? escape(m) : '')); + return _ts(2); }; echo_it = function(msg) { var v; @@ -2664,405 +3402,587 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/lambda_fns/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/lambda_fns/output.toffee"] = {}; + tmpl = toffee.templates["/lambda_fns/output.toffee"] = { + bundlePath: "/lambda_fns/output.toffee" + }; - toffee.templates["/lambda_fns/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("PassPassPassPass"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("PassPassPassPass"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/lambda_fns/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/multiline_interpolation/foo.toffee"] = {}; + tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = { + bundlePath: "/multiline_interpolation/foo.toffee" + }; - toffee.templates["/multiline_interpolation/foo.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); - __toffee.out.push(" "); - __toffee.out.push("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); + _to(" "); + _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/multiline_interpolation/foo.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/multiline_interpolation/input.toffee"] = {}; + tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = { + bundlePath: "/multiline_interpolation/input.toffee" + }; - toffee.templates["/multiline_interpolation/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("" + (escape("Hello, " + "world"))); - __toffee.lineno = 4; - __toffee.out.push("\n"); - __toffee.lineno = 5; - __toffee.out.push("
    \n"); - __toffee.lineno = 6; - __toffee.out.push("" + (partial("foo.toffee", { + _ts(1); + _ts(1); + _ln(1); + _to("" + (escape("Hello, " + "world"))); + _ln(4); + _to("\n"); + _ln(5); + _to("
    \n"); + _ln(6); + _to("" + (partial("foo.toffee", { a: "Goodbye" + ',', b: "world" }))); - __toffee.lineno = 10; - __toffee.state = toffee.states.COFFEE; + _ln(10); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/multiline_interpolation/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/multiline_interpolation/output.toffee"] = {}; + tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = { + bundlePath: "/multiline_interpolation/output.toffee" + }; - toffee.templates["/multiline_interpolation/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("Hello, world\n"); - __toffee.lineno = 2; - __toffee.out.push("
    \n"); - __toffee.lineno = 3; - __toffee.out.push("Goodbye, world"); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("Hello, world\n"); + _ln(2); + _to("
    \n"); + _ln(3); + _to("Goodbye, world"); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/multiline_interpolation/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/plaintext/input.toffee"] = {}; + tmpl = toffee.templates["/plaintext/input.toffee"] = { + bundlePath: "/plaintext/input.toffee" + }; - toffee.templates["/plaintext/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/plaintext/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/plaintext/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("Hi there."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("Hi there."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/plaintext/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/plaintext/output.toffee"] = {}; + tmpl = toffee.templates["/plaintext/output.toffee"] = { + bundlePath: "/plaintext/output.toffee" + }; - toffee.templates["/plaintext/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/plaintext/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/plaintext/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("Hi there."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("Hi there."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/plaintext/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/snippets/foo/bar/body.toffee"] = {}; + tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = { + bundlePath: "/snippets/foo/bar/body.toffee" + }; - toffee.templates["/snippets/foo/bar/body.toffee"].pub = function(locals) { - var localsPointer, msg; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var msg, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); msg = msg || "Unknown message"; print(msg); __toffee.res = __toffee.out.join(""); @@ -3071,53 +3991,79 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/snippets/foo/bar/body.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/snippets/foo/message.toffee"] = {}; + tmpl = toffee.templates["/snippets/foo/message.toffee"] = { + bundlePath: "/snippets/foo/message.toffee" + }; - toffee.templates["/snippets/foo/message.toffee"].pub = function(locals) { - var from, localsPointer, msg; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var from, msg, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(2); from = from || "Unknown sender"; msg = msg || "Unknown message."; print("From: " + from + "\n" + (snippet('./bar/body.toffee', { @@ -3129,292 +4075,419 @@ toffee.__escape = function(locals, o) { }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/snippets/foo/message.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/snippets/input.toffee"] = {}; + tmpl = toffee.templates["/snippets/input.toffee"] = { + bundlePath: "/snippets/input.toffee" + }; - toffee.templates["/snippets/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/input.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("" + (partial("./foo/message.toffee"))); - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push("" + (escape(snippet("./foo/message.toffee")))); - __toffee.out.push("\n"); - __toffee.lineno = 3; - __toffee.out.push("" + (partial("./foo/message.toffee", { + _ts(1); + _ts(1); + _ln(1); + _to("" + (partial("./foo/message.toffee"))); + _to("\n"); + _ln(2); + _to("" + (escape(snippet("./foo/message.toffee")))); + _to("\n"); + _ln(3); + _to("" + (partial("./foo/message.toffee", { from: "Sam" }))); - __toffee.out.push("\n"); - __toffee.lineno = 4; - __toffee.out.push("" + (escape(snippet("./foo/message.toffee", { + _to("\n"); + _ln(4); + _to("" + (escape(snippet("./foo/message.toffee", { from: "Max" })))); - __toffee.state = toffee.states.COFFEE; + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/snippets/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/snippets/output.toffee"] = {}; + tmpl = toffee.templates["/snippets/output.toffee"] = { + bundlePath: "/snippets/output.toffee" + }; - toffee.templates["/snippets/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("From: Preloaded sender\n"); - __toffee.lineno = 2; - __toffee.out.push("Preloaded message.\n"); - __toffee.lineno = 3; - __toffee.out.push("From: Unknown sender\n"); - __toffee.lineno = 4; - __toffee.out.push("Unknown message.\n"); - __toffee.lineno = 5; - __toffee.out.push("From: Sam\n"); - __toffee.lineno = 6; - __toffee.out.push("Preloaded message.\n"); - __toffee.lineno = 7; - __toffee.out.push("From: Max\n"); - __toffee.lineno = 8; - __toffee.out.push("Unknown message."); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("From: Preloaded sender\n"); + _ln(2); + _to("Preloaded message.\n"); + _ln(3); + _to("From: Unknown sender\n"); + _ln(4); + _to("Unknown message.\n"); + _ln(5); + _to("From: Sam\n"); + _ln(6); + _to("Preloaded message.\n"); + _ln(7); + _to("From: Max\n"); + _ln(8); + _to("Unknown message."); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/snippets/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/special_cases/input.toffee"] = {}; + tmpl = toffee.templates["/special_cases/input.toffee"] = { + bundlePath: "/special_cases/input.toffee" + }; - toffee.templates["/special_cases/input.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/special_cases/input.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/special_cases/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 5; - __toffee.out.push("\n"); - __toffee.lineno = 6; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 7; - __toffee.out.push('"' + "PASSED" + '"'); - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 8; - __toffee.out.push("\n"); - __toffee.lineno = 9; - __toffee.state = toffee.states.COFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 13; - __toffee.out.push("\n"); - __toffee.lineno = 14; - __toffee.out.push("

    \n"); - __toffee.lineno = 15; - __toffee.out.push(" "); - __toffee.out.push("" + (print("" + 'click & clack' + ""))); - __toffee.out.push("\n"); - __toffee.lineno = 16; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(5); + _to("\n"); + _ln(6); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _ln(7); + _to('"' + "PASSED" + '"'); + _ts(2); + _ts(1); + _ln(8); + _to("\n"); + _ln(9); + _ts(2); + _ts(1); + _ln(13); + _to("\n"); + _ln(14); + _to("

    \n"); + _ln(15); + _to(" "); + _to("" + (print("" + 'click & clack' + ""))); + _to("\n"); + _ln(16); + _to("

    \n"); + _ln(17); + _ts(2); + _ts(1); + _ln(21); + _to("\n"); + _ln(22); + _to("A backslash is a \\\n"); + _ln(23); + _to(""); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/special_cases/input.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); (function() { + var tmpl; - toffee.templates["/special_cases/output.toffee"] = {}; + tmpl = toffee.templates["/special_cases/output.toffee"] = { + bundlePath: "/special_cases/output.toffee" + }; - toffee.templates["/special_cases/output.toffee"].pub = function(locals) { - var localsPointer; - localsPointer = locals; - locals.__toffee = {}; - if (!(locals.print != null)) { - locals.print = function(o) { - return toffee.__print(localsPointer, o); + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); }; } - if (!(locals.json != null)) { - locals.json = function(o) { - return toffee.__json(localsPointer, o); + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); }; } - if (!(locals.raw != null)) { - locals.raw = function(o) { - return toffee.__raw(localsPointer, o); + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); }; } - if (!(locals.html != null)) { - locals.html = function(o) { - return toffee.__html(localsPointer, o); + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/special_cases/output.toffee"], _l, path, vars); }; } - if (!(locals.escape != null)) { - locals.escape = function(o) { - return toffee.__escape(localsPointer, o); + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/special_cases/output.toffee"], _l, path, vars); }; } - locals.__toffee.print = locals.print; - locals.__toffee.json = locals.json; - locals.__toffee.raw = locals.raw; - locals.__toffee.html = locals.html; - locals.__toffee.escape = locals.escape; + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; with (locals) {; __toffee.out = []; - __toffee.state = toffee.states.TOFFEE; - __toffee.state = toffee.states.TOFFEE; - __toffee.lineno = 1; - __toffee.out.push("\n"); - __toffee.lineno = 2; - __toffee.out.push('"' + "PASSED\"\n"); - __toffee.lineno = 3; - __toffee.out.push("\n"); - __toffee.lineno = 4; - __toffee.out.push("

    \n"); - __toffee.lineno = 5; - __toffee.out.push(" click & clack\n"); - __toffee.lineno = 6; - __toffee.out.push("

    "); - __toffee.state = toffee.states.COFFEE; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to('"' + "PASSED\"\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("

    \n"); + _ln(5); + _to(" click & clack\n"); + _ln(6); + _to("

    \n"); + _ln(7); + _to("\n"); + _ln(8); + _to("A backslash is a \\\n"); + _ln(9); + _to(""); + _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; return } /* closing JS 'with' */ ; }; if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return toffee.templates["/special_cases/output.toffee"].pub(__toffee_run_input); + return tmpl.pub(__toffee_run_input); } }).call(this); diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 5ba4506..083fd3d 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -3,97 +3,454 @@ Test Toffee in the browser -
    -
    #{partial '../../cases/big_file/input.toffee' }
    -
    -
    + + + + +
    +
    #{partial '../../cases/big_file/input.toffee', {}}
    + +
    0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
    + +
    +
    +
    -
    -
    #{partial '../../cases/comments/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/comments/input.toffee', { "greeting": "Hello" }}
    -
    -
    + +
    +Pass 1 + +Pass 2 + +Pass 3 +
    + +
    +
    +
    -
    -
    #{partial '../../cases/eco_compare/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/eco_compare/input.toffee', {}}
    + +
    + okcupid +

    A site for singles

    + + tallygram +

    A site for anyone

    + + +You have 3 female friends.
    + +
    +
    +
    -
    -
    #{partial '../../cases/escape/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/escape/input.toffee', {}}
    + +

    + default x = "Hello world" + default y = <td> + default z = click&clack + default w = [1,2,{"place":"The Dreadfort"}] + default r = + default w.foo = +

    +

    + raw x = "Hello world" + raw y = + raw z = click&clack + raw w = 1,2,[object Object] +

    + +

    + raw printed x = "Hello world" + raw printed y = + raw printed z = click&clack + raw printed w = 1,2,[object Object] +

    +

    + json printed x = "\"Hello world\"" + json printed y = "\u003Ctd\u003E" + json printed z = "click\u0026clack" + json printed w = [1,2,{"place":"The Dreadfort"}] +

    +

    + html printed longhand x = "Hello world" + html printed longhand y = <td> + html printed longhand z = click&clack + html printed longhand w = 1,2,[object Object] +

    + +
    +
    +
    -
    -
    #{partial '../../cases/hello_world/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/hello_world/input.toffee', { "greeting": "Hello" }}
    -
    -
    + +
    Hello, world.
    + +
    +
    +
    -
    -
    #{partial '../../cases/include_order/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/include_order/input.toffee', { "greeting": "Hello" }}
    -
    -
    + +
    1 +2 +hia + +b +3 +4
    + +
    +
    +
    -
    -
    #{partial '../../cases/include_recursion/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/include_recursion/input.toffee', { "countdown" : 10 }}
    -
    -
    + +
    10...9...8...7...6...5...4...3...2...1...blastoff!
    + +
    +
    +
    -
    -
    #{partial '../../cases/include_techniques/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/include_techniques/input.toffee', { }}
    -
    -
    + +
    From: Chris <ccoyne77@gmail> +Msg: Hello, world + +From: Max & Sam +Msg: Hello, world + +From: Christian +Msg: Hello, world +From: Jennie +Msg: Hello, world +From: Unknown +Msg: Hello, world +
    + +
    +
    +
    -
    -
    #{partial '../../cases/indent_attack/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/indent_attack/input.toffee', { }}
    -
    -
    + +

    + Pass1Pass2 +
    + +Pass3Pass4 +
    + +Pass5Pass6 + +Pass7Pass8 + +...passed with flying colors. +

    +
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9 +

    + +
    +
    +
    -
    -
    #{partial '../../cases/junk/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/junk/input.toffee', {}}
    + +
      +
    • broom
    • mop
    • vacuum
    • +
    + +
    +
    +
    -
    -
    #{partial '../../cases/lambda_fns/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/lambda_fns/input.toffee', {}}
    + +
    PassPassPassPass
    + +
    +
    +
    -
    -
    #{partial '../../cases/multiline_interpolation/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/multiline_interpolation/input.toffee', {}}
    + +
    Hello, world +
    +Goodbye, world
    + +
    +
    +
    -
    -
    #{partial '../../cases/plaintext/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/plaintext/input.toffee', {}}
    + +
    Hi there.
    + +
    +
    +
    -
    -
    #{partial '../../cases/snippets/input.toffee' ,{ +
    + + + + + + + + +
    +
    #{partial '../../cases/snippets/input.toffee', { "from": "Preloaded sender", "msg" : "Preloaded message." }}
    -
    -
    + +
    From: Preloaded sender +Preloaded message. +From: Unknown sender +Unknown message. +From: Sam +Preloaded message. +From: Max +Unknown message.
    + +
    +
    +
    -
    -
    #{partial '../../cases/special_cases/input.toffee' }
    -
    -
    +
    + + + + + + + + +
    +
    #{partial '../../cases/special_cases/input.toffee', {}}
    + +
    +"PASSED" + +

    + click & clack +

    + +A backslash is a \ +
    + +
    +
    +
    -
    +
    + + + + + \ No newline at end of file From 9b0976586b893e10da5864f11274a354e22d7fb5 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 12:57:48 -0400 Subject: [PATCH 029/163] in-browser partials and snippets now fully working --- Cakefile | 20 +- lib/command_line.js | 10 +- lib/view.js | 50 +- package.json | 5 +- src/command_line.coffee | 13 +- src/view.coffee | 61 +- test/cases/escape/input.toffee | 2 +- test/cases/escape/output.toffee | 12 +- .../express3/public/javascripts/test_cases.js | 4440 +---------------- test/express3/views/index.toffee | 276 +- 10 files changed, 294 insertions(+), 4595 deletions(-) diff --git a/Cakefile b/Cakefile index 91322d5..5ca9876 100644 --- a/Cakefile +++ b/Cakefile @@ -44,7 +44,7 @@ generateExpressTest = (cb) -> # generate the JS file bundling all the tests - proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-m', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> @@ -60,10 +60,12 @@ generateExpressTest = (cb) -> + + """ case_dirs = fs.readdirSync "./test/cases/" @@ -78,16 +80,15 @@ generateExpressTest = (cb) -> rid = Math.floor 100000 * Math.random() test_page += """ \n\n\n -
    -
    \#{partial '../../cases/#{dir}/input.toffee', #{vars}}
    +
    + + -
    #{expected_output}
    + -
    -
    + -
    - + \n \n "); }); - program.version(getVersionNumber()).option('-o, --output [path]', 'output file').option('-p, --print', 'print output to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); + program.version(getVersionNumber()).option('-o, --output [path]', 'output file').option('-p, --print', 'print output to stdout').option('-m, --minimize', 'minimize output (ugly, smaller file)').option('-c, --coffee', 'output to CoffeeScript (not JS)').parse(process.argv); compile = function(start_path, path) { /* @@ -34,7 +34,8 @@ v = new view(source, { fileName: path, bundlePath: path.slice(start_path.length), - browserMode: true + browserMode: true, + minimize: (program.minimize != null) && program.minimize }); return v._toJavaScript(); }; @@ -57,7 +58,7 @@ } } } else { - out_text += compile(start_path, curr_path); + out_text += "\n" + compile(start_path, curr_path); } return out_text; }; @@ -76,8 +77,7 @@ process.exit(1); } start_path = path.normalize(start_path); - out_text = recurseRun(start_path, start_path, ""); - out_text = getCommonHeadersJs() + out_text; + out_text = "" + (getCommonHeadersJs(true, false)) + (recurseRun(start_path, start_path, '')); if (program.print) { console.log(out_text); } diff --git a/lib/view.js b/lib/view.js index 556828b..0c81977 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.3.3 (function() { - var TAB_SPACES, coffee, errorHandler, errorTypes, getCommonHeaders, getCommonHeadersJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; + var TAB_SPACES, coffee, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, states, toffeeError, utils, view, vm, _ref, _ref1; parser = require('./toffee_lang').parser; @@ -18,20 +18,43 @@ coffee = require("coffee-script"); } - getCommonHeaders = function() { + minimizeJs = function(js) { + var ast, jsp, pro; + jsp = require("uglify-js").parser; + pro = require("uglify-js").uglify; + ast = jsp.parse(js); + ast = pro.ast_squeeze(ast); + return pro.gen_code(ast); + }; + + getCommonHeaders = function(include_bundle_headers) { /* each view will use this, or if they're bundled together, - it'll only be used once + it'll only be used once. + + include_bundle_headers: includes some functions needed for browser use + */ + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); + }; + + getBundleHeaders = function() { + /* + header stuff + only needed when compiling to a JS file */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__json = (locals, o) ->\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\ntoffee.__normalize = (path) ->\n if (not path?) or path is \"/\"\n return path\n else \n parts = path.split \"/\"\n np = []\n # make sure path always starts with '/'\n if parts[0]\n np.push ''\n for part in parts\n if part is \"..\"\n if np.length > 1\n np.pop()\n else\n np.push part\n else\n if part isnt \".\"\n np.push part\n path = np.join \"/\"\n if not path then path = \"/\"\n return path\n\ntoffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n console.log \"Partial called: \#{path}\"\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n console.log \"Snippet called: \#{path}\"\n vars = if vars? then vars else {}\n vars.__toffee = vars.__toffee or {}\n vars.__toffee.noInheritance = true\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__inlineInclude = (path, locals, parent_locals) ->\n options = locals or {}\n options.__toffee = options.__toffee or {}\n\n # we need to make a shallow copy of parent variables\n if not options.__toffee.noInheritance\n for k,v of parent_locals when not locals?[k]?\n if not (k in [\"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\"])\n options[k] = v\n\n if not toffee.templates[path]\n return \"Could not fund \#{path}\"\n else\n return toffee.templates[path].pub options\n"; + return "\ntoffee.__print = (locals, o) ->\n if locals.__toffee.state is toffee.states.COFFEE\n locals.__toffee.out.push o\n return ''\n else\n return \"\#{o}\"\n\ntoffee.__normalize = (path) ->\n if (not path?) or path is \"/\"\n return path\n else \n parts = path.split \"/\"\n np = []\n # make sure path always starts with '/'\n if parts[0]\n np.push ''\n for part in parts\n if part is \"..\"\n if np.length > 1\n np.pop()\n else\n np.push part\n else\n if part isnt \".\"\n np.push part\n path = np.join \"/\"\n if not path then path = \"/\"\n return path\n\ntoffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n vars = if vars? then vars else {}\n vars.__toffee = vars.__toffee or {}\n vars.__toffee.noInheritance = true\n return toffee.__inlineInclude path, vars, parent_locals\n\ntoffee.__inlineInclude = (path, locals, parent_locals) ->\n options = locals or {}\n options.__toffee = options.__toffee or {}\n\n # we need to make a shallow copy of parent variables\n if not options.__toffee.noInheritance\n for k,v of parent_locals when not locals?[k]?\n if not (k in [\"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\"])\n options[k] = v\n\n if not toffee.templates[path]\n return \"Inline toffee include: Could not find \#{path}\"\n else\n return toffee.templates[path].pub options\n"; }; - getCommonHeadersJs = function() { - var ch; - ch = getCommonHeaders(); - return coffee.compile(ch, { + getCommonHeadersJs = function(include_bundle_headers, minimize) { + var ch, js; + ch = getCommonHeaders(include_bundle_headers); + js = coffee.compile(ch, { bare: true }); + if (minimize) { + js = minimizeJs(js); + } + return js; }; view = (function() { @@ -47,6 +70,7 @@ this.fileName = options.fileName || options.filename || null; this.bundlePath = options.bundlePath || "/"; this.browserMode = options.browserMode || false; + this.minimize = options.minimize || false; this.verbose = options.verbose || false; this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.txt = txt; @@ -182,7 +206,7 @@ }; view.prototype._toJavaScript = function() { - var c, d; + var c, d, d2; if (!(this.javaScript != null)) { c = this._toCoffee(); if (!this.error) { @@ -194,6 +218,10 @@ } catch (e) { this.error = new toffeeError(this, errorTypes.COFFEE_COMPILE, e); } + if (this.minimize && !this.error) { + d2 = Date.now(); + this.javaScript = minimizeJs(this.javaScript); + } this._log("" + this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms"); } } @@ -221,7 +249,7 @@ }; view.prototype._printLineNo = function(n, ind) { - if ((this.lastLineNo != null) && (n === this.lastLineNo)) { + if (this.minimize || ((this.lastLineNo != null) && (n === this.lastLineNo))) { return ""; } else { this.lastLineNo = n; @@ -495,7 +523,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (!this.browserMode ? getCommonHeaders() : '') + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (locals) ->\n" + ___ + "_l = locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> locals.__toffee.state = x\n\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (locals) ->\n" + ___ + "_l = locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> locals.__toffee.state = x\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { diff --git a/package.json b/package.json index ae8f3eb..0bd84ca 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.28", + "version": "0.0.30", "directories": { "lib": "./lib" }, @@ -10,7 +10,8 @@ "bin": "./bin/toffee", "dependencies": { "coffee-script": "*", - "commander": "*" + "commander": "*", + "uglify-js": "*" }, "repository": { "type": "git", diff --git a/src/command_line.coffee b/src/command_line.coffee index c30d577..dfad949 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -33,9 +33,10 @@ program.on '--help', -> " program.version(getVersionNumber()) - .option('-o, --output [path]', 'output file') - .option('-p, --print', 'print output to stdout') - .option('-c, --coffee', 'output to CoffeeScript (not JS)') + .option('-o, --output [path]', 'output file') + .option('-p, --print', 'print output to stdout') + .option('-m, --minimize', 'minimize output (ugly, smaller file)') + .option('-c, --coffee', 'output to CoffeeScript (not JS)') .parse process.argv # ----------------------------------------------------------------------------- @@ -50,6 +51,7 @@ compile = (start_path, path) -> fileName: path bundlePath: path[start_path.length...] browserMode: true + minimize: program.minimize? and program.minimize return v._toJavaScript() # ----------------------------------------------------------------------------- @@ -67,7 +69,7 @@ recurseRun = (start_path, curr_path, out_text) -> if sub_stats.isDirectory() out_text = recurseRun start_path, sub_path, out_text else - out_text += compile start_path, curr_path + out_text += "\n" + compile start_path, curr_path return out_text @@ -84,8 +86,7 @@ run = exports.run = -> console.log "Input file/path not found. toffee --help for examples" process.exit 1 start_path = path.normalize start_path - out_text = recurseRun start_path, start_path, "" - out_text = getCommonHeadersJs() + out_text + out_text = """#{getCommonHeadersJs true, false}#{recurseRun start_path, start_path, ''}""" if program.print console.log out_text if program.output diff --git a/src/view.coffee b/src/view.coffee index d40926f..66d6c27 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -8,11 +8,22 @@ try catch e coffee = require "coffee-script" +minimizeJs = (js) -> + #return js + jsp = require("uglify-js").parser + pro = require("uglify-js").uglify + ast = jsp.parse js + #ast = pro.ast_mangle ast + ast = pro.ast_squeeze ast + return pro.gen_code ast -getCommonHeaders = -> + +getCommonHeaders = (include_bundle_headers) -> ### each view will use this, or if they're bundled together, - it'll only be used once + it'll only be used once. + + include_bundle_headers: includes some functions needed for browser use ### """ if not toffee? then toffee = {} @@ -20,13 +31,6 @@ if not toffee.templates then toffee.templates = {} toffee.states = #{JSON.stringify states} -toffee.__print = (locals, o) -> - if locals.__toffee.state is toffee.states.COFFEE - locals.__toffee.out.push o - return '' - else - return "\#{o}" - toffee.__json = (locals, o) -> try json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') @@ -46,6 +50,23 @@ toffee.__escape = (locals, o) -> return locals.html o return o +#{if include_bundle_headers then getBundleHeaders() else ""} +""" + +getBundleHeaders = -> + ### + header stuff + only needed when compiling to a JS file + ### + """ + +toffee.__print = (locals, o) -> + if locals.__toffee.state is toffee.states.COFFEE + locals.__toffee.out.push o + return '' + else + return "\#{o}" + toffee.__normalize = (path) -> if (not path?) or path is "/" return path @@ -70,12 +91,10 @@ toffee.__normalize = (path) -> toffee.__partial = (parent_tmpl, parent_locals, path, vars) -> path = toffee.__normalize parent_tmpl.bundlePath + "/../" + path - console.log "Partial called: \#{path}" return toffee.__inlineInclude path, vars, parent_locals toffee.__snippet = (parent_tmpl, parent_locals, path, vars) -> path = toffee.__normalize parent_tmpl.bundlePath + "/../" + path - console.log "Snippet called: \#{path}" vars = if vars? then vars else {} vars.__toffee = vars.__toffee or {} vars.__toffee.noInheritance = true @@ -92,15 +111,17 @@ toffee.__inlineInclude = (path, locals, parent_locals) -> options[k] = v if not toffee.templates[path] - return "Could not fund \#{path}" + return "Inline toffee include: Could not find \#{path}" else return toffee.templates[path].pub options """ -getCommonHeadersJs = -> - ch = getCommonHeaders() - coffee.compile ch, {bare: true} +getCommonHeadersJs = (include_bundle_headers, minimize)-> + ch = getCommonHeaders include_bundle_headers + js = coffee.compile ch, {bare: true} + if minimize then js = minimizeJs js + js class view @@ -113,6 +134,7 @@ class view @fileName = options.fileName or options.filename or null @bundlePath = options.bundlePath or "/" # if to be included inside a bundle, this is the path inside it. @browserMode = options.browserMode or false + @minimize = options.minimize or false # excludes line numbers from coffee ; uses uglify.JS @verbose = options.verbose or false @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @txt = txt @@ -221,6 +243,9 @@ class view @javaScript = coffee.compile c, {bare: false} catch e @error = new toffeeError @, errorTypes.COFFEE_COMPILE, e + if @minimize and not @error + d2 = Date.now() + @javaScript = minimizeJs @javaScript @_log "#{@fileName} compiled to JavaScript in #{Date.now()-d}ms" @javaScript @@ -240,7 +265,7 @@ class view @coffeeScript _printLineNo: (n, ind) -> - if @lastLineNo? and (n is @lastLineNo) + if @minimize or (@lastLineNo? and (n is @lastLineNo)) return "" else @lastLineNo = n @@ -428,7 +453,7 @@ class view ___ = @_tabAsSpaces() """ -#{if not @browserMode then getCommonHeaders() else ''} +#{if @browserMode then '' else getCommonHeaders(false)} tmpl = toffee.templates["#{@bundlePath}"] = bundlePath: "#{@bundlePath}" tmpl.pub = (locals) -> @@ -438,7 +463,6 @@ tmpl.pub = (locals) -> #{___}_ln = (x) -> locals.__toffee.lineno = x #{___}_ts = (x) -> locals.__toffee.state = x - #{___}if not _l.print? then _l.print = (o) -> toffee.__print _l, o #{___}if not _l.json? then _l.json = (o) -> toffee.__json _l, o #{___}if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o @@ -447,7 +471,6 @@ tmpl.pub = (locals) -> #{___}if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["#{@bundlePath}"], _l, path, vars #{___}if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["#{@bundlePath}"], _l, path, vars - #{___}_t.print = _l.print #{___}_t.json = _l.json #{___}_t.raw = _l.raw diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index e54a614..9d77017 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -1,6 +1,6 @@ {# x = '"Hello world"' - y = ' diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index c3b94b8..a68d0a1 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -19,12 +19,12 @@ - + @@ -47,14 +47,14 @@ Pass 2 Pass 3 - + @@ -77,12 +77,12 @@ Pass 3 You have 3 female friends. - + @@ -134,12 +134,12 @@ You have 3 female friends. html printed longhand w = 1,2,[object Object]

    - + @@ -156,14 +156,14 @@ You have 3 female friends. - + @@ -186,14 +186,14 @@ b 3 4 - + @@ -210,14 +210,14 @@ b - + @@ -245,13 +245,13 @@ From: Unknown Msg: Hello, world - + @@ -281,13 +281,13 @@ Pass7Pass8
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9

    - + @@ -304,12 +304,12 @@ Pass7Pass8
  • broom
  • mop
  • vacuum
  • - + @@ -324,12 +324,12 @@ Pass7Pass8 - + @@ -346,12 +346,12 @@ Pass7Pass8
    Goodbye, world - + @@ -366,12 +366,12 @@ Goodbye, world - + @@ -396,7 +396,7 @@ Preloaded message. From: Max Unknown message. - + @@ -429,12 +429,12 @@ A backslash is a \ var passed = "\"passed\""; - + From 987933229470c5a322cda6b58a64f924022a020b Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 13:05:46 -0400 Subject: [PATCH 031/163] removed uglify option which was not working right --- lib/view.js | 7 +- package.json | 3 +- src/view.coffee | 10 +- .../express3/public/javascripts/test_cases.js | 4130 ++++++++++++++++- test/express3/views/index.toffee | 60 +- 5 files changed, 4126 insertions(+), 84 deletions(-) diff --git a/lib/view.js b/lib/view.js index 0c81977..16c606a 100644 --- a/lib/view.js +++ b/lib/view.js @@ -19,12 +19,7 @@ } minimizeJs = function(js) { - var ast, jsp, pro; - jsp = require("uglify-js").parser; - pro = require("uglify-js").uglify; - ast = jsp.parse(js); - ast = pro.ast_squeeze(ast); - return pro.gen_code(ast); + return js; }; getCommonHeaders = function(include_bundle_headers) { diff --git a/package.json b/package.json index 0bd84ca..6719b52 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "bin": "./bin/toffee", "dependencies": { "coffee-script": "*", - "commander": "*", - "uglify-js": "*" + "commander": "*" }, "repository": { "type": "git", diff --git a/src/view.coffee b/src/view.coffee index 66d6c27..f7ff125 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -9,14 +9,8 @@ catch e coffee = require "coffee-script" minimizeJs = (js) -> - #return js - jsp = require("uglify-js").parser - pro = require("uglify-js").uglify - ast = jsp.parse js - #ast = pro.ast_mangle ast - ast = pro.ast_squeeze ast - return pro.gen_code ast - + # uglify doesn't seem to be working right; #TODO: This + js getCommonHeaders = (include_bundle_headers) -> ### diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 1fabe27..082406f 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -109,41 +109,4095 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } }; -(function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.pub=function(locals){var count,i,_i,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/big_file/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/big_file/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),count=0;for(i=_i=0;_i<2;i=++_i)_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...");return __toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/big_file/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/big_file/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/comments/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/comments/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/comments/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/comments/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.pub=function(locals){var w,x,y,z,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/custom_escape/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y=" - + @@ -47,14 +47,14 @@ Pass 2 Pass 3 - + @@ -77,12 +77,12 @@ Pass 3 You have 3 female friends. - + @@ -134,12 +134,12 @@ You have 3 female friends. html printed longhand w = 1,2,[object Object]

    - + @@ -156,14 +156,14 @@ You have 3 female friends. - + @@ -186,14 +186,14 @@ b 3 4 - + @@ -210,14 +210,14 @@ b - + @@ -245,13 +245,13 @@ From: Unknown Msg: Hello, world - + @@ -281,13 +281,13 @@ Pass7Pass8
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9

    - + @@ -304,12 +304,12 @@ Pass7Pass8
  • broom
  • mop
  • vacuum
  • - + @@ -324,12 +324,12 @@ Pass7Pass8 - + @@ -346,12 +346,12 @@ Pass7Pass8
    Goodbye, world - + @@ -366,12 +366,12 @@ Goodbye, world - + @@ -396,7 +396,7 @@ Preloaded message. From: Max Unknown message. - + @@ -429,12 +429,12 @@ A backslash is a \ var passed = "\"passed\""; - + From 6a9bce9793c2e6015c54f55c6c9a8679429abe4a Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 1 Aug 2012 15:30:54 -0300 Subject: [PATCH 032/163] Update README.md --- README.md | 79 ++++++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 8793049..124775d 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,20 @@ TOFFEE ========= -A templating language based on the simplicity and beauty of CoffeeScript. -Compatible with node (including Express 2.x, 3.x) and, very soon, the browser. In Express 3.x, the Toffee engine handles partials/includes -and smart view caching. +*Toffee* is a templating language developed at OkCupid, based on the simplicity and beauty of CoffeeScript. + * it works with nodeJS (including Express 2.x and 3.x) + * it works in the browser, too! + * it does not require that you use CoffeeScript elsewhere in your project. -status -====== -Beta! And usable! If you hit any snags, let me know and I'll act fast. +Table of Contents +================= + * [1. Language Basics](#section_1) + * [2. Notes on Escaping](#section_2) + * [3. Common Questions](#section_3) + * [4. Installation & Usage](#section_4) + +## 1. Language Basics -examples -======== -Printing variables is easy. Just use CoffeeScript's #{} syntax: +Printing variables in Toffee is easy. Just use CoffeeScript's #{} syntax: ```html
    Hey, #{user.name}. @@ -110,8 +114,8 @@ With nested code, indentation is inferred. #} ``` -Switching to toffee mode without indenting ------ +### Switching to toffee mode without indenting + By default, when you enter `{: ... :}`, the Toffee compiler assumes you're entering an indented region, probably because of a loop or conditional. If you ever want to cut into toffee mode without indenting, use `-{: ... :}`. For example: @@ -135,8 +139,8 @@ The above is identical to: Well, it's not exactly identical. Let's talk about escaping. -escaping: how it works -============== +## 2. Escaping + In your CoffeeScript, the `print` function lets you print the raw value of a variable: ``` @@ -158,8 +162,7 @@ You can control the escaping, but here are the defaults: * if it's a string or scalar, it is escaped for HTML safety. * it's an array or object, it is converted to JSON. -escaping overrides ----------------- +### Custom Escaping You can bypass the above rules. @@ -195,11 +198,10 @@ Turning off autoescaping entirely: * If you set `autoEscape: false` when creating the engine, the default will be raw across your project. (See more on that below under Express 3.x settings.) * Alternatively, you could pass the var `escape: (x) -> x` to turn off escaping for a given template. -questions -======== +## 3. Common Questions + +#### How does it compare to eco? -How does it compare to eco? --------------------------- Eco is another CoffeeScript templating language and inspiration for Toffee. The syntaxes are pretty different, so pick the one you prefer. @@ -231,12 +233,12 @@ With Toffee's syntax, brackets enclose regions not directives, so your editor will let you collapse and expand sections of code. And if you click on one of the brackets in most editors, it will highlight the matching bracket. -Does it cache templates? ------------------------- +#### Does it cache templates? + In Express 2.0, that's up to Express. When used in Express 3.0, Toffee asynchronously monitors known templates and recompiles them in the background when necessary. So you don't need to restart your production webserver whenever you edit a template. -Does it find line numbers in errors? ------------------------------------ +#### Does it find line numbers in errors? + Yes, Toffee does a very good job of that. There are 3 possible places you can hit an error in Toffee: * in the language itself, say a parse error * in the CoffeeScript, preventing it from compiling to JS @@ -246,10 +248,10 @@ Stack traces are converted to lines in Toffee and show you where the problem is. By default when Toffee hits an error it replies with some pretty-printed HTML showing you the problem. This can be overridden, as explained below in the Express 3.0 section. -Does it support partials? (a.k.a includes) -------------------------- -Yes. In Express 2.0, Express itself is responsible for including other files, and they call this system "partials." In Express 3.0, Toffee defines the `partial` function, and it -works as you'd expect. +### Does it support partials? (a.k.a includes) + +Yes. In Express 2.0, Express itself is responsible for including other files, and they call this system "partials." In Express 3.0 and in the browser, +Toffee defines the `partial` function, and it works as you'd expect. ```html
    #{partial '../foo/bar.toffee', name: "Chris"}
    @@ -278,14 +280,14 @@ For example, in the above code, `session` would also be available in the user_me #} ``` -Does it support `layout`? -------------------------- +#### Does it support `layout`? + Yes, this works in Express 3.0, emulating the Express 2.0 way. If you publish a file `foo.toffee` and pass a `layout` filename to it as a var, `foo.toffee` is rendered, and the results are put into a var called `body`. Then your layout is rendered, using all your vars plus the new `body` var. -How does the indentation work? ------ +#### How does the indentation work? + Toffee realigns all your coffeescript inside a `{# region #}` by normalizing the indentation of that region. So it doesn't matter how you indent things, as long as it makes local sense inside that region. @@ -333,21 +335,8 @@ ERROR In the above 2 cases, note that the leading whitespaces before the `if` and `else` are different, which is a CoffeeScript error. +## 4 Installation & Usage - -Comments ------ -Inside a region of coffee, you can use coffee's `#` or `###` syntax to comment. -Inside toffee mode, you can comment with `{## ... ##}`. - -``` -{## This isn't output ##} -But this is. -``` - - -installation & usage -=========== ``` npm install -g toffee ``` From d7e395891b013c06ad4d45da2411791733f25ea8 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 1 Aug 2012 15:31:45 -0300 Subject: [PATCH 033/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 124775d..ed547f1 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The `#{}` syntax is powerful, so be responsible.

    ``` -Including other files is possible thanks to the function `partial`. This works in Express 3.0, too. +Including other files is possible thanks to the function `partial`. This in Express (both versions) and in the browser. ```html

    From b36e9bbe2e98063b1fbb33302ad0dd3bb4e4499a Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 1 Aug 2012 15:32:09 -0300 Subject: [PATCH 034/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed547f1..2801baa 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The `#{}` syntax is powerful, so be responsible.

    ``` -Including other files is possible thanks to the function `partial`. This in Express (both versions) and in the browser. +Including other files is possible thanks to the function `partial`. This in both Express and the browser. ```html

    From bd102b78074ba47aebcbf96a8ffbea7d38d63066 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 15:38:04 -0400 Subject: [PATCH 035/163] better json fn --- src/view.coffee | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/view.coffee b/src/view.coffee index f7ff125..ecb280a 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -26,11 +26,8 @@ if not toffee.templates then toffee.templates = {} toffee.states = #{JSON.stringify states} toffee.__json = (locals, o) -> - try - json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') - catch e - throw {stack:[], message: "JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}", toffee_line_base: locals.__toffee.lineno } - "" + json + if not o? then return "null" + else return "" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') toffee.__raw = (locals, o) -> o From 381f35c51edde3e92859ede41f74fea16a9bd906 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 15:38:30 -0400 Subject: [PATCH 036/163] better handling of json errors; stripped unused functions out --- Cakefile | 2 +- lib/errorHandler.js | 120 +------ lib/view.js | 2 +- package.json | 2 +- src/errorHandler.coffee | 97 +---- .../express3/public/javascripts/test_cases.js | 340 +++++++++++++++++- 6 files changed, 338 insertions(+), 225 deletions(-) diff --git a/Cakefile b/Cakefile index 1752b49..6f8d166 100644 --- a/Cakefile +++ b/Cakefile @@ -44,7 +44,7 @@ generateExpressTest = (cb) -> # generate the JS file bundling all the tests - proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-m', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 24a7947..f487a60 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.3.3 (function() { - var eh, errorTypes, path, toffeeError, util, _ppEscape; + var errorTypes, path, toffeeError, util, _ppEscape; path = require("path"); @@ -265,8 +265,8 @@ } prev = ol.slice(0, lineno).join("\n"); next = ol.slice(lineno).join("\n"); - prev_matches = prev.match(/_ln[ ]*([0-9]+)/g); - next_matches = next.match(/_ln[ ]*([0-9]+)/g); + prev_matches = prev.match(/_ln[ ]*\([ ]*([0-9]+)/g); + next_matches = next.match(/_ln[ ]*\([ ]*([0-9]+)/g); res = [1, tl.length]; if (prev_matches != null ? prev_matches.length : void 0) { res[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); @@ -283,120 +283,6 @@ exports.toffeeError = toffeeError; - eh = exports.errorHandler = { - generateRuntimeError: function(view, e) { - /* - e: the error caught when running - */ - - var after, after_matches, before, msg, new_msg, prev_matches, res, search, src, src_lines, stack, txt_lines; - src = view.javaScript; - msg = e.message; - stack = e.stack; - res = { - src_line: 0, - toffee_line_range: [0, 1], - original_msg: msg, - converted_msg: msg - }; - search = stack.match(/pub\ \(undefined\:([0-9]+):[0-9]+/); - if (!((search != null ? search.length : void 0) >= 2)) { - return res; - } - res.src_line = search[1]; - src_lines = src.split('\n'); - txt_lines = view.txt.split('\n'); - before = src_lines.slice(0, res.src_line).join("\n"); - after = src_lines.slice(res.src_line).join("\n"); - prev_matches = before.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - after_matches = after.match(/__toffee.lineno[ ]*=[ ]*([0-9]+)/g); - if (prev_matches != null ? prev_matches.length : void 0) { - res.toffee_line_range[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); - } else { - res.toffee_line_range[0] = 1; - } - if (after_matches != null ? after_matches.length : void 0) { - res.toffee_line_range[1] = parseInt(after_matches[0].match(/[0-9]+/)[0]); - } else { - res.toffee_line_range[1] = txt_lines.length; - } - res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1); - if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) { - new_msg = "on line " + res.toffee_line_range[0]; - } else { - new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1]; - } - res.converted_msg = res.original_msg + " " + new_msg; - if (view.fileName) { - res.converted_msg = "" + view.fileName + ": " + res.converted_msg; - } - return res; - }, - generateCompileToJsError: function(view, e) { - /* - e: the error caught when compiling - */ - - var msg, new_msg, res, search, src; - src = view.coffeeScript; - msg = e.message; - res = { - src_line: 0, - toffee_line_range: [0, 1], - original_msg: msg, - converted_msg: msg - }; - search = msg.match(/on line ([0-9]+)/); - if ((search != null ? search.length : void 0) >= 2) { - res.src_line = search[1]; - res.toffee_line_range = this._convertSrcLineToToffeeRange(view.coffeeScript, res.src_line); - res.offensive_lines = txt_lines.slice(res.toffee_line_range[0] - 1, res.toffee_line_range[1] - 1); - if (res.toffee_line_range[0] === res.toffee_line_range[1] - 1) { - new_msg = "on line " + res.toffee_line_range[0]; - } else { - new_msg = "between lines " + res.toffee_line_range[0] + " and " + res.toffee_line_range[1]; - } - res.converted_msg = res.original_msg.replace("on line " + res.src_line, new_msg); - if (view.fileName) { - res.converted_msg = "" + view.fileName + ": " + res.converted_msg; - } - } - return res; - }, - prettyPrintError: function(view) { - var i, line, lineno, padding, padding_len, res, txt_lines, _i, _ref, _ref1; - if (!view.error) { - return ""; - } else { - res = "

    "; - res += "" + (eh._ppEscape(view.error.converted_msg)) + ""; - res += "\n
    --------
    "; - res += "\n
    "; - txt_lines = view.txt.split('\n'); - for (i = _i = _ref = view.error.toffee_line_range[0] - 3, _ref1 = view.error.toffee_line_range[1] + 1; _ref <= _ref1 ? _i < _ref1 : _i > _ref1; i = _ref <= _ref1 ? ++_i : --_i) { - if ((i < 0) || i > txt_lines.length - 1) { - continue; - } - line = eh._ppEscape(txt_lines[i]); - lineno = i + 1; - padding_len = 5 - ("" + lineno).length; - padding = ((function() { - var _j, _results; - _results = []; - for (i = _j = 0; 0 <= padding_len ? _j < padding_len : _j > padding_len; i = 0 <= padding_len ? ++_j : --_j) { - _results.push(" "); - } - return _results; - })()).join(""); - res += "\n" + lineno + ": " + padding + " " + line + "
    "; - } - res += "\n
    "; - res += "\n
    "; - return res; - } - } - }; - _ppEscape = function(txt) { var i, m; txt = txt.replace(/&/g, '&').replace(/\n try\n json = JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n catch e\n throw {stack:[], message: \"JSONify error (\#{e.message}) on line \#{locals.__toffee.lineno}\", toffee_line_base: locals.__toffee.lineno }\n \"\" + json\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n if not o? then return \"null\"\n else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); }; getBundleHeaders = function() { diff --git a/package.json b/package.json index 6719b52..596eedb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.30", + "version": "0.0.31", "directories": { "lib": "./lib" }, diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index 32351e3..6ba24d6 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -218,8 +218,8 @@ class toffeeError prev = ol[0...lineno].join "\n" next = ol[lineno...].join "\n" - prev_matches = prev.match /_ln[ ]*([0-9]+)/g - next_matches = next.match /_ln[ ]*([0-9]+)/g + prev_matches = prev.match /_ln[ ]*\([ ]*([0-9]+)/g + next_matches = next.match /_ln[ ]*\([ ]*([0-9]+)/g res = [1,tl.length] if prev_matches?.length @@ -231,99 +231,6 @@ class toffeeError exports.toffeeError = toffeeError - -# ----------------------------------------------------------------------------- - - - -eh = exports.errorHandler = - - generateRuntimeError: (view, e) -> - ### - e: the error caught when running - ### - src = view.javaScript - msg = e.message - stack = e.stack - - res = - src_line: 0 - toffee_line_range: [0,1] - original_msg: msg - converted_msg: msg - - search = stack.match /pub\ \(undefined\:([0-9]+):[0-9]+/ - if not (search?.length >= 2) then return res - res.src_line = search[1] - src_lines = src.split '\n' - txt_lines = view.txt.split '\n' - before = src_lines[0...res.src_line].join "\n" - after = src_lines[res.src_line...].join "\n" - prev_matches = before.match /__toffee.lineno[ ]*=[ ]*([0-9]+)/g - after_matches = after.match /__toffee.lineno[ ]*=[ ]*([0-9]+)/g - if prev_matches?.length - res.toffee_line_range[0] = parseInt prev_matches[prev_matches.length-1].match(/[0-9]+/)[0] - else - res.toffee_line_range[0] = 1 - if after_matches?.length - res.toffee_line_range[1] = parseInt after_matches[0].match(/[0-9]+/)[0] - else - res.toffee_line_range[1] = txt_lines.length - res.offensive_lines = txt_lines[(res.toffee_line_range[0]-1)...(res.toffee_line_range[1]-1)] - if res.toffee_line_range[0] is res.toffee_line_range[1] - 1 - new_msg = "on line #{res.toffee_line_range[0]}" - else - new_msg = "between lines #{res.toffee_line_range[0]} and #{res.toffee_line_range[1]}" - res.converted_msg = res.original_msg + " " + new_msg - if view.fileName then res.converted_msg = "#{view.fileName}: #{res.converted_msg}" - res - - - generateCompileToJsError: (view, e) -> - ### - e: the error caught when compiling - ### - src = view.coffeeScript - msg = e.message - res = - src_line: 0 - toffee_line_range: [0,1] - original_msg: msg - converted_msg: msg - search = msg.match /on line ([0-9]+)/ - if search?.length >= 2 - res.src_line = search[1] - res.toffee_line_range = @_convertSrcLineToToffeeRange view.coffeeScript, res.src_line - res.offensive_lines = txt_lines[(res.toffee_line_range[0]-1)...(res.toffee_line_range[1]-1)] - if res.toffee_line_range[0] is res.toffee_line_range[1] - 1 - new_msg = "on line #{res.toffee_line_range[0]}" - else - new_msg = "between lines #{res.toffee_line_range[0]} and #{res.toffee_line_range[1]}" - res.converted_msg = res.original_msg.replace "on line #{res.src_line}", new_msg - if view.fileName then res.converted_msg = "#{view.fileName}: #{res.converted_msg}" - res - - prettyPrintError: (view) -> - if not view.error - "" - else - res = """
    """ - res += "#{eh._ppEscape view.error.converted_msg}" - res += "\n
    --------
    " - res += "\n
    " - txt_lines = view.txt.split '\n' - for i in [(view.error.toffee_line_range[0]-3)...(view.error.toffee_line_range[1]+1)] - if (i < 0) or i > txt_lines.length - 1 - continue - line = eh._ppEscape txt_lines[i] - lineno = i+1 - padding_len = 5 - ("#{lineno}").length - padding = (" " for i in [0...padding_len]).join "" - res+= "\n#{lineno}: #{padding} #{line}
    " - res += "\n
    " - res += "\n
    " - res - _ppEscape = (txt) -> txt = txt.replace(/&/g, '&').replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } catch (e) { - throw { - stack: [], - message: "JSONify error (" + e.message + ") on line " + locals.__toffee.lineno, - toffee_line_base: locals.__toffee.lineno - }; + if (!(o != null)) { + return "null"; + } else { + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); } - return "" + json; }; toffee.__raw = function(locals, o) { @@ -181,7 +175,9 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { count = 0; for (i = _i = 0; _i < 2; i = ++_i) { _ts(1); + _ln(3); _to("" + (escape(count++))); + _ln(4); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -206,6 +202,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(5); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -232,6 +229,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(6); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -258,6 +256,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(7); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -284,6 +283,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(8); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -292,6 +292,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(9); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -318,12 +319,14 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(10); _to("..."); _ts(2); _ts(2); count += 1; print(" " + count + "..."); _ts(1); + _ln(13); _to(" "); _to("" + (escape(count++))); _to("... "); @@ -350,6 +353,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(14); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -376,6 +380,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(15); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -402,6 +407,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(16); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -428,6 +434,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(17); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -454,6 +461,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(18); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -480,6 +488,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(19); _to("... "); _to("" + (escape(count++))); _to("... "); @@ -506,6 +515,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("" + (escape(count++))); _to("... "); _to("" + (escape(count++))); + _ln(20); _to("..."); _ts(2); _ts(2); @@ -592,6 +602,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -674,12 +685,18 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("\n"); + _ln(2); _to("Pass 1\n"); + _ln(3); _ts(2); _ts(1); + _ln(8); _to("\n"); + _ln(9); _to("Pass 2\n"); + _ln(10); _ts(2); _ts(2); /* @@ -688,8 +705,11 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { */ _ts(1); + _ln(19); _to("\n"); + _ln(20); _to("Pass 3\n"); + _ln(21); _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -771,12 +791,19 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("\n"); + _ln(2); _to("Pass 1\n"); + _ln(3); _to("\n"); + _ln(4); _to("Pass 2\n"); + _ln(5); _to("\n"); + _ln(6); _to("Pass 3\n"); + _ln(7); _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -867,49 +894,69 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } ]; _ts(1); + _ln(6); _to("

    \n"); + _ln(7); _to(" default x = "); _to("" + (x != null ? escape(x) : '')); _to("\n"); + _ln(8); _to(" default y = "); _to("" + (y != null ? escape(y) : '')); _to("\n"); + _ln(9); _to(" default z = "); _to("" + (z != null ? escape(z) : '')); _to("\n"); + _ln(10); _to(" default w = "); _to("" + (w != null ? escape(w) : '')); _to("\n"); + _ln(11); _to("

    \n"); + _ln(12); _to("

    \n"); + _ln(13); _to(" raw x = "); _to("" + (raw(x))); _to("\n"); + _ln(14); _to(" raw y = "); _to("" + (raw(y))); _to("\n"); + _ln(15); _to(" raw z = "); _to("" + (raw(z))); _to("\n"); + _ln(16); _to(" raw w = "); _to("" + (raw(w))); _to("\n"); + _ln(17); _to("

    \n"); + _ln(18); _to("\n"); + _ln(24); _to("

    \n"); + _ln(25); _ts(2); _ts(2); print(" raw printed x = " + x + "\n"); @@ -917,7 +964,9 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); _ts(1); + _ln(30); _to("\n"); + _ln(31); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1000,29 +1049,53 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("

    \n"); + _ln(2); _to(" default x = [\"Hello world\"]\n"); + _ln(3); _to(" default y = [

    From b080d445af90b1db5a71085cb782c603c269d80c Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 8 Aug 2012 13:20:31 -0300 Subject: [PATCH 047/163] Update README.md --- README.md | 163 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 93 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index 9c5bc4a..73d3b52 100644 --- a/README.md +++ b/README.md @@ -115,46 +115,118 @@ With nested code, indentation of your CoffeeScript is magically maintained. #} ``` -### Commenting out a block of code +### By now, you probably have questions about indenting -In toffee mode, you can comment out a region with `{##` and `##}`. +Since CoffeeScript is sensitive to indenting, so is Toffee. + +But...Toffee is smart about inferring indenting. When you want to create a coffee block, you can indent it however +you like, and all that matters is that the internal, relative indenting is correct. For example, these +are identical: ```html -
    - I don't want to output this anymore... - {## -

    An ode to Ruby on Rails

    -

    #{partial 'ode.toffee'}

    - ##} -
    +

    + {# + if user.is_awesome {: + YAY! + :} + #} +

    +

    +{# +if user.is_awesome {: + YAY! +:} +#} +

    ``` +In other words, feel free to pick whatever indentation baseline you want when entering a region of Coffee. -### Toffee is smart about indenting. +Note that where you put your toffee mode tokens (`{:`) is important, as the following illustrates: -You can indent your `{# #}` region however, you want, and +```html +

    + {# + if x is true + if y is true + if z is true + {: + x is true! I don't know anything about y or z, though. + :} + #} +

    +``` -By default, when you enter `{: ... :}`, the Toffee compiler assumes you're entering an indented region, -probably because of a loop or conditional. -If you ever want to cut into toffee mode without indenting, use `-{: ... :}`. For example: +As the above shows, the simple way to think of a `{: ... :}` +region is as a single line of CoffeeScript indented to wherever you put the opening `{`. + + +One syntactic convenience: if you start a `{:` on the same line as some preceeding CoffeeScript, it's +treated the same as +putting it on a new line and indenting one level. So the following three conditionals are the same: + +```html +{# + if x is true + {:yay:} +#} ``` + +```html {# - name = "Hans Gruber" - -{:You're a hell of a thief, #{name}:} + if x is true {:yay:} #} ``` -The above is identical to: +```html +{# + if x is true {: + yay + :} +#} +``` + +(The third one has extra whitespace around the "yay." + + +### One gotcha with indenting + + +THIS IS AN ERROR +```html +{# if x is 0 {:Yay!:} + else {:Burned:} +#} ``` -{# - name = "Hans Gruber" - print "You're a hell of a thief, #{name}" + +Note that the indentations before the 'if' and the 'else' are technically different, +as the `if` has only 1 space before it, and the `else` has 2. If you're writing +multiple lines of CoffeeScript, it's better style to separate these lines anyway: + +GOOD +```html +{# + if x is 0 {:Yay!:} + else {:Burned:} #} ``` -Well, it's not exactly identical. Let's talk about escaping. + +## Commenting out a block of code + +In toffee mode, you can comment out a region with `{##` and `##}`. + +```html +
    + I don't want to output this anymore... + {## +

    An ode to Ruby on Rails

    +

    #{partial 'ode.toffee'}

    + ##} +
    +``` ## Escaping @@ -304,55 +376,6 @@ Yes, this works in Express 3.0, emulating the Express 2.0 way. If you publish a a var called `body`. Then your layout is rendered, using all your vars plus the new `body` var. -#### How does the indentation work? - -Toffee realigns all your coffeescript inside a `{# region #}` by normalizing the indentation of that region. -So it doesn't matter how you indent things, as long as it makes local sense inside that region. - -For example, these are all identical: - -```html -

    {# if x is 0 {:Yay!:} else {:Burned:} #}

    -``` - -```html -

    {# - if x is 0 {:Yay!:} else {:Burned:} -#}

    -``` - -```html -

    -{# - if x is 0 {:Yay!:} - else {:Burned:} -#}

    -``` - -However, this would cause an error: - -ERROR -```html -

    -{# - if x is 0 {:Yay!:} - else {:Burned:} -#}

    -``` - -As would this more subtle case: - -ERROR -```html -

    -{# if x is 0 {:Yay!:} - else {:Burned:} -#}

    -``` - -In the above 2 cases, note that the leading whitespaces before the `if` and `else` are different, which is a CoffeeScript error. - - ## Installation & Usage ``` From de52ad07764e4d2f256fe9ab6e3aa4d2f197b74d Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 8 Aug 2012 13:24:26 -0300 Subject: [PATCH 048/163] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 73d3b52..5dfe3f3 100644 --- a/README.md +++ b/README.md @@ -187,8 +187,7 @@ putting it on a new line and indenting one level. So the following three conditi #} ``` -(The third one has extra whitespace around the "yay." - +The third example has extra whitespace around the "yay," but otherwise the three are logically identical. ### One gotcha with indenting @@ -213,8 +212,15 @@ GOOD #} ``` +However, with a single line of CoffeeScript, feel free to keep it all on one line: + +GOOD +``` +
    {# foo = "bar" #}
    +``` + -## Commenting out a block of code +## Commenting out a block of toffee In toffee mode, you can comment out a region with `{##` and `##}`. From e411cc21f53ea11e00acaecc4a824830bb0eed7f Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 8 Aug 2012 13:27:28 -0300 Subject: [PATCH 049/163] Update README.md --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5dfe3f3..8df501b 100644 --- a/README.md +++ b/README.md @@ -119,9 +119,9 @@ With nested code, indentation of your CoffeeScript is magically maintained. Since CoffeeScript is sensitive to indenting, so is Toffee. -But...Toffee is smart about inferring indenting. When you want to create a coffee block, you can indent it however -you like, and all that matters is that the internal, relative indenting is correct. For example, these -are identical: +But...Toffee doesn't care where you start your CoffeeScript. When you want to create a coffee block, +you can indent it however you like, and all that matters is that the internal, +relative indenting is correct. For example, these are identical: ```html

    @@ -140,7 +140,7 @@ if user.is_awesome {:

    ``` -In other words, feel free to pick whatever indentation baseline you want when entering a region of Coffee. +In other words, feel free to pick whatever indentation baseline you want when entering a region of CoffeeScript. Note that where you put your toffee mode tokens (`{:`) is important, as the following illustrates: @@ -163,8 +163,8 @@ region is as a single line of CoffeeScript indented to wherever you put the open One syntactic convenience: if you start a `{:` on the same line as some preceeding CoffeeScript, it's -treated the same as -putting it on a new line and indenting one level. So the following three conditionals are the same: +treated the same as putting it on a new line and indenting one level. +So the following three conditionals are the same: ```html {# @@ -201,8 +201,7 @@ THIS IS AN ERROR ``` Note that the indentations before the 'if' and the 'else' are technically different, -as the `if` has only 1 space before it, and the `else` has 2. If you're writing -multiple lines of CoffeeScript, it's better style to separate these lines anyway: +as the `if` has only 1 space before it, and the `else` has 2. This is better style anyway: GOOD ```html @@ -212,7 +211,7 @@ GOOD #} ``` -However, with a single line of CoffeeScript, feel free to keep it all on one line: +With a single line of CoffeeScript, feel free to keep it all on one line: GOOD ``` From e10d7cd9c05b9d220126e100368b850c8914c00d Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 8 Aug 2012 13:39:23 -0400 Subject: [PATCH 050/163] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e65c379..edd05fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.35", + "version": "0.0.36", "directories": { "lib": "./lib" }, From 71d9e4b8a251c8e7c9254191674bd16996873b7f Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 8 Aug 2012 15:03:15 -0300 Subject: [PATCH 051/163] Update README.md --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8df501b..42d6a2c 100644 --- a/README.md +++ b/README.md @@ -150,17 +150,27 @@ Note that where you put your toffee mode tokens (`{:`) is important, as the foll if x is true if y is true if z is true + w = true {: - x is true! I don't know anything about y or z, though. + x is true! Dunno anything about y or z, though. :} #}

    ``` -As the above shows, the simple way to think of a `{: ... :}` -region is as a single line of CoffeeScript indented to wherever you put the opening `{`. - +Why? Because this is roughly the same as saying: +```html +

    + {# + if x is true + if y is true + if z is true + w = true + print "\n x is true! Dunno anything about y or z, though.\n " + #} +

    +``` One syntactic convenience: if you start a `{:` on the same line as some preceeding CoffeeScript, it's treated the same as putting it on a new line and indenting one level. From 840316dc5e9b63a1caef66cc2173d792181a8bde Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 15 Aug 2012 15:27:03 -0400 Subject: [PATCH 052/163] renamed "locals" to __locals so it is available as a pub var --- lib/view.js | 2 +- src/view.coffee | 12 +- .../express3/public/javascripts/test_cases.js | 456 +++++++++--------- 3 files changed, 235 insertions(+), 235 deletions(-) diff --git a/lib/view.js b/lib/view.js index aa0f302..5720b42 100644 --- a/lib/view.js +++ b/lib/view.js @@ -523,7 +523,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (locals) ->\n" + ___ + "_l = locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> locals.__toffee.state = x\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (__locals) ->\n" + ___ + "_l = __locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> __locals.__toffee.state = x\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (__locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index 38187b5..8879436 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -452,12 +452,12 @@ class view #{if @browserMode then '' else getCommonHeaders(false)} tmpl = toffee.templates["#{@bundlePath}"] = bundlePath: "#{@bundlePath}" -tmpl.pub = (locals) -> -#{___}_l = locals +tmpl.pub = (__locals) -> +#{___}_l = __locals #{___}_t = _l.__toffee = { out: []} -#{___}_to = (x) -> locals.__toffee.out.push x -#{___}_ln = (x) -> locals.__toffee.lineno = x -#{___}_ts = (x) -> locals.__toffee.state = x +#{___}_to = (x) -> __locals.__toffee.out.push x +#{___}_ln = (x) -> __locals.__toffee.lineno = x +#{___}_ts = (x) -> __locals.__toffee.state = x #{___}if not _l.print? then _l.print = (o) -> toffee.__print _l, o #{___}if not _l.json? then _l.json = (o) -> toffee.__json _l, o @@ -475,7 +475,7 @@ tmpl.pub = (locals) -> #{___}_t.partial = _l.partial #{___}_t.snippet = _l.snippet -#{___}`with (locals) {` +#{___}`with (__locals) {` #{___}__toffee.out = [] """ diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 6901fee..0238c7f 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -110,20 +110,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/big_file/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var count, i, _i, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -167,7 +167,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -541,20 +541,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/big_file/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -598,7 +598,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -624,20 +624,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/comments/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -681,7 +681,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -733,20 +733,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/comments/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -790,7 +790,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -827,20 +827,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/custom_escape/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -884,7 +884,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -991,20 +991,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/custom_escape/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1048,7 +1048,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1120,20 +1120,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/eco_compare/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var f, friends, project, _i, _l, _len, _ln, _ref, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1177,7 +1177,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1273,20 +1273,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/eco_compare/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1330,7 +1330,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1372,20 +1372,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/escape/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1429,7 +1429,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1572,20 +1572,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/escape/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1629,7 +1629,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1729,20 +1729,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/hello_world/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1786,7 +1786,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1813,20 +1813,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/hello_world/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1870,7 +1870,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1896,20 +1896,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/hello_world/temp.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -1953,7 +1953,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -1992,20 +1992,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_order/child.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2049,7 +2049,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2084,20 +2084,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_order/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var say_hi, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2141,7 +2141,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2186,20 +2186,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_order/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2243,7 +2243,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2281,20 +2281,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_recursion/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2338,7 +2338,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2372,20 +2372,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_recursion/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2429,7 +2429,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2455,20 +2455,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_techniques/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2512,7 +2512,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2561,20 +2561,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_techniques/message.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var from, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2618,7 +2618,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2651,20 +2651,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/include_techniques/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2708,7 +2708,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -2757,20 +2757,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/indent_attack/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var i, square, x, _i, _j, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -2814,7 +2814,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3075,20 +3075,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/indent_attack/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3132,7 +3132,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3188,20 +3188,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/junk/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var supplies, supply, _i, _l, _len, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3245,7 +3245,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3290,20 +3290,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/junk/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3347,7 +3347,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3377,20 +3377,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/lambda_fns/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var echo_it, print_it, print_it_twice, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3434,7 +3434,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3486,20 +3486,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/lambda_fns/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3543,7 +3543,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3569,20 +3569,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/multiline_interpolation/foo.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3626,7 +3626,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3654,20 +3654,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/multiline_interpolation/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3711,7 +3711,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3747,20 +3747,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/multiline_interpolation/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3804,7 +3804,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3834,20 +3834,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/plaintext/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3891,7 +3891,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -3917,20 +3917,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/plaintext/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -3974,7 +3974,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4000,20 +4000,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/snippets/foo/bar/body.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var msg, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4057,7 +4057,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4082,20 +4082,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/snippets/foo/message.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var from, msg, _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4139,7 +4139,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4167,20 +4167,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/snippets/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4224,7 +4224,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4263,20 +4263,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/snippets/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4320,7 +4320,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4360,20 +4360,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/special_cases/input.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4417,7 +4417,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); @@ -4480,20 +4480,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { bundlePath: "/special_cases/output.toffee" }; - tmpl.pub = function(locals) { + tmpl.pub = function(__locals) { var _l, _ln, _t, _to, _ts; - _l = locals; + _l = __locals; _t = _l.__toffee = { out: [] }; _to = function(x) { - return locals.__toffee.out.push(x); + return __locals.__toffee.out.push(x); }; _ln = function(x) { - return locals.__toffee.lineno = x; + return __locals.__toffee.lineno = x; }; _ts = function(x) { - return locals.__toffee.state = x; + return __locals.__toffee.state = x; }; if (!(_l.print != null)) { _l.print = function(o) { @@ -4537,7 +4537,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _t.escape = _l.escape; _t.partial = _l.partial; _t.snippet = _l.snippet; - with (locals) {; + with (__locals) {; __toffee.out = []; _ts(1); From 8068f7c868abdc4d44b740dacf18fedf70f34671 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 15 Aug 2012 15:29:40 -0400 Subject: [PATCH 053/163] version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index edd05fd..04c046d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.36", + "version": "0.0.37", "directories": { "lib": "./lib" }, From f4cf5802dea4cc6b9bdda6221dd7e389cb2bd517 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 16 Aug 2012 09:41:33 -0300 Subject: [PATCH 054/163] Update README.md --- README.md | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 42d6a2c..69a2e8b 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ Table of Contents * [1. Language Basics](#section_1) * [2. Notes on Escaping](#section_2) * [3. Common Questions](#section_3) - * [4. Installation & Usage](#section_4) + * [4. NodeJS Installation & Usage](#section_4) + * [5. Browser Usage](#section_5) ## Language Basics @@ -414,8 +415,7 @@ toffee = require 'toffee' app.register '.toffee', toffee ``` -express 3.x options -=================== +## express 3.x options Pretty-print errors ----- @@ -438,21 +438,12 @@ toffee = require 'toffee' toffee.expressEngine.autoEscape = false ``` +## Browser Usage! (Compiling your .toffee files) -known issues -=============== -1. command line stdout not done yet. +You can compile an entire project of .toffee files easily into a .js file. Even partials work with the same path-based syntax. -command-line -============ -You can compile an entire project of .toffee files easily. +Please see [Browser Usage](https://github.com/malgorithms/toffee/wiki) in the wiki, as the `toffee` command line program has a lot of options. -``` -npm install -g toffee (if you haven't yet) -toffee --help -``` - -This will display some examples and instructions for including a template bundle in your frontend. contributing & asking for fixes. ================= From e2e5d8c39ca60da93d4e139bff40334f758e6d2b Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 16 Aug 2012 10:33:36 -0300 Subject: [PATCH 055/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 69a2e8b..573ddce 100644 --- a/README.md +++ b/README.md @@ -442,7 +442,7 @@ toffee.expressEngine.autoEscape = false You can compile an entire project of .toffee files easily into a .js file. Even partials work with the same path-based syntax. -Please see [Browser Usage](https://github.com/malgorithms/toffee/wiki) in the wiki, as the `toffee` command line program has a lot of options. +Please see [Browser Usage](https://github.com/malgorithms/toffee/wiki/Browser-Usage) in the wiki, as the `toffee` command line program has a lot of options. contributing & asking for fixes. From 38c69cc815328dad012071e4773be9ce5f13bd2f Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 16 Aug 2012 09:38:41 -0400 Subject: [PATCH 056/163] better error printing in the command line tool --- lib/command_line.js | 12 +++++++++--- package.json | 2 +- src/command_line.coffee | 9 +++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/command_line.js b/lib/command_line.js index b0c21ab..417f5b1 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -29,15 +29,21 @@ and path is /foo/bar/car/thing.toffee */ - var source, v; + var bundle_path, js, source, v; source = fs.readFileSync(path, 'utf8'); + bundle_path = path.slice(start_path.length); v = new view(source, { fileName: path, - bundlePath: path.slice(start_path.length), + bundlePath: bundle_path, browserMode: true, minimize: (program.minimize != null) && program.minimize }); - return v._toJavaScript(); + js = v._toJavaScript(); + if (v.error) { + process.stderr.write(v.error.getPrettyPrintText()); + process.exit(1); + } + return js; }; recurseRun = function(start_path, curr_path, out_text) { diff --git a/package.json b/package.json index 04c046d..4addda2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.37", + "version": "0.0.38", "directories": { "lib": "./lib" }, diff --git a/src/command_line.coffee b/src/command_line.coffee index dfad949..ce7d870 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -47,12 +47,17 @@ compile = (start_path, path) -> and path is /foo/bar/car/thing.toffee ### source = fs.readFileSync path, 'utf8' + bundle_path = path[start_path.length...] v = new view source, fileName: path - bundlePath: path[start_path.length...] + bundlePath: bundle_path browserMode: true minimize: program.minimize? and program.minimize - return v._toJavaScript() + js = v._toJavaScript() + if v.error + process.stderr.write v.error.getPrettyPrintText() + process.exit 1 + js # ----------------------------------------------------------------------------- From b4d819064242f04c1127da2ba665ee1bd67e9b8f Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 16 Aug 2012 15:54:09 -0400 Subject: [PATCH 057/163] incremental --- lib/view.js | 4 +- src/view.coffee | 37 +- .../express3/public/javascripts/test_cases.js | 1912 ++--------------- 3 files changed, 147 insertions(+), 1806 deletions(-) diff --git a/lib/view.js b/lib/view.js index 5720b42..fd3cac9 100644 --- a/lib/view.js +++ b/lib/view.js @@ -29,7 +29,7 @@ include_bundle_headers: includes some functions needed for browser use */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n if not o? then return \"null\"\n else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n if not o? then return \"null\"\n else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\ntoffee.__augmentLocals = (locals) ->\n _l = locals\n _t = _l.__toffee = { out: []}\n if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n _t.print = _l.print\n _t.json = _l.json\n _t.raw = _l.raw\n _t.html = _l.html\n _t.escape = _l.escape\n _t.partial = _l.partial\n _t.snippet = _l.snippet\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); }; getBundleHeaders = function() { @@ -523,7 +523,7 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (__locals) ->\n" + ___ + "_l = __locals\n" + ___ + "_t = _l.__toffee = { out: []}\n" + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> __locals.__toffee.state = x\n\n" + ___ + "if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + ___ + "if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + ___ + "if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + ___ + "if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + ___ + "if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + ___ + "if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n" + ___ + "if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n\n" + ___ + "_t.print = _l.print\n" + ___ + "_t.json = _l.json\n" + ___ + "_t.raw = _l.raw\n" + ___ + "_t.html = _l.html\n" + ___ + "_t.escape = _l.escape\n" + ___ + "_t.partial = _l.partial\n" + ___ + "_t.snippet = _l.snippet\n\n" + ___ + "`with (__locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (__locals) ->\n" + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> __locals.__toffee.state = x\n" + ___ + "toffee.__augmentLocals __locals\n\n" + ___ + "`with (__locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { diff --git a/src/view.coffee b/src/view.coffee index 8879436..cfb2dc4 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -41,6 +41,24 @@ toffee.__escape = (locals, o) -> return locals.html o return o +toffee.__augmentLocals = (locals) -> + _l = locals + _t = _l.__toffee = { out: []} + if not _l.print? then _l.print = (o) -> toffee.__print _l, o + if not _l.json? then _l.json = (o) -> toffee.__json _l, o + if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o + if not _l.html? then _l.html = (o) -> toffee.__html _l, o + if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o + if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["#{@bundlePath}"], _l, path, vars + if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["#{@bundlePath}"], _l, path, vars + _t.print = _l.print + _t.json = _l.json + _t.raw = _l.raw + _t.html = _l.html + _t.escape = _l.escape + _t.partial = _l.partial + _t.snippet = _l.snippet + #{if include_bundle_headers then getBundleHeaders() else ""} """ @@ -453,27 +471,10 @@ class view tmpl = toffee.templates["#{@bundlePath}"] = bundlePath: "#{@bundlePath}" tmpl.pub = (__locals) -> -#{___}_l = __locals -#{___}_t = _l.__toffee = { out: []} #{___}_to = (x) -> __locals.__toffee.out.push x #{___}_ln = (x) -> __locals.__toffee.lineno = x #{___}_ts = (x) -> __locals.__toffee.state = x - -#{___}if not _l.print? then _l.print = (o) -> toffee.__print _l, o -#{___}if not _l.json? then _l.json = (o) -> toffee.__json _l, o -#{___}if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o -#{___}if not _l.html? then _l.html = (o) -> toffee.__html _l, o -#{___}if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o -#{___}if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["#{@bundlePath}"], _l, path, vars -#{___}if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["#{@bundlePath}"], _l, path, vars - -#{___}_t.print = _l.print -#{___}_t.json = _l.json -#{___}_t.raw = _l.raw -#{___}_t.html = _l.html -#{___}_t.escape = _l.escape -#{___}_t.partial = _l.partial -#{___}_t.snippet = _l.snippet +#{___}toffee.__augmentLocals __locals #{___}`with (__locals) {` #{___}__toffee.out = [] diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 0238c7f..57e89bf 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -34,6 +34,56 @@ toffee.__escape = function(locals, o) { return o; }; +toffee.__augmentLocals = function(locals) { + var _l, _t; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["undefined"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["undefined"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + return _t.snippet = _l.snippet; +}; + toffee.__print = function(locals, o) { if (locals.__toffee.state === toffee.states.COFFEE) { locals.__toffee.out.push(o); @@ -111,11 +161,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var count, i, _i, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var count, i, _i, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -125,48 +171,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/big_file/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/big_file/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -542,11 +547,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -556,48 +557,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/big_file/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/big_file/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -625,11 +585,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -639,48 +595,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/comments/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/comments/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -734,11 +649,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -748,48 +659,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/comments/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/comments/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -828,11 +698,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var w, x, y, z, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -842,48 +708,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -992,11 +817,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1006,48 +827,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1121,11 +901,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var f, friends, project, _i, _l, _len, _ln, _ref, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var f, friends, project, _i, _len, _ln, _ref, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1135,48 +911,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1274,11 +1009,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1288,48 +1019,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1373,11 +1063,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var w, x, y, z, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1387,48 +1073,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/escape/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/escape/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1573,11 +1218,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1587,48 +1228,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/escape/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/escape/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1730,11 +1330,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1744,48 +1340,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1814,11 +1369,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1828,48 +1379,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1897,11 +1407,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -1911,48 +1417,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -1993,11 +1458,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2007,48 +1468,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/child.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/child.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2085,11 +1505,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var say_hi, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var say_hi, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2099,48 +1515,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2187,11 +1562,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2201,48 +1572,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2282,11 +1612,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2296,48 +1622,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2373,11 +1658,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2387,48 +1668,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2456,11 +1696,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2470,48 +1706,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2562,11 +1757,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var from, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var from, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2576,48 +1767,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2652,11 +1802,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2666,48 +1812,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -2758,11 +1863,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var i, square, x, _i, _j, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var i, square, x, _i, _j, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -2772,48 +1873,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3076,11 +2136,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3090,48 +2146,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3189,11 +2204,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var supplies, supply, _i, _l, _len, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var supplies, supply, _i, _len, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3203,48 +2214,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/junk/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/junk/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3291,11 +2261,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3305,48 +2271,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/junk/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/junk/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3378,11 +2303,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var echo_it, print_it, print_it_twice, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var echo_it, print_it, print_it_twice, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3392,48 +2313,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3487,11 +2367,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3501,48 +2377,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3570,11 +2405,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3584,48 +2415,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3655,11 +2445,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3669,48 +2455,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3748,11 +2493,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3762,48 +2503,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3835,11 +2535,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3849,48 +2545,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/plaintext/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/plaintext/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -3918,11 +2573,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -3932,48 +2583,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/plaintext/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/plaintext/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4001,11 +2611,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var msg, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var msg, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4015,48 +2621,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4083,11 +2648,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var from, msg, _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var from, msg, _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4097,48 +2658,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4168,11 +2688,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4182,48 +2698,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4264,11 +2739,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4278,48 +2749,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4361,11 +2791,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4375,48 +2801,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/special_cases/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/special_cases/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; @@ -4481,11 +2866,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(__locals) { - var _l, _ln, _t, _to, _ts; - _l = __locals; - _t = _l.__toffee = { - out: [] - }; + var _ln, _to, _ts; _to = function(x) { return __locals.__toffee.out.push(x); }; @@ -4495,48 +2876,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts = function(x) { return __locals.__toffee.state = x; }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/special_cases/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/special_cases/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; + toffee.__augmentLocals(__locals); with (__locals) {; __toffee.out = []; From 484b39257c2ba65fb1b5c1d3a98496ef425ae3b5 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 16 Aug 2012 16:41:49 -0400 Subject: [PATCH 058/163] uglifyJS support for minimized output for browser --- Cakefile | 2 +- lib/command_line.js | 4 +- lib/engine.js | 5 +- lib/view.js | 17 +- src/command_line.coffee | 4 +- src/engine.coffee | 3 + src/view.coffee | 22 +- .../express3/public/javascripts/test_cases.js | 2996 +---------------- test/run_cases.coffee | 45 +- 9 files changed, 152 insertions(+), 2946 deletions(-) diff --git a/Cakefile b/Cakefile index 6f8d166..185591a 100644 --- a/Cakefile +++ b/Cakefile @@ -44,7 +44,7 @@ generateExpressTest = (cb) -> # generate the JS file bundling all the tests - proc = spawn 'coffee', ['./src/command_line.coffee', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn 'coffee', ['./src/command_line.coffee', '-m', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> diff --git a/lib/command_line.js b/lib/command_line.js index 417f5b1..b15972c 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -64,7 +64,7 @@ } } } else { - out_text += "\n" + compile(start_path, curr_path); + out_text += "\n;\n" + compile(start_path, curr_path); } return out_text; }; @@ -83,7 +83,7 @@ process.exit(1); } start_path = path.normalize(start_path); - out_text = "" + (getCommonHeadersJs(true, false)) + (recurseRun(start_path, start_path, '')); + out_text = "" + (getCommonHeadersJs(true, true)) + "\n;\n" + (recurseRun(start_path, start_path, '')); if (program.print) { console.log(out_text); } diff --git a/lib/engine.js b/lib/engine.js index b0ba08a..9f78bed 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -27,6 +27,7 @@ this.run = __bind(this.run, this); options = options || {}; this.verbose = options.verbose || false; + this.minimize = options.minimize || false; this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.viewCache = {}; } @@ -159,7 +160,8 @@ view_options = { fileName: filename, verbose: this.verbose, - prettyPrintErrors: this.prettyPrintErrors + prettyPrintErrors: this.prettyPrintErrors, + minimize: this.minimize }; v = new view(txt, view_options); this.viewCache[filename] = v; @@ -196,6 +198,7 @@ fileName: filename, verbose: _this.verbose, prettyPrintErrors: _this.prettyPrintErrors, + minimize: _this.minimize, cb: function(v) { _this._log("" + filename + " updated and ready"); return _this.viewCache[filename] = v; diff --git a/lib/view.js b/lib/view.js index fd3cac9..13137a0 100644 --- a/lib/view.js +++ b/lib/view.js @@ -19,6 +19,17 @@ } minimizeJs = function(js) { + var ast, jsp, pro; + try { + jsp = require("uglify-js").parser; + pro = require("uglify-js").uglify; + ast = jsp.parse(js, true); + js = pro.gen_code(ast); + } catch (e) { + console.log(js); + console.log(e); + process.exit(1); + } return js; }; @@ -29,7 +40,7 @@ include_bundle_headers: includes some functions needed for browser use */ - return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n if not o? then return \"null\"\n else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\ntoffee.__augmentLocals = (locals) ->\n _l = locals\n _t = _l.__toffee = { out: []}\n if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"" + this.bundlePath + "\"], _l, path, vars\n _t.print = _l.print\n _t.json = _l.json\n _t.raw = _l.raw\n _t.html = _l.html\n _t.escape = _l.escape\n _t.partial = _l.partial\n _t.snippet = _l.snippet\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); + return "if not toffee? then toffee = {}\nif not toffee.templates then toffee.templates = {}\n\ntoffee.states = " + (JSON.stringify(states)) + "\n\ntoffee.__json = (locals, o) ->\n if not o? then return \"null\"\n else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\ntoffee.__raw = (locals, o) -> o\n\ntoffee.__html = (locals, o) ->\n (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\ntoffee.__escape = (locals, o) ->\n if (not locals.__toffee.autoEscape?) or locals.__toffee.autoEscape\n if o is undefined then return ''\n if o? and (typeof o) is \"object\" then return locals.json o\n return locals.html o\n return o\n\ntoffee.__augmentLocals = (locals, bundle_path) ->\n _l = locals\n _t = _l.__toffee = { out: []}\n if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n _t.print = _l.print\n _t.json = _l.json\n _t.raw = _l.raw\n _t.html = _l.html\n _t.escape = _l.escape\n _t.partial = _l.partial\n _t.snippet = _l.snippet\n\n" + (include_bundle_headers ? getBundleHeaders() : ""); }; getBundleHeaders = function() { @@ -523,13 +534,13 @@ view.prototype._coffeeHeaders = function() { var ___; ___ = this._tabAsSpaces(); - return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (__locals) ->\n" + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> __locals.__toffee.state = x\n" + ___ + "toffee.__augmentLocals __locals\n\n" + ___ + "`with (__locals) {`\n" + ___ + "__toffee.out = []"; + return "" + (this.browserMode ? '' : getCommonHeaders(false)) + "\ntmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n bundlePath: \"" + this.bundlePath + "\"\ntmpl.pub = (__locals) ->\n" + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + ___ + "_ts = (x) -> __locals.__toffee.state = x\n" + ___ + "toffee.__augmentLocals __locals, \"" + this.bundlePath + "\"\n\n" + ___ + "`with (__locals) {`\n" + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { var ___; ___ = this._tabAsSpaces(); - return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`} /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return tmpl.pub __toffee_run_input"; + return "\n\n" + ___ + "__toffee.res = __toffee.out.join \"\"\n" + ___ + "return __toffee.res\n" + ___ + "`true; } /* closing JS 'with' */ `\n# sometimes we want to execute the whole thing in a sandbox\n# and just output results\nif __toffee_run_input?\n" + ___ + "return tmpl.pub __toffee_run_input"; }; return view; diff --git a/src/command_line.coffee b/src/command_line.coffee index ce7d870..633d639 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -74,7 +74,7 @@ recurseRun = (start_path, curr_path, out_text) -> if sub_stats.isDirectory() out_text = recurseRun start_path, sub_path, out_text else - out_text += "\n" + compile start_path, curr_path + out_text += "\n;\n" + compile start_path, curr_path return out_text @@ -91,7 +91,7 @@ run = exports.run = -> console.log "Input file/path not found. toffee --help for examples" process.exit 1 start_path = path.normalize start_path - out_text = """#{getCommonHeadersJs true, false}#{recurseRun start_path, start_path, ''}""" + out_text = """#{getCommonHeadersJs true, true}\n;\n#{recurseRun start_path, start_path, ''}""" if program.print console.log out_text if program.output diff --git a/src/engine.coffee b/src/engine.coffee index 424c759..f76d6ad 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -10,6 +10,7 @@ class engine constructor: (options) -> options = options or {} @verbose = options.verbose or false + @minimize = options.minimize or false @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @viewCache = {} # filename @@ -114,6 +115,7 @@ class engine fileName: filename verbose: @verbose prettyPrintErrors: @prettyPrintErrors + minimize: @minimize v = new view txt, view_options @viewCache[filename] = v @_monitorForChanges filename, options @@ -139,6 +141,7 @@ class engine fileName: filename verbose: @verbose prettyPrintErrors: @prettyPrintErrors + minimize: @minimize cb: (v) => @_log "#{filename} updated and ready" @viewCache[filename] = v diff --git a/src/view.coffee b/src/view.coffee index cfb2dc4..8adfe27 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -8,8 +8,20 @@ try catch e coffee = require "coffee-script" + minimizeJs = (js) -> # uglify doesn't seem to be working right; #TODO: This + try + jsp = require("uglify-js").parser + pro = require("uglify-js").uglify + ast = jsp.parse js, true # parse code and get the initial AST + #ast = pro.ast_mangle ast # get a new AST with mangled names + #ast = pro.ast_squeeze ast # get an AST with compression optimizations + js = pro.gen_code ast + catch e + console.log js + console.log e + process.exit 1 js getCommonHeaders = (include_bundle_headers) -> @@ -41,7 +53,7 @@ toffee.__escape = (locals, o) -> return locals.html o return o -toffee.__augmentLocals = (locals) -> +toffee.__augmentLocals = (locals, bundle_path) -> _l = locals _t = _l.__toffee = { out: []} if not _l.print? then _l.print = (o) -> toffee.__print _l, o @@ -49,8 +61,8 @@ toffee.__augmentLocals = (locals) -> if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o if not _l.html? then _l.html = (o) -> toffee.__html _l, o if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o - if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["#{@bundlePath}"], _l, path, vars - if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["#{@bundlePath}"], _l, path, vars + if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates["\#{bundle_path}"], _l, path, vars + if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates["\#{bundle_path}"], _l, path, vars _t.print = _l.print _t.json = _l.json _t.raw = _l.raw @@ -474,7 +486,7 @@ tmpl.pub = (__locals) -> #{___}_to = (x) -> __locals.__toffee.out.push x #{___}_ln = (x) -> __locals.__toffee.lineno = x #{___}_ts = (x) -> __locals.__toffee.state = x -#{___}toffee.__augmentLocals __locals +#{___}toffee.__augmentLocals __locals, "#{@bundlePath}" #{___}`with (__locals) {` #{___}__toffee.out = [] @@ -485,7 +497,7 @@ tmpl.pub = (__locals) -> """\n #{___}__toffee.res = __toffee.out.join "" #{___}return __toffee.res -#{___}`} /* closing JS 'with' */ ` +#{___}`true; } /* closing JS 'with' */ ` # sometimes we want to execute the whole thing in a sandbox # and just output results if __toffee_run_input? diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 57e89bf..fc8dd10 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,2917 +1,79 @@ -var toffee; - -if (!(typeof toffee !== "undefined" && toffee !== null)) toffee = {}; - -if (!toffee.templates) toffee.templates = {}; - -toffee.states = { - "TOFFEE": 1, - "COFFEE": 2 -}; - -toffee.__json = function(locals, o) { - if (!(o != null)) { - return "null"; - } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); - } -}; - -toffee.__raw = function(locals, o) { - return o; -}; - -toffee.__html = function(locals, o) { - return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); -}; - -toffee.__escape = function(locals, o) { - if ((!(locals.__toffee.autoEscape != null)) || locals.__toffee.autoEscape) { - if (o === void 0) return ''; - if ((o != null) && (typeof o) === "object") return locals.json(o); - return locals.html(o); - } - return o; -}; - -toffee.__augmentLocals = function(locals) { - var _l, _t; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["undefined"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["undefined"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - return _t.snippet = _l.snippet; -}; - -toffee.__print = function(locals, o) { - if (locals.__toffee.state === toffee.states.COFFEE) { - locals.__toffee.out.push(o); - return ''; - } else { - return "" + o; - } -}; - -toffee.__normalize = function(path) { - var np, part, parts, _i, _len; - if ((!(path != null)) || path === "/") { - return path; - } else { - parts = path.split("/"); - np = []; - if (parts[0]) np.push(''); - for (_i = 0, _len = parts.length; _i < _len; _i++) { - part = parts[_i]; - if (part === "..") { - if (np.length > 1) { - np.pop(); - } else { - np.push(part); - } - } else { - if (part !== ".") np.push(part); - } - } - path = np.join("/"); - if (!path) path = "/"; - return path; - } -}; - -toffee.__partial = function(parent_tmpl, parent_locals, path, vars) { - path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); - return toffee.__inlineInclude(path, vars, parent_locals); -}; - -toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) { - path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); - vars = vars != null ? vars : {}; - vars.__toffee = vars.__toffee || {}; - vars.__toffee.noInheritance = true; - return toffee.__inlineInclude(path, vars, parent_locals); -}; - -toffee.__inlineInclude = function(path, locals, parent_locals) { - var k, options, v; - options = locals || {}; - options.__toffee = options.__toffee || {}; - if (!options.__toffee.noInheritance) { - for (k in parent_locals) { - v = parent_locals[k]; - if (!((locals != null ? locals[k] : void 0) != null)) { - if (!(k === "print" || k === "partial" || k === "snippet" || k === "layout" || k === "__toffee")) { - options[k] = v; - } - } - } - } - if (!toffee.templates[path]) { - return "Inline toffee include: Could not find " + path; - } else { - return toffee.templates[path].pub(options); - } -}; - -(function() { - var tmpl; - - tmpl = toffee.templates["/big_file/input.toffee"] = { - bundlePath: "/big_file/input.toffee" - }; - - tmpl.pub = function(__locals) { - var count, i, _i, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - count = 0; - for (i = _i = 0; _i < 2; i = ++_i) { - _ts(1); - _ts(1); - _ln(3); - _to("" + (escape(count++))); - _ln(4); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(5); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(6); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(7); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(8); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(9); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(10); - _to("..."); - _ts(2); - _ts(2); - count += 1; - print(" " + count + "..."); - _ts(1); - _ln(13); - _to(" "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(14); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(15); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(16); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(17); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(18); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(19); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(20); - _to("..."); - _ts(2); - _ts(2); - count += 1; - print(" " + count + "..."); - } - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/big_file/output.toffee"] = { - bundlePath: "/big_file/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/comments/input.toffee"] = { - bundlePath: "/comments/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to("Pass 1\n"); - _ln(3); - _ts(2); - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _to("Pass 2\n"); - _ln(10); - _ts(2); - _ts(2); - /* - print "FAIL FAIL FAIL" - #{ foo } - */ - - _ts(1); - _ln(19); - _to("\n"); - _ln(20); - _to("Pass 3"); - _ts(2); - _ts(1); - _to("\n"); - _ln(21); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/comments/output.toffee"] = { - bundlePath: "/comments/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to("Pass 1\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("Pass 2\n"); - _ln(5); - _to("\n"); - _ln(6); - _to("Pass 3\n"); - _ln(7); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/custom_escape/input.toffee"] = { - bundlePath: "/custom_escape/input.toffee" - }; - - tmpl.pub = function(__locals) { - var w, x, y, z, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - x = '"Hello world"'; - y = '
    - + - + - + \n\n\n """ diff --git a/lib/command_line.js b/lib/command_line.js index b15972c..53a5443 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -83,7 +83,7 @@ process.exit(1); } start_path = path.normalize(start_path); - out_text = "" + (getCommonHeadersJs(true, true)) + "\n;\n" + (recurseRun(start_path, start_path, '')); + out_text = "" + (getCommonHeadersJs(true, true)) + "\n" + (recurseRun(start_path, start_path, '')); if (program.print) { console.log(out_text); } diff --git a/src/command_line.coffee b/src/command_line.coffee index 633d639..d272176 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -91,7 +91,7 @@ run = exports.run = -> console.log "Input file/path not found. toffee --help for examples" process.exit 1 start_path = path.normalize start_path - out_text = """#{getCommonHeadersJs true, true}\n;\n#{recurseRun start_path, start_path, ''}""" + out_text = """#{getCommonHeadersJs true, true}\n#{recurseRun start_path, start_path, ''}""" if program.print console.log out_text if program.output diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index fc8dd10..ac0c7a8 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,5 +1,4 @@ var toffee;if(!(typeof toffee!=="undefined"&&toffee!==null))toffee={};if(!toffee.templates)toffee.templates={};toffee.states={TOFFEE:1,COFFEE:2};toffee.__json=function(locals,o){if(!(o!=null)){return"null"}else{return""+JSON.stringify(o).replace(//g,"\\u003E").replace(/&/g,"\\u0026")}};toffee.__raw=function(locals,o){return o};toffee.__html=function(locals,o){return(""+o).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};toffee.__escape=function(locals,o){if(!(locals.__toffee.autoEscape!=null)||locals.__toffee.autoEscape){if(o===void 0)return"";if(o!=null&&typeof o==="object")return locals.json(o);return locals.html(o)}return o};toffee.__augmentLocals=function(locals,bundle_path){var _l,_t;_l=locals;_t=_l.__toffee={out:[]};if(!(_l.print!=null)){_l.print=function(o){return toffee.__print(_l,o)}}if(!(_l.json!=null)){_l.json=function(o){return toffee.__json(_l,o)}}if(!(_l.raw!=null)){_l.raw=function(o){return toffee.__raw(_l,o)}}if(!(_l.html!=null)){_l.html=function(o){return toffee.__html(_l,o)}}if(!(_l.escape!=null)){_l.escape=function(o){return toffee.__escape(_l,o)}}if(!(_l.partial!=null)){_l.partial=function(path,vars){return toffee.__partial(toffee.templates[""+bundle_path],_l,path,vars)}}if(!(_l.snippet!=null)){_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates[""+bundle_path],_l,path,vars)}}_t.print=_l.print;_t.json=_l.json;_t.raw=_l.raw;_t.html=_l.html;_t.escape=_l.escape;_t.partial=_l.partial;return _t.snippet=_l.snippet};toffee.__print=function(locals,o){if(locals.__toffee.state===toffee.states.COFFEE){locals.__toffee.out.push(o);return""}else{return""+o}};toffee.__normalize=function(path){var np,part,parts,_i,_len;if(!(path!=null)||path==="/"){return path}else{parts=path.split("/");np=[];if(parts[0])np.push("");for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(part===".."){if(np.length>1){np.pop()}else{np.push(part)}}else{if(part!==".")np.push(part)}}path=np.join("/");if(!path)path="/";return path}};toffee.__partial=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__snippet=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);vars=vars!=null?vars:{};vars.__toffee=vars.__toffee||{};vars.__toffee.noInheritance=true;return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__inlineInclude=function(path,locals,parent_locals){var k,options,v;options=locals||{};options.__toffee=options.__toffee||{};if(!options.__toffee.noInheritance){for(k in parent_locals){v=parent_locals[k];if(!((locals!=null?locals[k]:void 0)!=null)){if(!(k==="print"||k==="partial"||k==="snippet"||k==="layout"||k==="__toffee")){options[k]=v}}}}if(!toffee.templates[path]){return"Inline toffee include: Could not find "+path}else{return toffee.templates[path].pub(options)}} -; ; (function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"};tmpl.pub=function(__locals){var count,i,_i,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);count=0;for(i=_i=0;_i<2;i=++_i){_ts(1);_ts(1);_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...");_ts(1);_to(" ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...")}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index cb75d1b..1d22161 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -15,16 +15,23 @@ - + - + - + @@ -35,11 +42,7 @@ - - - - + + + @@ -65,9 +79,7 @@ Pass 3 - - - - + + + @@ -93,9 +114,7 @@ You have 3 female friends. - - - html printed longhand w = 1,2,[object Object]

    - + + + @@ -150,20 +178,27 @@ You have 3 female friends. - + + - - - + @@ -174,11 +209,7 @@ You have 3 female friends. - - - - + + + @@ -204,20 +246,27 @@ b - + + - - - + @@ -228,10 +277,7 @@ b - - - - + + + @@ -262,10 +318,7 @@ Msg: Hello, world - - - - + + + @@ -299,18 +362,25 @@ Pass7Pass8 - - - - + + + @@ -321,16 +391,23 @@ Pass7Pass8 - + - + - + @@ -341,18 +418,25 @@ Pass7Pass8 - - - - + + + @@ -363,16 +447,23 @@ Goodbye, world - + - + - + @@ -383,12 +474,7 @@ Goodbye, world - - - - + + + @@ -416,9 +514,7 @@ Unknown message. - - - - + + + From 87308a1dced4a5d3f3db08eb5ad617b76b688721 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 16 Aug 2012 17:01:33 -0400 Subject: [PATCH 060/163] uglifyJS support for minimized output for browsers --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4addda2..1c63586 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.38", + "version": "0.0.39", "directories": { "lib": "./lib" }, @@ -10,7 +10,8 @@ "bin": "./bin/toffee", "dependencies": { "coffee-script": "*", - "commander": "*" + "commander": "*", + "uglify-js": "*" }, "repository": { "type": "git", From 5cbefaaf3b6875672c49dab2839ebe4b685cdeb8 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 28 Aug 2012 10:36:58 -0400 Subject: [PATCH 061/163] scrollbars in error boxes' --- lib/errorHandler.js | 10 +++++----- package.json | 2 +- src/errorHandler.coffee | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/errorHandler.js b/lib/errorHandler.js index e51bf27..2c0b8fc 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -181,21 +181,21 @@ cerr = this.getConvertedError(); res = ""; header = "" + cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; - res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; + res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; if ((_ref = cerr.stack) != null ? _ref.length : void 0) { - res += "
    "; + res += "
    "; count = 0; _ref1 = cerr.stack; for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { item = _ref1[i]; if (i === 0) { - res += "
    " + (count++) + " " + item.line + "
    "; + res += "
    " + (count++) + " " + item.line + "
    "; } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) { - res += "
    " + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file + "
    "; + res += "
    " + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file + "
    "; } else if (item.in_src_file) { continue; } else { - res += "
    " + (count++) + item.line + "
    "; + res += "
    " + (count++) + item.line + "
    "; } } res += "
    "; diff --git a/package.json b/package.json index 1c63586..96de2ab 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.39", + "version": "0.0.40", "directories": { "lib": "./lib" }, diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index fbe503a..a7af59f 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -151,23 +151,23 @@ class toffeeError res = "" header = "#{cerr.dir_name}/#{cerr.file}: #{_ppEscape cerr.message}" res += """ -
    +
    \n
    #{header}
    \n
    - \n
    + \n
    """ if cerr.stack?.length - res += "
    " + res += "
    " count = 0 for item,i in cerr.stack if i is 0 - res += "
    #{count++} #{item.line}
    " + res += "
    #{count++} #{item.line}
    " else if item.in_src_file and (item.above_pub_call or item.at_pub_call) - res += "
    #{count++} [#{@_lineRangeToPhrase item.line_range}] #{cerr.dir_name}/#{cerr.file}
    " + res += "
    #{count++} [#{@_lineRangeToPhrase item.line_range}] #{cerr.dir_name}/#{cerr.file}
    " else if item.in_src_file continue else - res += "
    #{count++}#{item.line}
    " + res += "
    #{count++}#{item.line}
    " res += "
    " for i in [(cerr.line_range[0]-3)...(cerr.line_range[1]+1)] From 09874c2c0bb1e29e78a49a5a0bfcb7a66896e03d Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 28 Aug 2012 15:27:27 -0400 Subject: [PATCH 062/163] added coffee output to command line program --- lib/command_line.js | 20 ++++++++++++++----- lib/errorHandler.js | 2 +- src/command_line.coffee | 15 +++++++++++--- src/errorHandler.coffee | 4 ++-- .../express3/public/javascripts/test_cases.js | 1 + 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/lib/command_line.js b/lib/command_line.js index 53a5443..a06696a 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -29,7 +29,7 @@ and path is /foo/bar/car/thing.toffee */ - var bundle_path, js, source, v; + var bundle_path, output, source, v; source = fs.readFileSync(path, 'utf8'); bundle_path = path.slice(start_path.length); v = new view(source, { @@ -38,12 +38,16 @@ browserMode: true, minimize: (program.minimize != null) && program.minimize }); - js = v._toJavaScript(); + if (program.coffee) { + output = v._toCoffee(); + } else { + output = v._toJavaScript(); + } if (v.error) { process.stderr.write(v.error.getPrettyPrintText()); process.exit(1); } - return js; + return output; }; recurseRun = function(start_path, curr_path, out_text) { @@ -70,7 +74,7 @@ }; run = exports.run = function() { - var out_text, start_path; + var header_out, out_text, start_path, template_out; if (program.args.length !== 1) { console.log("Unexpected input. toffee --help for examples"); console.log(program.args); @@ -83,7 +87,13 @@ process.exit(1); } start_path = path.normalize(start_path); - out_text = "" + (getCommonHeadersJs(true, true)) + "\n" + (recurseRun(start_path, start_path, '')); + template_out = recurseRun(start_path, start_path, ''); + header_out = getCommonHeadersJs(true, true); + if (program.coffee) { + out_text = "`" + header_out + "`\n" + template_out; + } else { + out_text = "" + header_out + "\n;\n" + template_out; + } if (program.print) { console.log(out_text); } diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 2c0b8fc..e03ce87 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -181,7 +181,7 @@ cerr = this.getConvertedError(); res = ""; header = "" + cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; - res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; + res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; if ((_ref = cerr.stack) != null ? _ref.length : void 0) { res += "
    "; count = 0; diff --git a/src/command_line.coffee b/src/command_line.coffee index d272176..ab25017 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -53,11 +53,14 @@ compile = (start_path, path) -> bundlePath: bundle_path browserMode: true minimize: program.minimize? and program.minimize - js = v._toJavaScript() + if program.coffee + output = v._toCoffee() + else + output = v._toJavaScript() if v.error process.stderr.write v.error.getPrettyPrintText() process.exit 1 - js + output # ----------------------------------------------------------------------------- @@ -91,7 +94,13 @@ run = exports.run = -> console.log "Input file/path not found. toffee --help for examples" process.exit 1 start_path = path.normalize start_path - out_text = """#{getCommonHeadersJs true, true}\n#{recurseRun start_path, start_path, ''}""" + template_out = recurseRun start_path, start_path, '' + header_out = getCommonHeadersJs true, true + if program.coffee + out_text = "`#{header_out}`\n#{template_out}" + else + out_text = "#{header_out}\n;\n#{template_out}" + if program.print console.log out_text if program.output diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index a7af59f..c86835a 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -151,10 +151,10 @@ class toffeeError res = "" header = "#{cerr.dir_name}/#{cerr.file}: #{_ppEscape cerr.message}" res += """ -
    +
    \n
    #{header}
    \n
    - \n
    + \n
    """ if cerr.stack?.length res += "
    " diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index ac0c7a8..fc8dd10 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,4 +1,5 @@ var toffee;if(!(typeof toffee!=="undefined"&&toffee!==null))toffee={};if(!toffee.templates)toffee.templates={};toffee.states={TOFFEE:1,COFFEE:2};toffee.__json=function(locals,o){if(!(o!=null)){return"null"}else{return""+JSON.stringify(o).replace(//g,"\\u003E").replace(/&/g,"\\u0026")}};toffee.__raw=function(locals,o){return o};toffee.__html=function(locals,o){return(""+o).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};toffee.__escape=function(locals,o){if(!(locals.__toffee.autoEscape!=null)||locals.__toffee.autoEscape){if(o===void 0)return"";if(o!=null&&typeof o==="object")return locals.json(o);return locals.html(o)}return o};toffee.__augmentLocals=function(locals,bundle_path){var _l,_t;_l=locals;_t=_l.__toffee={out:[]};if(!(_l.print!=null)){_l.print=function(o){return toffee.__print(_l,o)}}if(!(_l.json!=null)){_l.json=function(o){return toffee.__json(_l,o)}}if(!(_l.raw!=null)){_l.raw=function(o){return toffee.__raw(_l,o)}}if(!(_l.html!=null)){_l.html=function(o){return toffee.__html(_l,o)}}if(!(_l.escape!=null)){_l.escape=function(o){return toffee.__escape(_l,o)}}if(!(_l.partial!=null)){_l.partial=function(path,vars){return toffee.__partial(toffee.templates[""+bundle_path],_l,path,vars)}}if(!(_l.snippet!=null)){_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates[""+bundle_path],_l,path,vars)}}_t.print=_l.print;_t.json=_l.json;_t.raw=_l.raw;_t.html=_l.html;_t.escape=_l.escape;_t.partial=_l.partial;return _t.snippet=_l.snippet};toffee.__print=function(locals,o){if(locals.__toffee.state===toffee.states.COFFEE){locals.__toffee.out.push(o);return""}else{return""+o}};toffee.__normalize=function(path){var np,part,parts,_i,_len;if(!(path!=null)||path==="/"){return path}else{parts=path.split("/");np=[];if(parts[0])np.push("");for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(part===".."){if(np.length>1){np.pop()}else{np.push(part)}}else{if(part!==".")np.push(part)}}path=np.join("/");if(!path)path="/";return path}};toffee.__partial=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__snippet=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);vars=vars!=null?vars:{};vars.__toffee=vars.__toffee||{};vars.__toffee.noInheritance=true;return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__inlineInclude=function(path,locals,parent_locals){var k,options,v;options=locals||{};options.__toffee=options.__toffee||{};if(!options.__toffee.noInheritance){for(k in parent_locals){v=parent_locals[k];if(!((locals!=null?locals[k]:void 0)!=null)){if(!(k==="print"||k==="partial"||k==="snippet"||k==="layout"||k==="__toffee")){options[k]=v}}}}if(!toffee.templates[path]){return"Inline toffee include: Could not find "+path}else{return toffee.templates[path].pub(options)}} +; ; (function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"};tmpl.pub=function(__locals){var count,i,_i,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);count=0;for(i=_i=0;_i<2;i=++_i){_ts(1);_ts(1);_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...");_ts(1);_to(" ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...")}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) From f60a165025a95d974e46d617319331f0e1f33bd8 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 4 Sep 2012 18:18:34 -0400 Subject: [PATCH 063/163] exposed engine for manual usage, per user request --- index.coffee | 2 + index.js | 2 + lib/toffee_lang.js | 282 ++++++++---------- lib/view.js | 2 + package.json | 2 +- src/view.coffee | 4 +- .../express3/public/javascripts/test_cases.js | 78 ++--- test/run_cases.coffee | 3 +- 8 files changed, 171 insertions(+), 204 deletions(-) diff --git a/index.coffee b/index.coffee index 3a6b2c5..4e04d3d 100644 --- a/index.coffee +++ b/index.coffee @@ -1,5 +1,7 @@ # expose the render function eclass = require('./lib/engine').engine +exports.engine = eclass + e = new eclass { verbose: false, prettyPrintErrors: true } exports.expressEngine = e diff --git a/index.js b/index.js index 5d397bc..f509006 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,8 @@ eclass = require('./lib/engine').engine; + exports.engine = eclass; + e = new eclass({ verbose: false, prettyPrintErrors: true diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index 11f943b..dc48bf1 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -56,195 +56,115 @@ parseError: function parseError(str, hash) { throw new Error(str); }, parse: function parse(input) { - var self = this, - stack = [0], - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - //this.reductionCount = this.shiftCount = 0; - + var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; this.lexer.setInput(input); this.lexer.yy = this.yy; this.yy.lexer = this.lexer; - if (typeof this.lexer.yylloc == 'undefined') + this.yy.parser = this; + if (typeof this.lexer.yylloc == "undefined") this.lexer.yylloc = {}; var yyloc = this.lexer.yylloc; lstack.push(yyloc); - - if (typeof this.yy.parseError === 'function') + var ranges = this.lexer.options && this.lexer.options.ranges; + if (typeof this.yy.parseError === "function") this.parseError = this.yy.parseError; - - function popStack (n) { - stack.length = stack.length - 2*n; + function popStack(n) { + stack.length = stack.length - 2 * n; vstack.length = vstack.length - n; lstack.length = lstack.length - n; } - function lex() { var token; - token = self.lexer.lex() || 1; // $end = 1 - // if token isn't its numeric value, convert - if (typeof token !== 'number') { + token = self.lexer.lex() || 1; + if (typeof token !== "number") { token = self.symbols_[token] || token; } return token; } - - var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected; + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; while (true) { - // retreive state number from top of stack - state = stack[stack.length-1]; - - // use default actions if available + state = stack[stack.length - 1]; if (this.defaultActions[state]) { action = this.defaultActions[state]; } else { - if (symbol == null) + if (symbol === null || typeof symbol == "undefined") { symbol = lex(); - // read action for current state and first input + } action = table[state] && table[state][symbol]; } - - // handle parse error - _handle_error: - if (typeof action === 'undefined' || !action.length || !action[0]) { - + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; if (!recovering) { - // Report error expected = []; - for (p in table[state]) if (this.terminals_[p] && p > 2) { - expected.push("'"+this.terminals_[p]+"'"); - } - var errStr = ''; + for (p in table[state]) + if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } if (this.lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'"; + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == 1 /*EOF*/ ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); } - this.parseError(errStr, - {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); + this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); } - - // just recovered from another error - if (recovering == 3) { - if (symbol == EOF) { - throw new Error(errStr || 'Parsing halted.'); - } - - // discard current lookahead and grab another + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { yyleng = this.lexer.yyleng; yytext = this.lexer.yytext; yylineno = this.lexer.yylineno; yyloc = this.lexer.yylloc; - symbol = lex(); + if (recovering > 0) + recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; } - - // try to recover from error - while (1) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - break; - } - if (state == 0) { - throw new Error(errStr || 'Parsing halted.'); - } - popStack(1); - state = stack[stack.length-1]; + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; + if (ranges) { + yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]]; } - - preErrorSymbol = symbol; // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; - if (recovering > 0) - recovering--; - } else { // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: // accept - return true; + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; } - } - return true; -}}; +} +}; /* Jison generated lexer */ var lexer = (function(){ var lexer = ({EOF:1, parseError:function parseError(str, hash) { - if (this.yy.parseError) { - this.yy.parseError(str, hash); + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); } else { throw new Error(str); } @@ -256,21 +176,55 @@ setInput:function (input) { this.yytext = this.matched = this.match = ''; this.conditionStack = ['INITIAL']; this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; + if (this.options.ranges) this.yylloc.range = [0,0]; + this.offset = 0; return this; }, input:function () { var ch = this._input[0]; - this.yytext+=ch; + this.yytext += ch; this.yyleng++; - this.match+=ch; - this.matched+=ch; - var lines = ch.match(/\n/); - if (lines) this.yylineno++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) this.yylloc.range[1]++; + this._input = this._input.slice(1); return ch; }, unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length-len-1); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length-1); + this.matched = this.matched.substr(0, this.matched.length-1); + + if (lines.length-1) this.yylineno -= lines.length-1; + var r = this.yylloc.range; + + this.yylloc = {first_line: this.yylloc.first_line, + last_line: this.yylineno+1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length: + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } return this; }, more:function () { @@ -278,7 +232,7 @@ more:function () { return this; }, less:function (n) { - this._input = this.match.slice(n) + this._input; + this.unput(this.match.slice(n)); }, pastInput:function () { var past = this.matched.substr(0, this.matched.length - this.match.length); @@ -322,15 +276,19 @@ next:function () { } } if (match) { - lines = match[0].match(/\n.*/g); + lines = match[0].match(/(?:\r\n?|\n).*/g); if (lines) this.yylineno += lines.length; this.yylloc = {first_line: this.yylloc.last_line, last_line: this.yylineno+1, first_column: this.yylloc.last_column, - last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length} + last_column: lines ? lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length}; this.yytext += match[0]; this.match += match[0]; + this.matches = match; this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } this._more = false; this._input = this._input.slice(match[0].length); this.matched += match[0]; @@ -342,7 +300,7 @@ next:function () { if (this._input === "") { return this.EOF; } else { - this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), + return this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), {text: "", token: null, line: this.yylineno}); } }, @@ -392,23 +350,25 @@ case 7:return 5; break; } }; -lexer.rules = [/^\{##/,/^##\}/,/^:\}/,/^\{:/,/^\{#/,/^#\}/,/^[^{}#\\:\-]+|[\\{}#:\-]/,/^$/]; +lexer.rules = [/^(?:\{##)/,/^(?:##\})/,/^(?::\})/,/^(?:\{:)/,/^(?:\{#)/,/^(?:#\})/,/^(?:[^{}#\\:\-]+|[\\{}#:\-])/,/^(?:$)/]; lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7],"inclusive":true}}; return lexer;})() parser.lexer = lexer; -return parser; +function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser; +return new Parser; })(); if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = toffee_lang; +exports.Parser = toffee_lang.Parser; exports.parse = function () { return toffee_lang.parse.apply(toffee_lang, arguments); } exports.main = function commonjsMain(args) { if (!args[1]) throw new Error('Usage: '+args[0]+' FILE'); + var source, cwd; if (typeof process !== 'undefined') { - var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); + source = require('fs').readFileSync(require('path').resolve(args[1]), "utf8"); } else { - var cwd = require("file").path(require("file").cwd()); - var source = cwd.join(args[1]).read({charset: "utf-8"}); + source = require("file").path(require("file").cwd()).join(args[1]).read({charset: "utf-8"}); } return exports.parser.parse(source); } diff --git a/lib/view.js b/lib/view.js index 13137a0..15aa18f 100644 --- a/lib/view.js +++ b/lib/view.js @@ -24,6 +24,8 @@ jsp = require("uglify-js").parser; pro = require("uglify-js").uglify; ast = jsp.parse(js, true); + ast = pro.ast_mangle(ast); + ast = pro.ast_squeeze(ast); js = pro.gen_code(ast); } catch (e) { console.log(js); diff --git a/package.json b/package.json index 96de2ab..aa2a55d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.40", + "version": "0.0.41", "directories": { "lib": "./lib" }, diff --git a/src/view.coffee b/src/view.coffee index 8adfe27..1ce7b9c 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -15,8 +15,8 @@ minimizeJs = (js) -> jsp = require("uglify-js").parser pro = require("uglify-js").uglify ast = jsp.parse js, true # parse code and get the initial AST - #ast = pro.ast_mangle ast # get a new AST with mangled names - #ast = pro.ast_squeeze ast # get an AST with compression optimizations + ast = pro.ast_mangle ast # get a new AST with mangled names + ast = pro.ast_squeeze ast # get an AST with compression optimizations js = pro.gen_code ast catch e console.log js diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index fc8dd10..cf63ef5 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,79 +1,79 @@ -var toffee;if(!(typeof toffee!=="undefined"&&toffee!==null))toffee={};if(!toffee.templates)toffee.templates={};toffee.states={TOFFEE:1,COFFEE:2};toffee.__json=function(locals,o){if(!(o!=null)){return"null"}else{return""+JSON.stringify(o).replace(//g,"\\u003E").replace(/&/g,"\\u0026")}};toffee.__raw=function(locals,o){return o};toffee.__html=function(locals,o){return(""+o).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};toffee.__escape=function(locals,o){if(!(locals.__toffee.autoEscape!=null)||locals.__toffee.autoEscape){if(o===void 0)return"";if(o!=null&&typeof o==="object")return locals.json(o);return locals.html(o)}return o};toffee.__augmentLocals=function(locals,bundle_path){var _l,_t;_l=locals;_t=_l.__toffee={out:[]};if(!(_l.print!=null)){_l.print=function(o){return toffee.__print(_l,o)}}if(!(_l.json!=null)){_l.json=function(o){return toffee.__json(_l,o)}}if(!(_l.raw!=null)){_l.raw=function(o){return toffee.__raw(_l,o)}}if(!(_l.html!=null)){_l.html=function(o){return toffee.__html(_l,o)}}if(!(_l.escape!=null)){_l.escape=function(o){return toffee.__escape(_l,o)}}if(!(_l.partial!=null)){_l.partial=function(path,vars){return toffee.__partial(toffee.templates[""+bundle_path],_l,path,vars)}}if(!(_l.snippet!=null)){_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates[""+bundle_path],_l,path,vars)}}_t.print=_l.print;_t.json=_l.json;_t.raw=_l.raw;_t.html=_l.html;_t.escape=_l.escape;_t.partial=_l.partial;return _t.snippet=_l.snippet};toffee.__print=function(locals,o){if(locals.__toffee.state===toffee.states.COFFEE){locals.__toffee.out.push(o);return""}else{return""+o}};toffee.__normalize=function(path){var np,part,parts,_i,_len;if(!(path!=null)||path==="/"){return path}else{parts=path.split("/");np=[];if(parts[0])np.push("");for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(part===".."){if(np.length>1){np.pop()}else{np.push(part)}}else{if(part!==".")np.push(part)}}path=np.join("/");if(!path)path="/";return path}};toffee.__partial=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__snippet=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);vars=vars!=null?vars:{};vars.__toffee=vars.__toffee||{};vars.__toffee.noInheritance=true;return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__inlineInclude=function(path,locals,parent_locals){var k,options,v;options=locals||{};options.__toffee=options.__toffee||{};if(!options.__toffee.noInheritance){for(k in parent_locals){v=parent_locals[k];if(!((locals!=null?locals[k]:void 0)!=null)){if(!(k==="print"||k==="partial"||k==="snippet"||k==="layout"||k==="__toffee")){options[k]=v}}}}if(!toffee.templates[path]){return"Inline toffee include: Could not find "+path}else{return toffee.templates[path].pub(options)}} +var toffee;if(typeof toffee=="undefined"||toffee===null)toffee={};toffee.templates||(toffee.templates={}),toffee.states={TOFFEE:1,COFFEE:2},toffee.__json=function(e,t){return t==null?"null":""+JSON.stringify(t).replace(//g,"\\u003E").replace(/&/g,"\\u0026")},toffee.__raw=function(e,t){return t},toffee.__html=function(e,t){return(""+t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},toffee.__escape=function(e,t){return e.__toffee.autoEscape==null||e.__toffee.autoEscape?t===void 0?"":t!=null&&typeof t=="object"?e.json(t):e.html(t):t},toffee.__augmentLocals=function(e,t){var n,r;return n=e,r=n.__toffee={out:[]},n.print==null&&(n.print=function(e){return toffee.__print(n,e)}),n.json==null&&(n.json=function(e){return toffee.__json(n,e)}),n.raw==null&&(n.raw=function(e){return toffee.__raw(n,e)}),n.html==null&&(n.html=function(e){return toffee.__html(n,e)}),n.escape==null&&(n.escape=function(e){return toffee.__escape(n,e)}),n.partial==null&&(n.partial=function(e,r){return toffee.__partial(toffee.templates[""+t],n,e,r)}),n.snippet==null&&(n.snippet=function(e,r){return toffee.__snippet(toffee.templates[""+t],n,e,r)}),r.print=n.print,r.json=n.json,r.raw=n.raw,r.html=n.html,r.escape=n.escape,r.partial=n.partial,r.snippet=n.snippet},toffee.__print=function(e,t){return e.__toffee.state===toffee.states.COFFEE?(e.__toffee.out.push(t),""):""+t},toffee.__normalize=function(e){var t,n,r,i,s;if(e==null||e==="/")return e;r=e.split("/"),t=[],r[0]&&t.push("");for(i=0,s=r.length;i1?t.pop():t.push(n):n!=="."&&t.push(n);return e=t.join("/"),e||(e="/"),e},toffee.__partial=function(e,t,n,r){return n=toffee.__normalize(e.bundlePath+"/../"+n),toffee.__inlineInclude(n,r,t)},toffee.__snippet=function(e,t,n,r){return n=toffee.__normalize(e.bundlePath+"/../"+n),r=r!=null?r:{},r.__toffee=r.__toffee||{},r.__toffee.noInheritance=!0,toffee.__inlineInclude(n,r,t)},toffee.__inlineInclude=function(e,t,n){var r,i,s;i=t||{},i.__toffee=i.__toffee||{};if(!i.__toffee.noInheritance)for(r in n)s=n[r],(t!=null?t[r]:void 0)==null&&r!=="print"&&r!=="partial"&&r!=="snippet"&&r!=="layout"&&r!=="__toffee"&&(i[r]=s);return toffee.templates[e]?toffee.templates[e].pub(i):"Inline toffee include: Could not find "+e} ; ; -(function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"};tmpl.pub=function(__locals){var count,i,_i,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);count=0;for(i=_i=0;_i<2;i=++_i){_ts(1);_ts(1);_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...");_ts(1);_to(" ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...")}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.pub=function(__locals){var count,i,_i,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/input.toffee");with(__locals){__toffee.out=[],_ts(1),_ts(2),count=0;for(i=_i=0;_i<2;i=++_i)_ts(1),_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...");return __toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/comments/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to("Pass 1\n");_ts(2);_ts(1);_to("\n");_to("Pass 2\n");_ts(2);_ts(2);_ts(1);_to("\n");_to("Pass 3");_ts(2);_ts(1);_to("\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3"),_ts(2),_ts(1),_to("\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/comments/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to("Pass 1\n");_to("\n");_to("Pass 2\n");_to("\n");_to("Pass 3\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"};tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/custom_escape/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);x='"Hello world"';y="
    + :} + {::} + #} + + + \ No newline at end of file diff --git a/test/express3_error_handling/views/test_bad_coffee_syntax.toffee b/test/express3_error_handling/views/test_bad_coffee_syntax.toffee new file mode 100644 index 0000000..1df5dd2 --- /dev/null +++ b/test/express3_error_handling/views/test_bad_coffee_syntax.toffee @@ -0,0 +1,15 @@ + +{# + x = "Foo" +#} + +{# + y = "Bar" + {: + Hello there + {# + var x = 100 + #} + :} +#} +Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah Bleah bleah bleah Bleah \ No newline at end of file diff --git a/test/express3_error_handling/views/test_bad_runtime.toffee b/test/express3_error_handling/views/test_bad_runtime.toffee new file mode 100644 index 0000000..0a8d912 --- /dev/null +++ b/test/express3_error_handling/views/test_bad_runtime.toffee @@ -0,0 +1,13 @@ + +About to convert a circular JSON structure + +{# + x = [1,2,3] + x.push x + {: +

    x as JSON

    + {# + print JSON.stringify x + #} + :} +#} diff --git a/test/express3_error_handling/views/test_bad_str_interpolate.toffee b/test/express3_error_handling/views/test_bad_str_interpolate.toffee new file mode 100644 index 0000000..d0e946d --- /dev/null +++ b/test/express3_error_handling/views/test_bad_str_interpolate.toffee @@ -0,0 +1,6 @@ + +This is a bad variable. + +foo.bar = #{foo.bar} + +Hah. \ No newline at end of file diff --git a/test/express3_error_handling/views/test_bad_toffee_syntax.toffee b/test/express3_error_handling/views/test_bad_toffee_syntax.toffee new file mode 100644 index 0000000..d5dff31 --- /dev/null +++ b/test/express3_error_handling/views/test_bad_toffee_syntax.toffee @@ -0,0 +1,10 @@ + +{# + x = "Foo" +#} + +{# + {: :} + y = "Bar" + {: +#} diff --git a/test/generate_express_test.coffee b/test/generate_express_test.coffee index a3e310e..d87540e 100644 --- a/test/generate_express_test.coffee +++ b/test/generate_express_test.coffee @@ -56,10 +56,10 @@ generateExpressTest = (cb) -> for dir,i in case_dirs expected_output = fs.readFileSync "./test/cases/#{dir}/output.toffee", "utf8" - if path.existsSync "./test/cases/#{dir}/vars.coffee" + if fs.existsSync "./test/cases/#{dir}/vars.coffee" coffee_vars = fs.readFileSync "./test/cases/#{dir}/vars.coffee", "utf8" js_vars = coffee.compile(coffee_vars, {bare: true}).replace(/;[ \n]*$/,'') - else if path.existsSync "./test/cases/#{dir}/vars.js" + else if fs.existsSync "./test/cases/#{dir}/vars.js" coffee_vars = fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" js_vars = coffee_vars; else From d908843f69a0fa3d6cdafe45977b97631611ec81 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Sat, 22 Mar 2014 17:19:28 -0400 Subject: [PATCH 135/163] fixed file not found error returning string instead of error object; version bump --- index.js | 2 +- lib/command_line.js | 8 +-- lib/consts.js | 2 +- lib/engine.js | 119 ++++++++++++++++++++++++-------------------- lib/errorHandler.js | 22 ++++---- lib/pool.js | 2 +- lib/utils.js | 6 +-- lib/view.js | 55 ++++++++++---------- package.json | 2 +- src/engine.coffee | 4 +- 10 files changed, 116 insertions(+), 106 deletions(-) diff --git a/index.js b/index.js index 0559cbe..fe0e9a4 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var e, engine, getCommonHeaders, getCommonHeadersJs, to_express, view, __express, _ref; diff --git a/lib/command_line.js b/lib/command_line.js index 81fe5ff..a7658d0 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, run, view, _ref; @@ -20,17 +20,17 @@ }; program.on('--help', function() { - return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); + return console.log("\n Examples: \n \n toffee views # recurses through views and builds views.js \n toffee foo.toffee # builds foo.js \n toffee views -o templates # builds templates.js \n toffee -p foo.toffee # outputs JS to stdout \n \n \n Then use in your : \n \n \n \n"); }); program.version(getVersionNumber()).option('-o, --output [path]', 'file (bundles all output into a single .js)').option('-d, --output_dir [path]', 'compiles templates into parallel .js files').option('-p, --print', 'print to stdout').option('-m, --minimize', 'minimize output (ugly, smaller file(s))').option('-c, --coffee', 'output to CoffeeScript (not JS)').option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates').option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)').parse(process.argv); compile = function(start_path, full_path) { + /* e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - */ - + */ var bundle_path, output, source, v; source = fs.readFileSync(full_path, 'utf8'); bundle_path = full_path.slice(start_path.length); diff --git a/lib/consts.js b/lib/consts.js index 9a81c38..31125bd 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { exports.states = { TOFFEE: 1, diff --git a/lib/engine.js b/lib/engine.js index bb2013a..518ce4e 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, sandboxCons, states, tweakables, util, utils, view, vm, _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -77,6 +77,7 @@ }; engine.prototype.run = function(filename, options, cb) { + /* "options" contains the pub vars and may contain special items: layout: path to a template expecting a body var (express 2.x style, but for use with express 3.x) @@ -86,8 +87,7 @@ __toffee.noInheritance: if true, don't pass variables through unless explicitly passed __toffee.repress if true, don't output anything; useful with including definition files with passback of vars __toffee.autoEscape: if set as false, don't escape output of #{} vars by default - */ - + */ var err, k, layout_options, post_process, res, v, _ref1, _ref2, _ref3, _ref4, _ref5; if (options.prettyPrintErrors == null) { options.prettyPrintErrors = this.prettyPrintErrors; @@ -142,12 +142,11 @@ }; engine.prototype.runSync = function(filename, options) { + /* "options" the same as run() above - */ - - var ctx, err, realpath, res, start_time, v, _ref1, _ref2, _ref3, - _this = this; + */ + var ctx, err, realpath, res, start_time, v, _ref1, _ref2, _ref3; start_time = Date.now(); options = options || {}; options.__toffee = options.__toffee || {}; @@ -156,21 +155,29 @@ v = (this._viewCacheGet(realpath)) || (this._loadCacheAndMonitor(realpath, options)); if (v) { if (this.fsErrorCache[realpath]) { - _ref1 = ["Couldn't load " + realpath, null], err = _ref1[0], res = _ref1[1]; + _ref1 = [new Error("Couldn't load " + realpath), null], err = _ref1[0], res = _ref1[1]; } else { options.__toffee.parent = realpath; - options.partial = options.partial || function(fname, lvars) { - return _this._fn_partial(fname, lvars, realpath, options); - }; - options.snippet = options.snippet || function(fname, lvars) { - return _this._fn_snippet(fname, lvars, realpath, options); - }; - options.load = options.load || function(fname, lvars) { - return _this._fn_load(fname, lvars, realpath, options); - }; - options.print = options.print || function(txt) { - return _this._fn_print(txt, options); - }; + options.partial = options.partial || (function(_this) { + return function(fname, lvars) { + return _this._fn_partial(fname, lvars, realpath, options); + }; + })(this); + options.snippet = options.snippet || (function(_this) { + return function(fname, lvars) { + return _this._fn_snippet(fname, lvars, realpath, options); + }; + })(this); + options.load = options.load || (function(_this) { + return function(fname, lvars) { + return _this._fn_load(fname, lvars, realpath, options); + }; + })(this); + options.print = options.print || (function(_this) { + return function(txt) { + return _this._fn_print(txt, options); + }; + })(this); if (options.console == null) { options.console = { log: console.log @@ -181,7 +188,7 @@ this.pool.release(ctx); } } else { - _ref3 = ["Couldn't load " + realpath, null], err = _ref3[0], res = _ref3[1]; + _ref3 = [new Error("Couldn't load " + realpath), null], err = _ref3[0], res = _ref3[1]; } this._log("" + realpath + " run in " + (Date.now() - start_time) + "ms"); return [err, res]; @@ -288,33 +295,34 @@ }; engine.prototype._reloadFileInBkg = function(filename, options) { - var _this = this; - return fs.readFile(filename, 'utf8', function(err, txt) { - var ctx, v, view_options, _ref1; - if (err || (txt !== _this.viewCache[filename].txt)) { - if (err) { - _this.fsErrorCache[filename] = Date.now(); - txt = "Error: Could not read " + filename; - if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } - } - if (!(err && _this.viewCache[filename].fsError)) { - view_options = _this._generateViewOptions(filename); - ctx = _this.pool.get(); - view_options.ctx = ctx; - view_options.cb = function(v) { - _this._log("" + filename + " updated and ready"); - _this.viewCache[filename] = v; - return _this.pool.release(ctx); - }; + return fs.readFile(filename, 'utf8', (function(_this) { + return function(err, txt) { + var ctx, v, view_options, _ref1; + if (err || (txt !== _this.viewCache[filename].txt)) { if (err) { - view_options.fsError = true; + _this.fsErrorCache[filename] = Date.now(); + txt = "Error: Could not read " + filename; + if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { + txt += " requested in " + options.__toffee.parent; + } + } + if (!(err && _this.viewCache[filename].fsError)) { + view_options = _this._generateViewOptions(filename); + ctx = _this.pool.get(); + view_options.ctx = ctx; + view_options.cb = function(v) { + _this._log("" + filename + " updated and ready"); + _this.viewCache[filename] = v; + return _this.pool.release(ctx); + }; + if (err) { + view_options.fsError = true; + } + return v = new view(txt, view_options); } - return v = new view(txt, view_options); } - } - }); + }; + })(this)); }; engine.prototype._generateViewOptions = function(filename) { @@ -330,28 +338,29 @@ }; engine.prototype._monitorForChanges = function(filename, options) { + /* we must continuously unwatch/rewatch because some editors/systems invoke a "rename" event and we'll end up following the wrong, old 'file' as a new one is dropped in its place. Files that are missing are ignored here because they get picked up by new calls to _loadCacheAndMonitor - */ - - var e, fsw, - _this = this; + */ + var e, fsw; if (this.fsErrorCache[filename] == null) { fsw = null; try { this._log("" + filename + " starting fs.watch()"); return fsw = fs.watch(filename, { persistent: true - }, function(change) { - _this._log("" + filename + " closing fs.watch()"); - fsw.close(); - _this._monitorForChanges(filename, options); - return _this._reloadFileInBkg(filename, options); - }); + }, (function(_this) { + return function(change) { + _this._log("" + filename + " closing fs.watch()"); + fsw.close(); + _this._monitorForChanges(filename, options); + return _this._reloadFileInBkg(filename, options); + }; + })(this)); } catch (_error) { e = _error; this._log("fs.watch() failed for " + filename + "; settings fsErrorCache = true"); diff --git a/lib/errorHandler.js b/lib/errorHandler.js index fece7e0..96f1ea4 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var errorTypes, path, toffeeError, util, _ppEscape, __hasProp = {}.hasOwnProperty, @@ -41,6 +41,7 @@ } toffeeError.prototype.getConvertedError = function() { + /* -------------------------------------- returns a JS style error, but with some extras { @@ -51,8 +52,7 @@ ...etc... } ------------------------------------------ - */ - + */ var line, res, _ref, _ref1, _ref2; res = { stack: [], @@ -105,11 +105,11 @@ }; toffeeError.prototype._convertRuntimeStackLines = function(converted_err) { + /* a little more complicated, so extracted. Returns an array of dictionaries where there's extra info on each line in the stack. - */ - + */ var at_pub_call, hit_pub_yet, i, in_src_file, line, lineno, lrange, m, rxx_inline, rxx_pub, stack, _i, _len, _results; hit_pub_yet = false; stack = converted_err.stack; @@ -156,10 +156,10 @@ }; toffeeError.prototype.getPrettyPrintText = function() { + /* returns a TEXT only blob explaining the error - */ - + */ var cerr, count, header, i, item, res, _i, _len, _ref, _ref1; cerr = this.getConvertedError(); header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; @@ -189,11 +189,11 @@ }; toffeeError.prototype.getPrettyPrint = function() { + /* returns an HTML blob explaining the error with lines highlighted - */ - + */ var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4; cerr = this.getConvertedError(); res = ""; @@ -270,12 +270,12 @@ }; toffeeError.prototype._convertOffensiveLineToToffeeRange = function(lineno) { + /* Given the error line in a converted file, hunts for surrounding __toffee.lineno calls and returns a pair array with the error position range in the original toffee file. - */ - + */ var next, next_matches, ol, prev, prev_matches, res, tl; ol = this.offensiveSrcLines; tl = this.toffeeSrcLines; diff --git a/lib/pool.js b/lib/pool.js index 34e4fd7..16ab81f 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var Pool; diff --git a/lib/utils.js b/lib/utils.js index 45f1cfa..8b7bdf4 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var lex, lexer; @@ -7,12 +7,12 @@ lex = new lexer.Lexer(); exports.interpolateString = function(str) { + /* Similar to the interpolateString function in CoffeeScript, except that it doesn't actually work on anything inside an outer #{}; we're just looking to recognize them. - */ - + */ var expr, i, inner, interpolated, letter, pi, res, tag, tokens, value, _i, _len, _ref; tokens = []; res = []; diff --git a/lib/view.js b/lib/view.js index fbcc0da..7264dfe 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, spaces, states, tabs, toffeeError, util, utils, view, vm, _ref, _ref1; @@ -62,24 +62,24 @@ }; getCommonHeaders = function(tab_level, include_bundle_headers, auto_escape) { + /* each view will use this, or if they're bundled together, it'll only be used once. include_bundle_headers: includes some functions needed for browser use - */ - + */ var __; __ = tabs(tab_level); return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o? then return \"null\"\n" + __ + " else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { + /* header stuff only needed when compiling to a JS file - */ - + */ var __; __ = tabs(tab_level); return "\n\n" + __ + "toffee.__print = (locals, o) ->\n" + __ + " if locals.__toffee.state is toffee.states.COFFEE\n" + __ + " locals.__toffee.out.push o\n" + __ + " return ''\n" + __ + " else\n" + __ + " return \"\#{o}\"\n\n" + __ + "toffee.__normalize = (path) ->\n" + __ + " if (not path?) or path is \"/\"\n" + __ + " return path\n" + __ + " else\n" + __ + " parts = path.split \"/\"\n" + __ + " np = []\n" + __ + " # make sure path always starts with '/'\n" + __ + " if parts[0]\n" + __ + " np.push ''\n" + __ + " for part in parts\n" + __ + " if part is \"..\"\n" + __ + " if np.length > 1\n" + __ + " np.pop()\n" + __ + " else\n" + __ + " np.push part\n" + __ + " else\n" + __ + " if part isnt \".\"\n" + __ + " np.push part\n" + __ + " path = np.join \"/\"\n" + __ + " if not path then path = \"/\"\n" + __ + " return path\n\n" + __ + "toffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.noInheritance = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__load = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.repress = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__inlineInclude = (path, locals, parent_locals) ->\n" + __ + " options = locals or {}\n" + __ + " options.passback = {}\n" + __ + " options.__toffee = options.__toffee or {}\n" + __ + "\n" + __ + " # we need to make a shallow copy of parent variables\n" + __ + " reserved = {}\n" + __ + " reserved[k] = true for k in [\"passback\", \"load\", \"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\", \"postProcess\"]\n" + __ + " if not options.__toffee.noInheritance\n" + __ + " for k,v of parent_locals when not locals?[k]?\n" + __ + " if not reserved[k]?\n" + __ + " options[k] = v\n" + __ + "\n" + __ + " if not toffee.templates[path]\n" + __ + " return \"Inline toffee include: Could not find \#{path}\"\n" + __ + " else\n" + __ + " res = toffee.templates[path].pub options\n" + __ + " for k,v of options.passback\n" + __ + " parent_locals[k] = v\n" + __ + " return res"; @@ -99,12 +99,11 @@ view = (function() { function view(txt, options) { + /* important options: cb: if this is set, compilation will happen async and cb will be executed when it's ready - */ - - var _this = this; + */ options = options || {}; this.fileName = options.fileName || options.filename || null; this.bundlePath = options.bundlePath || "/"; @@ -123,19 +122,21 @@ this.fun = null; this.error = null; if (options.cb) { - this._prepAsync(txt, options.ctx, (function() { - return options.cb(_this); - })); + this._prepAsync(txt, options.ctx, ((function(_this) { + return function() { + return options.cb(_this); + }; + })(this))); } } view.prototype._prepAsync = function(txt, ctx, cb) { + /* Only once it's fully compiled does it callback. Defers via setTimeouts in each stage in the compile process for CPU friendliness. This is a lot prettier with iced-coffee-script. - */ - + */ var v; this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async."); this._toTokenObj(); @@ -165,10 +166,10 @@ }; view.prototype._cleanTabs = function(obj) { + /* replaces tabs with spaces in their coffee regions - */ - + */ var item, _i, _len, _ref2, _ref3, _results; if ((_ref2 = obj[0]) === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { _ref3 = obj[1]; @@ -184,10 +185,10 @@ }; view.prototype.run = function(options, ctx) { + /* returns [err, str] - */ - + */ var fun, line, pair, res, txt, _i, _len, _ref2; ctx = ctx || vm.createContext({}); fun = this._toFun(ctx); @@ -227,10 +228,10 @@ }; view.prototype._toTokenObj = function() { + /* compiles Toffee to token array - */ - + */ if (this.tokenObj == null) { try { this.tokenObj = parser.parse(this.txt); @@ -333,10 +334,10 @@ }; view.prototype._snippetIsSoloToken = function(str) { + /* if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. - */ - + */ if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { return true; } @@ -431,12 +432,12 @@ }; view.prototype._quoteStr = function(s) { + /* returns a triple-quoted string, dividing into single quoted start and stops, if the string begins with double quotes, since coffee doesn't want to let us escape those. - */ - + */ var follow, lead, res; lead = ""; follow = ""; @@ -470,11 +471,11 @@ }; view.prototype._escapeForStr = function(s) { + /* escapes a string so it can make it into coffeescript triple quotes without losing whitespace, etc. - */ - + */ s = s.replace(/\\/g, '\\\\'); s = s.replace(/\n/g, '\\n'); s = s.replace(/\t/g, '\\t'); @@ -515,13 +516,13 @@ }; view.prototype._getIndentationDelta = function(coffee, baseline) { + /* given an arbitrarily indented set of coffeescript, returns the delta between the first and last lines, in chars. Ignores leading/trailing whitespace lines If passed a baseline, uses that instead of own. - */ - + */ var lines, res, y, y_l; if (baseline == null) { baseline = this._getIndentationBaseline(coffee); diff --git a/package.json b/package.json index c24febf..20be5d2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.6", + "version": "0.1.7", "directories": { "lib": "./lib" }, diff --git a/src/engine.coffee b/src/engine.coffee index e181a67..cabc862 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -119,7 +119,7 @@ class engine if v if @fsErrorCache[realpath] - [err, res] = ["Couldn't load #{realpath}", null] + [err, res] = [new Error("Couldn't load #{realpath}"), null] else options.__toffee.parent = realpath options.partial = options.partial or (fname, lvars) => @_fn_partial fname, lvars, realpath, options @@ -131,7 +131,7 @@ class engine [err, res] = v.run options, ctx @pool.release(ctx) else - [err, res] = ["Couldn't load #{realpath}", null] + [err, res] = [new Error("Couldn't load #{realpath}"), null] @_log "#{realpath} run in #{Date.now() - start_time}ms" return [err, res] From 98994ba9773ade8c1dce856481c594fd65f5c628 Mon Sep 17 00:00:00 2001 From: Lee Olayvar Date: Wed, 30 Apr 2014 22:06:28 -0700 Subject: [PATCH 136/163] Cakefile updated to support CoffeeScript 1.7.0+ As of [this PR](https://github.com/jashkenas/coffee-script/pull/3279), CoffeeScript now requires Cakefiles to register their local coffee installation as to ensure version compatibility. --- Cakefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Cakefile b/Cakefile index b98c59d..7fb37f1 100644 --- a/Cakefile +++ b/Cakefile @@ -1,3 +1,4 @@ +require 'coffee-script/register' {spawn, exec} = require 'child_process' fs = require 'fs' jison = require 'jison' From e78daa03420db187e3b20da36f7b18d15beff8a8 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 1 May 2014 10:35:44 -0400 Subject: [PATCH 137/163] fixed unnecessary file monitoring w/consolidate cacheless; version bump; better testing file with iced --- Cakefile | 4 +- README.md | 5 +- index.coffee | 15 +-- index.js | 28 ++--- lib/command_line.js | 8 +- lib/consts.js | 2 +- lib/engine.js | 138 +++++++++++---------- lib/errorHandler.js | 22 ++-- lib/pool.js | 2 +- lib/utils.js | 6 +- lib/view.js | 55 ++++---- package.json | 12 +- src/engine.coffee | 17 ++- test/express3/public/javascripts/toffee.js | 2 - test/run_cases.coffee | 102 --------------- test/run_cases.iced | 108 ++++++++++++++++ toffee.js | 2 - 17 files changed, 272 insertions(+), 256 deletions(-) delete mode 100644 test/run_cases.coffee create mode 100644 test/run_cases.iced diff --git a/Cakefile b/Cakefile index 7fb37f1..7ec1ff2 100644 --- a/Cakefile +++ b/Cakefile @@ -1,4 +1,4 @@ -require 'coffee-script/register' +require 'iced-coffee-script/register' {spawn, exec} = require 'child_process' fs = require 'fs' jison = require 'jison' @@ -19,7 +19,7 @@ task 'build', 'build the whole jam', (cb) -> cb() if typeof cb is 'function' task 'test', 'test server and browser support', (cb) -> - run_cases = require './test/run_cases' + run_cases = require './test/run_cases.iced' run_cases.test -> console.log "Done." diff --git a/README.md b/README.md index 8639da0..c4afd2c 100644 --- a/README.md +++ b/README.md @@ -484,8 +484,9 @@ as the `.js` files are generated automatically by building. To build and test your changes ``` -> cake build -> cake test +# icake is iced-coffee-script's version of cake +> icake build +> icake test ``` diff --git a/index.coffee b/index.coffee index 4136ef3..c8d2cfe 100644 --- a/index.coffee +++ b/index.coffee @@ -7,8 +7,9 @@ exports.view = view exports.getCommonHeaders = getCommonHeaders exports.getCommonHeadersJs = getCommonHeadersJs -exports.expressEngine = e = new engine { verbose: false, prettyPrintErrors: true } +exports.expressEngine = e = new engine { verbose: false, prettyPrintErrors: true } exports.render = e.run +cacheless_engine = new engine { verbose: false, prettyPrintErrors: true, cache: false} # given a template string, returns a function that can be called # on an object to render it. @@ -43,17 +44,9 @@ __express = exports.__express = to_express e # -------------------------------------------- exports.__consolidate_engine_render = (filename, options, cb) -> - if (options.cache?) and options.cache - eng = e - else - eng = new engine { verbose: false, prettyPrintErrors: true } + eng = if options.cache then e else cacheless_engine eng.run filename, options, (err, res) -> - if err - if typeof(err) is "string" - err = new Error err - cb err - else - cb null, res + cb err, res # consolidate.js wants this, but it might generally be useful # -------------------------------------------- diff --git a/index.js b/index.js index fe0e9a4..6e72198 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { - var e, engine, getCommonHeaders, getCommonHeadersJs, to_express, view, __express, _ref; + var cacheless_engine, e, engine, getCommonHeaders, getCommonHeadersJs, to_express, view, __express, _ref; engine = require('./lib/engine').engine; @@ -21,6 +21,12 @@ exports.render = e.run; + cacheless_engine = new engine({ + verbose: false, + prettyPrintErrors: true, + cache: false + }); + exports.compileStr = function(template_str, options) { var v; v = new view(template_str, options); @@ -48,23 +54,9 @@ exports.__consolidate_engine_render = function(filename, options, cb) { var eng; - if ((options.cache != null) && options.cache) { - eng = e; - } else { - eng = new engine({ - verbose: false, - prettyPrintErrors: true - }); - } + eng = options.cache ? e : cacheless_engine; return eng.run(filename, options, function(err, res) { - if (err) { - if (typeof err === "string") { - err = new Error(err); - } - return cb(err); - } else { - return cb(null, res); - } + return cb(err, res); }); }; diff --git a/lib/command_line.js b/lib/command_line.js index a7658d0..81fe5ff 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, run, view, _ref; @@ -20,17 +20,17 @@ }; program.on('--help', function() { - return console.log("\n Examples: \n \n toffee views # recurses through views and builds views.js \n toffee foo.toffee # builds foo.js \n toffee views -o templates # builds templates.js \n toffee -p foo.toffee # outputs JS to stdout \n \n \n Then use in your : \n \n \n \n"); + return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); }); program.version(getVersionNumber()).option('-o, --output [path]', 'file (bundles all output into a single .js)').option('-d, --output_dir [path]', 'compiles templates into parallel .js files').option('-p, --print', 'print to stdout').option('-m, --minimize', 'minimize output (ugly, smaller file(s))').option('-c, --coffee', 'output to CoffeeScript (not JS)').option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates').option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)').parse(process.argv); compile = function(start_path, full_path) { - /* e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - */ + */ + var bundle_path, output, source, v; source = fs.readFileSync(full_path, 'utf8'); bundle_path = full_path.slice(start_path.length); diff --git a/lib/consts.js b/lib/consts.js index 31125bd..9a81c38 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { exports.states = { TOFFEE: 1, diff --git a/lib/engine.js b/lib/engine.js index 518ce4e..c9ac735 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, sandboxCons, states, tweakables, util, utils, view, vm, _ref, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; @@ -40,6 +40,7 @@ this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.prettyLogErrors = options.prettyLogErrors != null ? options.prettyLogErrors : true; this.autoEscape = options.autoEscape != null ? options.autoEscape : true; + this.cache = options.cache != null ? options.cache : true; this.additionalErrorHandler = options.additionalErrorHandler || null; this.viewCache = {}; this.fsErrorCache = {}; @@ -77,7 +78,6 @@ }; engine.prototype.run = function(filename, options, cb) { - /* "options" contains the pub vars and may contain special items: layout: path to a template expecting a body var (express 2.x style, but for use with express 3.x) @@ -87,7 +87,8 @@ __toffee.noInheritance: if true, don't pass variables through unless explicitly passed __toffee.repress if true, don't output anything; useful with including definition files with passback of vars __toffee.autoEscape: if set as false, don't escape output of #{} vars by default - */ + */ + var err, k, layout_options, post_process, res, v, _ref1, _ref2, _ref3, _ref4, _ref5; if (options.prettyPrintErrors == null) { options.prettyPrintErrors = this.prettyPrintErrors; @@ -142,42 +143,39 @@ }; engine.prototype.runSync = function(filename, options) { - /* "options" the same as run() above - */ - var ctx, err, realpath, res, start_time, v, _ref1, _ref2, _ref3; + */ + + var ctx, err, realpath, res, start_time, v, _ref1, _ref2, _ref3, + _this = this; start_time = Date.now(); options = options || {}; options.__toffee = options.__toffee || {}; options.__toffee.dir = options.__toffee.dir || process.cwd(); realpath = this.normalizeFilename(options.__toffee.dir, filename); - v = (this._viewCacheGet(realpath)) || (this._loadCacheAndMonitor(realpath, options)); + if (this.cache) { + v = (this._viewCacheGet(realpath)) || (this._loadCacheAndMonitor(realpath, options)); + } else { + v = this._loadWithoutCache(realpath, options); + } if (v) { if (this.fsErrorCache[realpath]) { _ref1 = [new Error("Couldn't load " + realpath), null], err = _ref1[0], res = _ref1[1]; } else { options.__toffee.parent = realpath; - options.partial = options.partial || (function(_this) { - return function(fname, lvars) { - return _this._fn_partial(fname, lvars, realpath, options); - }; - })(this); - options.snippet = options.snippet || (function(_this) { - return function(fname, lvars) { - return _this._fn_snippet(fname, lvars, realpath, options); - }; - })(this); - options.load = options.load || (function(_this) { - return function(fname, lvars) { - return _this._fn_load(fname, lvars, realpath, options); - }; - })(this); - options.print = options.print || (function(_this) { - return function(txt) { - return _this._fn_print(txt, options); - }; - })(this); + options.partial = options.partial || function(fname, lvars) { + return _this._fn_partial(fname, lvars, realpath, options); + }; + options.snippet = options.snippet || function(fname, lvars) { + return _this._fn_snippet(fname, lvars, realpath, options); + }; + options.load = options.load || function(fname, lvars) { + return _this._fn_load(fname, lvars, realpath, options); + }; + options.print = options.print || function(txt) { + return _this._fn_print(txt, options); + }; if (options.console == null) { options.console = { log: console.log @@ -267,6 +265,22 @@ } }; + engine.prototype._loadWithoutCache = function(filename, options) { + var e, txt, v, view_options, _ref1; + try { + txt = fs.readFileSync(filename, 'utf8'); + } catch (_error) { + e = _error; + txt = "Error: Could not read " + filename; + if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { + txt += " first requested in " + options.__toffee.parent; + } + } + view_options = this._generateViewOptions(filename); + v = new view(txt, view_options); + return v; + }; + engine.prototype._loadCacheAndMonitor = function(filename, options) { var e, previous_fs_err, txt, v, view_options, _ref1; previous_fs_err = this.fsErrorCache[filename] != null; @@ -295,34 +309,33 @@ }; engine.prototype._reloadFileInBkg = function(filename, options) { - return fs.readFile(filename, 'utf8', (function(_this) { - return function(err, txt) { - var ctx, v, view_options, _ref1; - if (err || (txt !== _this.viewCache[filename].txt)) { - if (err) { - _this.fsErrorCache[filename] = Date.now(); - txt = "Error: Could not read " + filename; - if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } + var _this = this; + return fs.readFile(filename, 'utf8', function(err, txt) { + var ctx, v, view_options, _ref1; + if (err || (txt !== _this.viewCache[filename].txt)) { + if (err) { + _this.fsErrorCache[filename] = Date.now(); + txt = "Error: Could not read " + filename; + if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { + txt += " requested in " + options.__toffee.parent; } - if (!(err && _this.viewCache[filename].fsError)) { - view_options = _this._generateViewOptions(filename); - ctx = _this.pool.get(); - view_options.ctx = ctx; - view_options.cb = function(v) { - _this._log("" + filename + " updated and ready"); - _this.viewCache[filename] = v; - return _this.pool.release(ctx); - }; - if (err) { - view_options.fsError = true; - } - return v = new view(txt, view_options); + } + if (!(err && _this.viewCache[filename].fsError)) { + view_options = _this._generateViewOptions(filename); + ctx = _this.pool.get(); + view_options.ctx = ctx; + view_options.cb = function(v) { + _this._log("" + filename + " updated and ready"); + _this.viewCache[filename] = v; + return _this.pool.release(ctx); + }; + if (err) { + view_options.fsError = true; } + return v = new view(txt, view_options); } - }; - })(this)); + } + }); }; engine.prototype._generateViewOptions = function(filename) { @@ -338,29 +351,28 @@ }; engine.prototype._monitorForChanges = function(filename, options) { - /* we must continuously unwatch/rewatch because some editors/systems invoke a "rename" event and we'll end up following the wrong, old 'file' as a new one is dropped in its place. Files that are missing are ignored here because they get picked up by new calls to _loadCacheAndMonitor - */ - var e, fsw; + */ + + var e, fsw, + _this = this; if (this.fsErrorCache[filename] == null) { fsw = null; try { this._log("" + filename + " starting fs.watch()"); return fsw = fs.watch(filename, { persistent: true - }, (function(_this) { - return function(change) { - _this._log("" + filename + " closing fs.watch()"); - fsw.close(); - _this._monitorForChanges(filename, options); - return _this._reloadFileInBkg(filename, options); - }; - })(this)); + }, function(change) { + _this._log("" + filename + " closing fs.watch()"); + fsw.close(); + _this._monitorForChanges(filename, options); + return _this._reloadFileInBkg(filename, options); + }); } catch (_error) { e = _error; this._log("fs.watch() failed for " + filename + "; settings fsErrorCache = true"); diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 96f1ea4..fece7e0 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var errorTypes, path, toffeeError, util, _ppEscape, __hasProp = {}.hasOwnProperty, @@ -41,7 +41,6 @@ } toffeeError.prototype.getConvertedError = function() { - /* -------------------------------------- returns a JS style error, but with some extras { @@ -52,7 +51,8 @@ ...etc... } ------------------------------------------ - */ + */ + var line, res, _ref, _ref1, _ref2; res = { stack: [], @@ -105,11 +105,11 @@ }; toffeeError.prototype._convertRuntimeStackLines = function(converted_err) { - /* a little more complicated, so extracted. Returns an array of dictionaries where there's extra info on each line in the stack. - */ + */ + var at_pub_call, hit_pub_yet, i, in_src_file, line, lineno, lrange, m, rxx_inline, rxx_pub, stack, _i, _len, _results; hit_pub_yet = false; stack = converted_err.stack; @@ -156,10 +156,10 @@ }; toffeeError.prototype.getPrettyPrintText = function() { - /* returns a TEXT only blob explaining the error - */ + */ + var cerr, count, header, i, item, res, _i, _len, _ref, _ref1; cerr = this.getConvertedError(); header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; @@ -189,11 +189,11 @@ }; toffeeError.prototype.getPrettyPrint = function() { - /* returns an HTML blob explaining the error with lines highlighted - */ + */ + var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4; cerr = this.getConvertedError(); res = ""; @@ -270,12 +270,12 @@ }; toffeeError.prototype._convertOffensiveLineToToffeeRange = function(lineno) { - /* Given the error line in a converted file, hunts for surrounding __toffee.lineno calls and returns a pair array with the error position range in the original toffee file. - */ + */ + var next, next_matches, ol, prev, prev_matches, res, tl; ol = this.offensiveSrcLines; tl = this.toffeeSrcLines; diff --git a/lib/pool.js b/lib/pool.js index 16ab81f..34e4fd7 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var Pool; diff --git a/lib/utils.js b/lib/utils.js index 8b7bdf4..45f1cfa 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var lex, lexer; @@ -7,12 +7,12 @@ lex = new lexer.Lexer(); exports.interpolateString = function(str) { - /* Similar to the interpolateString function in CoffeeScript, except that it doesn't actually work on anything inside an outer #{}; we're just looking to recognize them. - */ + */ + var expr, i, inner, interpolated, letter, pi, res, tag, tokens, value, _i, _len, _ref; tokens = []; res = []; diff --git a/lib/view.js b/lib/view.js index 7264dfe..fbcc0da 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.7.1 +// Generated by CoffeeScript 1.6.3 (function() { var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, spaces, states, tabs, toffeeError, util, utils, view, vm, _ref, _ref1; @@ -62,24 +62,24 @@ }; getCommonHeaders = function(tab_level, include_bundle_headers, auto_escape) { - /* each view will use this, or if they're bundled together, it'll only be used once. include_bundle_headers: includes some functions needed for browser use - */ + */ + var __; __ = tabs(tab_level); return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o? then return \"null\"\n" + __ + " else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { - /* header stuff only needed when compiling to a JS file - */ + */ + var __; __ = tabs(tab_level); return "\n\n" + __ + "toffee.__print = (locals, o) ->\n" + __ + " if locals.__toffee.state is toffee.states.COFFEE\n" + __ + " locals.__toffee.out.push o\n" + __ + " return ''\n" + __ + " else\n" + __ + " return \"\#{o}\"\n\n" + __ + "toffee.__normalize = (path) ->\n" + __ + " if (not path?) or path is \"/\"\n" + __ + " return path\n" + __ + " else\n" + __ + " parts = path.split \"/\"\n" + __ + " np = []\n" + __ + " # make sure path always starts with '/'\n" + __ + " if parts[0]\n" + __ + " np.push ''\n" + __ + " for part in parts\n" + __ + " if part is \"..\"\n" + __ + " if np.length > 1\n" + __ + " np.pop()\n" + __ + " else\n" + __ + " np.push part\n" + __ + " else\n" + __ + " if part isnt \".\"\n" + __ + " np.push part\n" + __ + " path = np.join \"/\"\n" + __ + " if not path then path = \"/\"\n" + __ + " return path\n\n" + __ + "toffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.noInheritance = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__load = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.repress = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__inlineInclude = (path, locals, parent_locals) ->\n" + __ + " options = locals or {}\n" + __ + " options.passback = {}\n" + __ + " options.__toffee = options.__toffee or {}\n" + __ + "\n" + __ + " # we need to make a shallow copy of parent variables\n" + __ + " reserved = {}\n" + __ + " reserved[k] = true for k in [\"passback\", \"load\", \"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\", \"postProcess\"]\n" + __ + " if not options.__toffee.noInheritance\n" + __ + " for k,v of parent_locals when not locals?[k]?\n" + __ + " if not reserved[k]?\n" + __ + " options[k] = v\n" + __ + "\n" + __ + " if not toffee.templates[path]\n" + __ + " return \"Inline toffee include: Could not find \#{path}\"\n" + __ + " else\n" + __ + " res = toffee.templates[path].pub options\n" + __ + " for k,v of options.passback\n" + __ + " parent_locals[k] = v\n" + __ + " return res"; @@ -99,11 +99,12 @@ view = (function() { function view(txt, options) { - /* important options: cb: if this is set, compilation will happen async and cb will be executed when it's ready - */ + */ + + var _this = this; options = options || {}; this.fileName = options.fileName || options.filename || null; this.bundlePath = options.bundlePath || "/"; @@ -122,21 +123,19 @@ this.fun = null; this.error = null; if (options.cb) { - this._prepAsync(txt, options.ctx, ((function(_this) { - return function() { - return options.cb(_this); - }; - })(this))); + this._prepAsync(txt, options.ctx, (function() { + return options.cb(_this); + })); } } view.prototype._prepAsync = function(txt, ctx, cb) { - /* Only once it's fully compiled does it callback. Defers via setTimeouts in each stage in the compile process for CPU friendliness. This is a lot prettier with iced-coffee-script. - */ + */ + var v; this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async."); this._toTokenObj(); @@ -166,10 +165,10 @@ }; view.prototype._cleanTabs = function(obj) { - /* replaces tabs with spaces in their coffee regions - */ + */ + var item, _i, _len, _ref2, _ref3, _results; if ((_ref2 = obj[0]) === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { _ref3 = obj[1]; @@ -185,10 +184,10 @@ }; view.prototype.run = function(options, ctx) { - /* returns [err, str] - */ + */ + var fun, line, pair, res, txt, _i, _len, _ref2; ctx = ctx || vm.createContext({}); fun = this._toFun(ctx); @@ -228,10 +227,10 @@ }; view.prototype._toTokenObj = function() { - /* compiles Toffee to token array - */ + */ + if (this.tokenObj == null) { try { this.tokenObj = parser.parse(this.txt); @@ -334,10 +333,10 @@ }; view.prototype._snippetIsSoloToken = function(str) { - /* if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. - */ + */ + if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { return true; } @@ -432,12 +431,12 @@ }; view.prototype._quoteStr = function(s) { - /* returns a triple-quoted string, dividing into single quoted start and stops, if the string begins with double quotes, since coffee doesn't want to let us escape those. - */ + */ + var follow, lead, res; lead = ""; follow = ""; @@ -471,11 +470,11 @@ }; view.prototype._escapeForStr = function(s) { - /* escapes a string so it can make it into coffeescript triple quotes without losing whitespace, etc. - */ + */ + s = s.replace(/\\/g, '\\\\'); s = s.replace(/\n/g, '\\n'); s = s.replace(/\t/g, '\\t'); @@ -516,13 +515,13 @@ }; view.prototype._getIndentationDelta = function(coffee, baseline) { - /* given an arbitrarily indented set of coffeescript, returns the delta between the first and last lines, in chars. Ignores leading/trailing whitespace lines If passed a baseline, uses that instead of own. - */ + */ + var lines, res, y, y_l; if (baseline == null) { baseline = this._getIndentationBaseline(coffee); diff --git a/package.json b/package.json index 20be5d2..52d24c2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.7", + "version": "0.1.8", "directories": { "lib": "./lib" }, @@ -16,10 +16,12 @@ "highlight.js": "*" }, "devDependencies": { - "jison" : "*", - "zombie": "*", - "assert": "*", - "express": "*" + "jison" : "*", + "zombie": "*", + "assert": "*", + "express": "*", + "tablify": "*", + "iced-coffee-script": "*" }, "repository": { "type": "git", diff --git a/src/engine.coffee b/src/engine.coffee index cabc862..316e889 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -22,6 +22,7 @@ class engine @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @prettyLogErrors = if options.prettyLogErrors? then options.prettyLogErrors else true @autoEscape = if options.autoEscape? then options.autoEscape else true + @cache = if options.cache? then options.cache else true @additionalErrorHandler = options.additionalErrorHandler or null @viewCache = {} # filename -> view @@ -115,7 +116,10 @@ class engine options.__toffee.dir = options.__toffee.dir or process.cwd() realpath = @normalizeFilename options.__toffee.dir, filename - v = (@_viewCacheGet realpath) or (@_loadCacheAndMonitor realpath, options) + if @cache + v = (@_viewCacheGet realpath) or (@_loadCacheAndMonitor realpath, options) + else + v = @_loadWithoutCache realpath, options if v if @fsErrorCache[realpath] @@ -192,6 +196,17 @@ class engine else return txt + _loadWithoutCache: (filename, options) -> + try + txt = fs.readFileSync filename, 'utf8' + catch e + txt = "Error: Could not read #{filename}" + if options.__toffee?.parent? then txt += " first requested in #{options.__toffee.parent}" + + view_options = @_generateViewOptions filename + v = new view txt, view_options + return v + _loadCacheAndMonitor: (filename, options) -> previous_fs_err = @fsErrorCache[filename]? try diff --git a/test/express3/public/javascripts/toffee.js b/test/express3/public/javascripts/toffee.js index 482625c..73ffca5 100644 --- a/test/express3/public/javascripts/toffee.js +++ b/test/express3/public/javascripts/toffee.js @@ -1,7 +1,5 @@ var toffee; - - if (typeof toffee === "undefined" || toffee === null) { toffee = {}; } diff --git a/test/run_cases.coffee b/test/run_cases.coffee deleted file mode 100644 index e67a130..0000000 --- a/test/run_cases.coffee +++ /dev/null @@ -1,102 +0,0 @@ -{engine} = require '../lib/engine' -fs = require 'fs' -path = require 'path' -zombie = require 'zombie' -coffee = require 'coffee-script' - -regular_engine = new engine({ - verbose: false - prettyPrintErrors: false -}) - -minimized_engine = new engine({ - verbose: false - prettyPrintErrors: false - minimize: true -}) - -# --------------------------------------------------------------- - -run_case_dir = (eng, dir, cb) -> - expected = fs.readFileSync "#{dir}/output.toffee", "utf8" - existsSync = if path.existsSync? then path.existsSync else fs.existsSync - if existsSync "#{dir}/vars.coffee" - txt = fs.readFileSync "#{dir}/vars.coffee", "utf8" - vars = coffee.compile(txt, {bare: true}) - vars = eval "#{vars}" - else if existsSync "#{dir}/vars.js" - vars = fs.readFileSync "#{dir}/vars.js", "utf8" - vars = eval "(#{vars})" - else - vars = {} - d = Date.now() - eng.run "#{dir}/input.toffee", vars, (err, res) -> - time_ms = Date.now() - d - if err - cb err, time_ms - else - if res isnt expected - cb "Failure in case #{dir}." + - "\n\nExpected\n=====\n#{expected}\n=====" + - "\nGot\n=====\n#{res}\n=====\n", time_ms - else - cb null, time_ms - -run_all_case_dirs = (eng, cb) -> - time_ms = 0 - case_dirs = fs.readdirSync "#{__dirname}/cases/" - countdown = case_dirs.length - for dir in case_dirs - run_case_dir eng, "#{__dirname}/cases/#{dir}", (err, ms) -> - countdown-- - time_ms += ms - if err - console.log err - process.exit 1 - if countdown is 0 - cb null, time_ms, case_dirs.length - -run_multiple_runs = (eng, num_runs, cb) -> - times = [] - countdown = num_runs - total_time = 0 - total_tests = 0 - for i in [0...num_runs] - run_all_case_dirs regular_engine, (err, time, tests_run) -> - countdown-- - total_time += time - total_tests += tests_run - if countdown is 0 - cb null, total_time, total_tests - - -run_express_test = (cb) -> - require('./express3/app').run -> - zombie.visit 'http://localhost:3033', (e, browser) -> - if e - console.log e - $ = browser.window.$ - successes = $('.success').length - fails = $('.fail').length - if (fails is 0) and (successes > 0) - return cb() - console.log "BROWSER ERROR! Server left running at http://localhost:3033 for your convenience" - -# ---------------------------------------------------------------- -go = -> - run_all_case_dirs regular_engine, (err, time, tests_run) -> - console.log "Regular Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - run_multiple_runs regular_engine, 30, (err, time, tests_run) -> - console.log "Regular Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - run_all_case_dirs minimized_engine, (err, time, tests_run) -> - console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - run_multiple_runs minimized_engine, 30, (err, time, tests_run) -> - console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - run_express_test -> - console.log "Browser: SUCCESS for tests at http://localhost:3033; server terminated successfully" - process.exit 0 - -if not module.parent? - go() - -else exports.test = go diff --git a/test/run_cases.iced b/test/run_cases.iced new file mode 100644 index 0000000..904eb1c --- /dev/null +++ b/test/run_cases.iced @@ -0,0 +1,108 @@ +{engine} = require '../lib/engine' +fs = require 'fs' +path = require 'path' +zombie = require 'zombie' +coffee = require 'coffee-script' +tablify = require 'tablify' + +regular_engine = new engine({ + verbose: false + prettyPrintErrors: false +}) + +minimized_engine = new engine({ + verbose: false + prettyPrintErrors: false + minimize: true +}) + +# --------------------------------------------------------------- + +MULTI_RUNS = 50 + +file_cache = {} + +# --------------------------------------------------------------- + +read_file_sync = (fname) -> + if not file_cache[fname]? + file_cache[fname] = fs.readFileSync fname, "utf8" + return file_cache[fname] + +# --------------------------------------------------------------- + +run_case_dir = (eng, dir, cb) -> + start = Date.now() + expected = read_file_sync "#{dir}/output.toffee" + existsSync = if path.existsSync? then path.existsSync else fs.existsSync + if existsSync "#{dir}/vars.coffee" + txt = read_file_sync "#{dir}/vars.coffee" + vars = coffee.compile(txt, {bare: true}) + vars = eval "#{vars}" + else if existsSync "#{dir}/vars.js" + vars = read_file_sync "#{dir}/vars.js" + vars = eval "(#{vars})" + else + vars = {} + vars["rand_#{Math.random()}"] = ("foo" for i in [0...(~~(20000*Math.random()))]).join "" + await eng.run "#{dir}/input.toffee", vars, defer err, res + time_ms = Date.now() - start + if err + cb err, time_ms + else + if res isnt expected + cb "Failure in case #{dir}." + + "\n\nExpected\n=====\n#{expected}\n=====" + + "\nGot\n=====\n#{res}\n=====\n", time_ms + else + cb null, time_ms + +run_all_case_dirs = (eng, cb) -> + start = Date.now() + case_dirs = fs.readdirSync "#{__dirname}/cases/" + for dir in case_dirs + await run_case_dir eng, "#{__dirname}/cases/#{dir}", defer err, ms + if err + console.log err + process.exit 1 + cb null, (Date.now() - start), case_dirs.length + +run_multiple_runs = (eng, num_runs, cb) -> + total_tests = 0 + start = Date.now() + for i in [0...num_runs] + await setTimeout defer(), 1 + await run_all_case_dirs regular_engine, defer err, time, tests_run + total_tests += tests_run + cb null, (Date.now() - start), total_tests + +run_express_test = (cb) -> + require('./express3/app').run -> + zombie.visit 'http://localhost:3033', (e, browser) -> + if e + console.log e + $ = browser.window.$ + successes = $('.success').length + fails = $('.fail').length + if (fails is 0) and (successes > 0) + console.log "Express SUCCESS: #{successes} succeeded, #{fails} failed" + return cb() + console.log "BROWSER ERROR! Server left running at http://localhost:3033 for your convenience" + +# ---------------------------------------------------------------- +go = -> + await run_all_case_dirs regular_engine, defer err, time, tests_run + console.log "Regular Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + await run_multiple_runs regular_engine, MULTI_RUNS, defer err, time, tests_run + console.log "Regular Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + await run_all_case_dirs minimized_engine, defer err, time, tests_run + console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + await run_multiple_runs minimized_engine, MULTI_RUNS, defer err, time, tests_run + console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + await run_express_test defer() + process.exit 0 + +if not module.parent? + go() + +else exports.test = go diff --git a/toffee.js b/toffee.js index 482625c..73ffca5 100644 --- a/toffee.js +++ b/toffee.js @@ -1,7 +1,5 @@ var toffee; - - if (typeof toffee === "undefined" || toffee === null) { toffee = {}; } From 2b30413adfcd4fa6c23da9aca16442da74b73749 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 22 May 2014 12:05:54 -0400 Subject: [PATCH 138/163] signing toffee... --- SIGNED.md | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 SIGNED.md diff --git a/SIGNED.md b/SIGNED.md new file mode 100644 index 0000000..8202119 --- /dev/null +++ b/SIGNED.md @@ -0,0 +1,242 @@ +##### Signed by https://keybase.io/chris +``` +-----BEGIN PGP SIGNATURE----- +Version: GnuPG/MacGPG2 v2.0.22 (Darwin) +Comment: GPGTools - https://gpgtools.org + +iQIcBAABCgAGBQJTfiBAAAoJENIkQTsc+mSQW1wP/AhGolTn73gJX4wIray/naOg +7BxYeIt7k7RS4YxMcaaT8NtvK6N6oEcUTcWINjT6rMnRTzLE56XiegdzBzp4I+na +HAdMOwvDNmGziDx6Fstcw/eIYdUHOeQkfeUZNW2/RxVwcMcUbIs7cBflGFL1DUKK +xjqGE+Kbck6mkblaNBvqWHbp/ZmjbyZVMSqDTysk/RiqqcjBBNBlcJNgSQeNcxm6 +bUmIMX4jzfd5OTHvWqn2/XdvwmLAXE1kZ1ap1/uU9qKw+Y5pHA+MgfptxifrMk4f +G3ZryRSABuuqQV0VEjyt1s4nhEFCX7iur2qSbWEtweLJRqRU/2sn073oDt87Jsgw +mmrJMFWMEyKyw6i+xWOs0W5vmq/rHbYg5yk0LDD4awtJ2UmnIngZjo86JGWXVywL +zugvzxPSZECJTiYWrYYeQOa72xZKJqdDQzjj3n2U2AdaYCpw/TpnGDaqCxXQliSQ +uEWjGi1Kh8e/kGdEvgbXgvqlGi24sh/OMh0wNOQS3+xpbp+5zpP+lvBEuSMtNfst +Al3DpkCSIKa6+FVAaJi7yzkZElGQcCw8QtOMDIxYY6glnBkzgaWUo9rsRgip5Rpa +C4+RxnYkPrfvFvOXThE+w0kJbNHSbBRmAfySwhWwgP0HsF/HtRYUCmIUnLWBn8xG ++MmYw7Qcwz/n8nciWNkE +=/OyP +-----END PGP SIGNATURE----- + +``` + + + +### Begin signed statement + +#### Expect + +``` +size exec file contents + ./ +24 .gitignore 4419468a0a62e000bee4fab5c85876e287a6313001de5c9305bf849488829314 +1800 Cakefile 2f3b1709f19ace9827bfd464d141382ff01b7f86d45cd1faed6bfee906fdcd9a +1079 LICENSE edb721bca3cfa08423f93741d60300f28350af960238477fe89826e19fc3dfa9 +13715 README.md 44a697135c4145b598a812e7d904781faf772d384e8859c2767fea4be8afffb4 + bin/ +57 toffee 616023d8f8b8dbb5450051ddc21c8887829fba38dc3341feaaa3ffd5afd3ee8c +2099 index.coffee a121e739dd5e8013bc40e217f2a6529a39b2e6424297410565866667bb124603 +1866 index.js f897f1995a661aea7b4a1fdc300de342cb0556b751900dd50269c158dc1122b8 + lib/ +0 README.md e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + coffee-script/ +2313 browser.js 3a8acdd99e1fd83dd6fea7ef373e5f8255a8dc5f8fa1bcb21e0426598ac9b4b7 +2970 cake.js ded7e20bfe4b8e2112b07a37c2fdc61bd4da21fb2e71deab72975d04c0fe126d +4831 coffee-script.js 27975b854116004d266f10f49ac1072912a94b004d368187f2f4f40926c1d644 +15518 command.js f005bdbfb4d5b35be6e20e283dddb20d96be056415712a6411f8b338528368f5 +18038 grammar.js c65d4fd04403bf823c51567749a5caca1a3e5987f73e3f1abea58462cbbfd0ad +1752 helpers.js 750cf58eba15b5070844a34ac5f5f37dc6fdbfbb4cfcd53c3f63574fb554b73f +196 index.js 6a8b57040e86aeaa2a2f2553454dd89246c6d5d666ae51542f022343d10fbb67 +25558 lexer.js 1ab66ee1ec19c0a6831ffc279a529f80677357dc14d3498b00b227f12e98945d +91732 nodes.js ad6999209ccbd157ba6f67aaaeca6ceca2db3805f2a3fd21cebfa95e2cb47408 +4141 optparse.js 6213d5ca1dc72cb0c98ceea0c7df30bbc0dc146d1304c9c46d22dd1434145573 +104572 x parser.js 8bd20f0ae5104feeb1de543dabb5e130194d4e96db75516d20201f31e6ac7823 +6135 repl.js 759e4ea22666f17c242afa77c2d9b8f1ecacea6fd84ef6baf60bfae22703d38e +13147 rewriter.js 60953a1842db7d19552b4707d7f29d74ef6d43ffc8eae8a2711689034790a154 +3696 scope.js 1cdf8a1b877644a9a23dccedcaaa51561ddf3d352fe178499cba0082daa50c3a +5706 command_line.js 1569632c69e36cbf6f9da16486b20972a7b5e362636a55d278650bca0aeb7c83 +209 consts.js 7973d407737548d3de549250f031d454989597dd9538684dde119099cd361de7 +14171 engine.js edd6e4f7d876a0bcaf62e5d649adf4f59973c86b42f9fb36e6433454a3554590 +12366 errorHandler.js 273739c9ef121e9620eb12757727d956cefe063b00d1c14d0c5d5682df9cf749 +571 pool.js 2f83097467cbde33e9f1d091a6e31b524ea43bf9e97ef05ba35ae641182f3e90 +23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 +1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 +25118 view.js a3e6239a1fcad055480c5f85f0865b9900db8b311371e1195519747a6164f01e +859 package.json ce699e01cf0550d0032620b6888b61c23ddb3fd0a12419ba0e27fe58ffb3115c + src/ +5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 +197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e +10749 engine.coffee 7b8d66073adecaa4231df5122f4e41df20a294f02f38ea78b0629c2c0a62d26a +8853 errorHandler.coffee 997fb14e397541edde3d8567008099b54d976bce4ccf6034449e13d66b883828 +270 pool.coffee b493416ba61c6d2f98b713b7f30cc8002142c26205be21653a00f7c11ea1b6c4 +2604 toffee.jison 8d040196ea79ed3676b5874f8d85da3849cc3ad82ecaeba212a4194033bfb72e +1227 utils.coffee efd639a91f7cca74fdc138743aeb572bcaffc2c151d9a8a89bf31e3d3c798873 +18996 view.coffee 6d55d928827a30db1d6ae8abb331e1839628688a70ef17ab98918421431dfcfd + test/ + cases/ + big_file/ +2456 input.toffee 02bcbba28b6754a3cdc72481960efc7a3bd6ede131d426fea62f9f32e26a2259 +2156 output.toffee 80467ff63e3e8233fbeffe8b0da2fbb96e5384045e60a4f8c59809efcb090156 + comments/ +317 input.toffee e20c9441fa793370b167b00b73fbc956d060da7a7162c43c152c03784ec6fdca +24 output.toffee 5d4c2d98524149b07d2986f0475a83a382d73b1cf5840d42c0e4c4c176e18d07 +24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 + custom_escape/ +206 input.toffee 9e4f25cfdc84dd1a38bace63034d4c56d7a67baac58ae66dc43082a349e170b1 +115 output.toffee 822f9b4a37b1c5a7f61bf354c5f52e7e090eaea13534a3411d94528b2509da89 +53 vars.coffee 265ec2c5e35604fffa79a41d97a626da7a1e69c685b0a2adffd55a5c172bea0c + eco_compare/ +617 input.toffee 456626b2d9c49c4291c5b64df547214acc210ae67335a59e0d2a3e92784baea8 +203 output.toffee bc5e3025cc24a38bc7aec447a9b4a69731c4f07366a44dab13b31779175e9059 + escape/ +1038 input.toffee 0cc9d7afb9aa641f451bc4d55a55b071e0d66be5019c931d705f83864851e6aa +895 output.toffee adaf052e1974dd16a3d203cf0c51a028af102de0929eebe411eb43f2f05ad0e2 + hello_world/ +19 input.toffee 43b2a2d9caf2b2fd07e0c9f6651e1d8dbe693b597ed4c41b41ae6e215730b939 +13 output.toffee f8c3bf62a9aa3e6fc1619c250e48abe7519373d3edf41be62eb5dc45199af2ef +28 temp.toffee 7088f0e7c3207ed5dde1a969035b83241d4ec62a6db679f105dd55d0e5eb1735 +24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 + include_order/ +20 child.toffee c2ee155aeb89085add713694bdadd2f92a0e6a6d89b054a6b448c75c1bc2cbf8 +79 input.toffee 785d474720d378a28724003b1d94131ff3f724974a63a0f094d95871d9ebd7f8 +14 output.toffee a711de3fcda696d28cab35f732d690ee8c446cc8af8a2049d7d3c41d907a7e22 +24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 + include_recursion/ +127 input.toffee a8e2eace272f32f2fc6598c39b518177411ff3bf8008693829f765dbc4c137dd +50 output.toffee 2061768abd3870bd58c6002650f4ebae501fc06495c9a89797475393d5510561 +21 vars.js 438a45f3c507117768bb5af1ad27dc604a8a7398e2faf907814630821eed032b + include_techniques/ +274 input.toffee 51a9fc1e20887218aa74a123b3b634f1b96ad03c9dc0bd85bde87c3fec1f5427 +68 message.toffee f866e3afbbc0db4e394d2d6832eb597be91b36d67115bd9042e5f8989965d176 +200 output.toffee dc2bc1b481a6a15f07b66a12c7ba102394bbeda7ef4a4e86f05a21d14d3596d0 +3 vars.js 8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede + indent_attack/ +1762 input.toffee 59dd9a39b05767cb8c80b11b1113420ce2c753d2fe661f4f32b104693a2555fc +192 output.toffee 0ff715dc431004bf322d551c81dde757f93615a80a9e412d5bf2d68bde5ba65a +3 vars.js 8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede + junk/ +109 input.toffee 55aa69e33431cf820634507ff2ad2c6afa3a3327e9177f37335f8c4ac4f8bcb0 +54 output.toffee 0714ffef629025cb57726e48e70ebab15d1bac4bbac0f04594e660ffef40bde3 + lambda_fns/ +239 input.toffee 0e4e340bd240dee1b4dafcb9a675181a5b73d898d177306a90b02e167deac5f7 +16 output.toffee 60046c735d209935d8c864d2959fe28ab28f3de0be88f5420393a90d72c584aa + multiline_interpolation/ +9 foo.toffee 5cc9132ad0c9fb8c41737ac2d4effad0d5b8cc984974335fc41524c0c9b48670 +114 input.toffee 9823b223ef8a1a97b56dccf838f644923fbd1a5dfdd58fa0bbff7910973bfb6e +34 output.toffee 4dbeb1b85a92efda6539abba91e9d99a2f10ba08729dca4cc6718b780d7c5020 + passback/ +125 const1.toffee 3ec02d5e9ca6eda8a51cd0dd8f0fc3cfade310c1542cf3b520256129b0ccd844 +123 const2.toffee 200fcd238ff2636694509ede71f39ec17e4bc59d8db3382dcdf2a3463a3211d7 +85 const3.toffee c4f83cf02233af721f1121859d0ed4f18750fab2eed36fabf83e532c3731f115 +112 const4.toffee a5c93df2c2f412f34abbc97a94bde44619a394a6cee74d9345c9f8fb200caf8b +91 const4_sub.toffee d9ef89bbfdae1b61eeb1330a6c279b4170239b05ff8e0c86d13a8e5ff133ea56 +155 const5.toffee 2e5d632e15032f5a961a8c45f3d0ffba7c9ad71049a3082c6221cb64d6f881ed +91 const5_sub.toffee ad76455adf05740f87cb8b3e73d96cfffa47206251e34e8c7c7b1c31a21181d4 +306 input.toffee 1a7703ce985d3d1a01c9ca2435e97404d87ceda441d1508ce3f634434d6216e9 +165 output.toffee d266a8a2089f3f8a2e347d877849d65d741a11b72b407cfcf93d6c4c97b67446 +31 vars.js e76ba466c6bfa9787e11470b905bff9bb66da1c8462e430aa96445d6ba3c8a35 + plaintext/ +9 input.toffee 9e553732ce6857dab01b48ff43f7e36034745dd58097f55fb78478ab1db6c480 +9 output.toffee 9e553732ce6857dab01b48ff43f7e36034745dd58097f55fb78478ab1db6c480 + post_process/ +85 buncha_junk.toffee 3b30ce356aacf38faae0ca2025aeb22f03d4bb425d53954bb275ff4a5a73bffd +248 input.toffee d652f27762cb371ba84fd433c3f6b4bfe69a31b8dc87a0a021a6cd942f260fc6 +62 output.toffee a78e23a6435957626eece7232ce61784abaa0debd42d3d38c9e623020c060833 +21 signature.toffee b93c52abf45bca4a79c77de08ccc0030735dc52dee35c8ccb58046d94961de59 +74 vars.coffee 1b6e71bbd50ef6a4dc7c2c683c46d81dac89c0c06d458730e741b8e31c9494d3 + render_no_args/ +20 input.toffee a1496fb7a9ce860b101a5fece46d6da21e37791efe4aee33c0ae2fe4081af5a4 +20 output.toffee a1496fb7a9ce860b101a5fece46d6da21e37791efe4aee33c0ae2fe4081af5a4 + snippets/ + foo/ + bar/ +51 body.toffee fe64622c0935021bbfd52bfef5192bd285175ae6da19c74a2b2613fdd113eee7 +157 message.toffee 937e58afb29e39f9293d6e537d7640edab19a87f4a68cd9ef19d57d80a126ca1 +169 input.toffee 830382a921281cca5c9080b004c469c65ab72585a91e33438df1fa425c7b0e58 +135 output.toffee 855ce927d562d24287a692902ee93342a5233841ad64cd94ad47840f663de123 +62 vars.js 1558fb36bc1239149afbcf685dc20a4a254f1eaf414e85adb606c3bb20567492 + special_cases/ +345 input.toffee 9f70ec351d068a6557649a43c9d4ceb04b6deaea397c797115051c28b764badc +109 output.toffee e959c173c801867016c650558ff89260c104b1283e8427c370d5cbe6ad8808ec + express3/ +956 app.coffee 66ec99f0dc5cccf78aac27009c91f249dfa6bc54e9756902055b82fb4dd9d1f0 +187 package.json 34dffb3488b7ec1361ecc388a035544b79cca8053ee57c26b0c64cba7ff5d81b + public/ + javascripts/ +93068 jquery-1.9.0.min.js 7fa0d5c3f538c76f878e012ac390597faecaabfe6fb9d459b919258e76c5df8e +65233 test_cases.js 2799bc9ef13d5e3b9269720c9bfdb302c1e0dd6b99d68027c6aad278fdcc2c0b +4876 toffee.js e0a8f645b0bfe86fc2ddb4219b25495f0b0c5e7031f804ebc01d71fc22b052d3 + stylesheets/ +110 style.css 2828f3d789d881ac0a37ccff297b4574f40955c6b8278332166659cf6867b539 + routes/ +275 index.js b3e47f4c9ee9ba482faad605f09f610c224aadf28186ba4c47e8fcc567a0f8b6 + views/ +15548 index.toffee 517ddbe54b3a1558803a26b398e94a7d98044f174b79368d29b0a1617d761421 + subdir1/ +189 hello_world.toffee 34703cc458413e0ade4ebb311b1d355cb3f4f74c75edda0b50c207a464b0d6ff + subdir2/ + foo/ +22 goodbye.toffee edc531db6b50fbce4a7ad1319dfb9924ea09b90898a40e8c640c2ef838b47c8a +288 goodbye_world.toffee 53bd645cae89afc9bf1aa08e87b3f2247c49546cb4ae278de2552187ed0068e9 + express3_error_handling/ +1434 app.coffee 8617874065cd79e799d3d2fdb6f76c6abbdcdb7015b40292a3a45f8b70b6e14a +187 package.json 34dffb3488b7ec1361ecc388a035544b79cca8053ee57c26b0c64cba7ff5d81b + public/ + javascripts/ +93068 jquery-1.9.0.min.js 7fa0d5c3f538c76f878e012ac390597faecaabfe6fb9d459b919258e76c5df8e +65233 test_cases.js 2799bc9ef13d5e3b9269720c9bfdb302c1e0dd6b99d68027c6aad278fdcc2c0b +4878 toffee.js ece8df6211cc9770c5fb50f1a58d0273baa16880bbf14572c7f3a6f5e6fcf998 + stylesheets/ +110 style.css 2828f3d789d881ac0a37ccff297b4574f40955c6b8278332166659cf6867b539 + routes/ +287 index.js e4ce11715d151e9b76d2e8a8a1ceed5aeb9341d4cdd97a6c0933a7a9d21add82 + views/ +737 index.toffee ad9a70f7774bf503eb800a073eb16d75b069b0f355b2c9176f11f2a55cb23b32 +1237 test_bad_coffee_syntax.toffee c051232538906552b73326e5fc23459ff9af157bb9fd7999e121f6558cd3f532 +165 test_bad_runtime.toffee 3cf0b2d298653ee45be8fa17092f7ac64407b5be3e77ff403e8da753a75e412c +52 test_bad_str_interpolate.toffee 46c9f9e1f9e170b71612a0755748feaa5c7777fc15d81e1897d82cecf2e7d385 +56 test_bad_toffee_syntax.toffee cdfaf909adcbb51b293c67ecedc578379c1660774789fcbac8d156a1e35920f5 +3552 generate_express_test.coffee 871c655a5193f891f4658faa90ef56061776e01f69552d1966922cef7fcf894b +3758 run_cases.iced 3338df9b4cd47d189acc61612ded19bff670bed7047b902546991c80fa6b1f56 +4876 toffee.js e0a8f645b0bfe86fc2ddb4219b25495f0b0c5e7031f804ebc01d71fc22b052d3 +``` + +#### Ignore + +``` +/SIGNED.md +``` + +#### Presets + +``` +git # ignore .git and anything as described by .gitignore files +dropbox # ignore .dropbox-cache and other Dropbox-related files +kb # ignore anything as described by .kbignore files +``` + + + +### End signed statement + +
    + +#### Notes + +With keybase you can sign any directory's contents, whether it's a git repo, +source code distribution, or a personal documents folder. It aims to replace the drudgery of: + + 1. comparing a zipped file to a detached statement + 2. downloading a public key + 3. confirming it is in fact the author's by reviewing public statements they've made, using it + +All in one simple command: + +```bash +keybase dir verify +``` + +There are lots of options, including assertions for automating your checks. + +For more info, check out https://keybase.io/docs/command_line/code_signing \ No newline at end of file From 34d2904dd5bf12f0a01774a790b79e9088956c68 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 28 May 2014 10:54:05 -0400 Subject: [PATCH 139/163] version bump with SIGNED.md added --- SIGNED.md | 28 ++++++++++++++-------------- package.json | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/SIGNED.md b/SIGNED.md index 8202119..088c66e 100644 --- a/SIGNED.md +++ b/SIGNED.md @@ -4,19 +4,19 @@ Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org -iQIcBAABCgAGBQJTfiBAAAoJENIkQTsc+mSQW1wP/AhGolTn73gJX4wIray/naOg -7BxYeIt7k7RS4YxMcaaT8NtvK6N6oEcUTcWINjT6rMnRTzLE56XiegdzBzp4I+na -HAdMOwvDNmGziDx6Fstcw/eIYdUHOeQkfeUZNW2/RxVwcMcUbIs7cBflGFL1DUKK -xjqGE+Kbck6mkblaNBvqWHbp/ZmjbyZVMSqDTysk/RiqqcjBBNBlcJNgSQeNcxm6 -bUmIMX4jzfd5OTHvWqn2/XdvwmLAXE1kZ1ap1/uU9qKw+Y5pHA+MgfptxifrMk4f -G3ZryRSABuuqQV0VEjyt1s4nhEFCX7iur2qSbWEtweLJRqRU/2sn073oDt87Jsgw -mmrJMFWMEyKyw6i+xWOs0W5vmq/rHbYg5yk0LDD4awtJ2UmnIngZjo86JGWXVywL -zugvzxPSZECJTiYWrYYeQOa72xZKJqdDQzjj3n2U2AdaYCpw/TpnGDaqCxXQliSQ -uEWjGi1Kh8e/kGdEvgbXgvqlGi24sh/OMh0wNOQS3+xpbp+5zpP+lvBEuSMtNfst -Al3DpkCSIKa6+FVAaJi7yzkZElGQcCw8QtOMDIxYY6glnBkzgaWUo9rsRgip5Rpa -C4+RxnYkPrfvFvOXThE+w0kJbNHSbBRmAfySwhWwgP0HsF/HtRYUCmIUnLWBn8xG -+MmYw7Qcwz/n8nciWNkE -=/OyP +iQIcBAABCgAGBQJThfhsAAoJENIkQTsc+mSQpOkQAKukgBMg9jVFFtEZxLsqEx4v +qUC/wvqiNp3iv/YVl/y4mglKCbhCPiuVm2boT48zsITPXsWI9dkPVzO2U6b1rM5X +07UCDE8qQ5esROLbdfXPdREfpQr4ehMQ+/nTEUGapcPXxB+kxyJvZXd2H3L8/C/d +w4AwOHP9FeCXlOxFkaorYvtwIuqpHYOk2qhX/l6dY3tKqKlKLGHa67PJL8zZmv/9 +hvli7KhLJjmlbE9lzdyaxNbe9T7/kHHhy3YybA2fcGCut+zBknx3OwwyNsQEz15h +CWZhR/aYSDKb9jgY8N+5u9ZuJDZkAQYpiswu/zVJBcX24Y7zh3E2HCUegLbvBz+h +DM/y8UULWDD4JlXpOdmlTSOWBLz2TJQ3et3YvQ3a/mootAa4+rGY6yWodwTAX11n +wvJNzoXlZyPE9ForN93Q6gbc85/gL6ChH5QlDggZI4tY71jplh/aT2JJ6PDN/JFU +6ij1R7uTJxtROWFba0aKW7ptlWrJEPMIbfX90evSgrQI3u8rwN4YNhZ7a2Sv33pl +4P9C4EomHS8dHlT63SpncVmQGH6q1Hz1fl2YlxyauwVTKEkRhxtunmULoPj26YHw +sPZtSYeNf7n/ZmOlv9xr/5233Ve28IBheRRYVkULQfxJPylnoypCGcDBSdJ1Zh2K +Hg298+wX+RFuTOE3OvHR +=diAQ -----END PGP SIGNATURE----- ``` @@ -63,7 +63,7 @@ size exec file contents 23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 25118 view.js a3e6239a1fcad055480c5f85f0865b9900db8b311371e1195519747a6164f01e -859 package.json ce699e01cf0550d0032620b6888b61c23ddb3fd0a12419ba0e27fe58ffb3115c +859 package.json d95051a58b39631db768561a7a90c4f13a5ed16a24d38c4f3f8d24cdcb49ccb9 src/ 5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e diff --git a/package.json b/package.json index 52d24c2..3ae17cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.8", + "version": "0.1.9", "directories": { "lib": "./lib" }, From 2980877d329ef0eb256ddd8dd968446c762e2f9b Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 28 May 2014 10:56:41 -0400 Subject: [PATCH 140/163] version bump, playing with keybase signing --- .kbignore | 1 + SIGNED.md | 29 +++++++++++++++-------------- package.json | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 .kbignore diff --git a/.kbignore b/.kbignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/.kbignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/SIGNED.md b/SIGNED.md index 088c66e..863d1fa 100644 --- a/SIGNED.md +++ b/SIGNED.md @@ -4,19 +4,19 @@ Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org -iQIcBAABCgAGBQJThfhsAAoJENIkQTsc+mSQpOkQAKukgBMg9jVFFtEZxLsqEx4v -qUC/wvqiNp3iv/YVl/y4mglKCbhCPiuVm2boT48zsITPXsWI9dkPVzO2U6b1rM5X -07UCDE8qQ5esROLbdfXPdREfpQr4ehMQ+/nTEUGapcPXxB+kxyJvZXd2H3L8/C/d -w4AwOHP9FeCXlOxFkaorYvtwIuqpHYOk2qhX/l6dY3tKqKlKLGHa67PJL8zZmv/9 -hvli7KhLJjmlbE9lzdyaxNbe9T7/kHHhy3YybA2fcGCut+zBknx3OwwyNsQEz15h -CWZhR/aYSDKb9jgY8N+5u9ZuJDZkAQYpiswu/zVJBcX24Y7zh3E2HCUegLbvBz+h -DM/y8UULWDD4JlXpOdmlTSOWBLz2TJQ3et3YvQ3a/mootAa4+rGY6yWodwTAX11n -wvJNzoXlZyPE9ForN93Q6gbc85/gL6ChH5QlDggZI4tY71jplh/aT2JJ6PDN/JFU -6ij1R7uTJxtROWFba0aKW7ptlWrJEPMIbfX90evSgrQI3u8rwN4YNhZ7a2Sv33pl -4P9C4EomHS8dHlT63SpncVmQGH6q1Hz1fl2YlxyauwVTKEkRhxtunmULoPj26YHw -sPZtSYeNf7n/ZmOlv9xr/5233Ve28IBheRRYVkULQfxJPylnoypCGcDBSdJ1Zh2K -Hg298+wX+RFuTOE3OvHR -=diAQ +iQIcBAABCgAGBQJThfkZAAoJENIkQTsc+mSQ+fwQAMUUPH3gPofTtMuaBuoagIS7 +AFOe1CjBg2pU5OU/alfwIuLo2C6TUdQQY0tEbFUp5ZXB9lsM0P9WJ/TbMwObSBu4 +ZE4qud8BEupUv6YubiNmUf+UyMttSKnHWZdn/hbW8d19eG4Z0oTR31npExKigXcL +S6VgrIE7aazXqUMpAozd2urf/ivnk4cyTysFSBUtZbW1IgNxttoYlFZwvpiYfNfn +vmCfvOxVZyoNg8v805TAYLwMxvIjctFMvykDC9BYKg3/tFcTXC9uVPDFyjaffPz4 +2VFCYcejM+nBhS1/w/Cafe3RQNOKzIZtQat7n+qm4DscIEztOhMzJ+h+qkbU2Npv +kfL+S8KTk3yijongU/Yyh7AYWn0t7HflQj2SsoYtRzL2Hcgb3XoO6pshx8q0OHm+ +TaXtMBPLfWD6luVqq0R+Trvrc9C7WRBR9Cul4sgvX9q2pDCWFSGqjNPSCim57E+C +cRPBDxy5CUMXUvSt1ld+JypXcxR+Atumk119ODNb2GZ2lgA77uzILOiSc4ipVn4/ +qPWvmeJSaKi8FAcDho7gy11qh1NHBZe7fSeLKcwrvf4vJEEoXefhDmUb1I6lJEq8 +U6ypJ95lzA+ozsoHTArdiuwp6nR7fOGe//A8U2KB6Sr8QBteU8NkIz9WHeeE39Iy +jPkgI5vUz20vJpz9u9Ba +=xBg0 -----END PGP SIGNATURE----- ``` @@ -31,6 +31,7 @@ Hg298+wX+RFuTOE3OvHR size exec file contents ./ 24 .gitignore 4419468a0a62e000bee4fab5c85876e287a6313001de5c9305bf849488829314 +13 .kbignore f1a9a09b226cf8e98a4286200c5d9ebd5c28924707ac3317947f8ecf06ab167b 1800 Cakefile 2f3b1709f19ace9827bfd464d141382ff01b7f86d45cd1faed6bfee906fdcd9a 1079 LICENSE edb721bca3cfa08423f93741d60300f28350af960238477fe89826e19fc3dfa9 13715 README.md 44a697135c4145b598a812e7d904781faf772d384e8859c2767fea4be8afffb4 @@ -63,7 +64,7 @@ size exec file contents 23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 25118 view.js a3e6239a1fcad055480c5f85f0865b9900db8b311371e1195519747a6164f01e -859 package.json d95051a58b39631db768561a7a90c4f13a5ed16a24d38c4f3f8d24cdcb49ccb9 +860 package.json a3836e58c837bb9476745bbddfcb752f02b18939e48d30a73fe877e8da197c17 src/ 5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e diff --git a/package.json b/package.json index 3ae17cf..8c17beb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.9", + "version": "0.1.10", "directories": { "lib": "./lib" }, From 84747783ba65148db69f144ed657188b55477a57 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 4 Jun 2014 12:24:41 -0400 Subject: [PATCH 141/163] fixed unnecessary context demand in async building; version bump --- SIGNED.md | 32 ++++++++++++++++---------------- lib/view.js | 1 + package.json | 2 +- src/view.coffee | 1 + 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/SIGNED.md b/SIGNED.md index 863d1fa..f7ca1b4 100644 --- a/SIGNED.md +++ b/SIGNED.md @@ -4,19 +4,19 @@ Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org -iQIcBAABCgAGBQJThfkZAAoJENIkQTsc+mSQ+fwQAMUUPH3gPofTtMuaBuoagIS7 -AFOe1CjBg2pU5OU/alfwIuLo2C6TUdQQY0tEbFUp5ZXB9lsM0P9WJ/TbMwObSBu4 -ZE4qud8BEupUv6YubiNmUf+UyMttSKnHWZdn/hbW8d19eG4Z0oTR31npExKigXcL -S6VgrIE7aazXqUMpAozd2urf/ivnk4cyTysFSBUtZbW1IgNxttoYlFZwvpiYfNfn -vmCfvOxVZyoNg8v805TAYLwMxvIjctFMvykDC9BYKg3/tFcTXC9uVPDFyjaffPz4 -2VFCYcejM+nBhS1/w/Cafe3RQNOKzIZtQat7n+qm4DscIEztOhMzJ+h+qkbU2Npv -kfL+S8KTk3yijongU/Yyh7AYWn0t7HflQj2SsoYtRzL2Hcgb3XoO6pshx8q0OHm+ -TaXtMBPLfWD6luVqq0R+Trvrc9C7WRBR9Cul4sgvX9q2pDCWFSGqjNPSCim57E+C -cRPBDxy5CUMXUvSt1ld+JypXcxR+Atumk119ODNb2GZ2lgA77uzILOiSc4ipVn4/ -qPWvmeJSaKi8FAcDho7gy11qh1NHBZe7fSeLKcwrvf4vJEEoXefhDmUb1I6lJEq8 -U6ypJ95lzA+ozsoHTArdiuwp6nR7fOGe//A8U2KB6Sr8QBteU8NkIz9WHeeE39Iy -jPkgI5vUz20vJpz9u9Ba -=xBg0 +iQIcBAABCgAGBQJTj0goAAoJENIkQTsc+mSQ/GUP/ipdQKg4bzlCs2KCCQhwsI0b +PoFrdnvqq/a0rjgDRYoZ4XB2e2a2tS4MkXGsxzbsBZynT0/MPrcC8xNZRTMWdT+D +ir2kAk4bfs0scXOzvPUrUeHlWfNDNWtJmbFCzECpJThkGtlZxAnNK/wIDAgMIVn3 +C6X+f076t/eF0E5agcfKueoM9WiUyBbqN6QWb4CamagezG+i+FjKPFexrlnTomZG +IHR79uoxn9Fc4mQiNlcyXespenKgQou1DAYEG8vYmfDZR9jAfJ+efjNotV9KtXjy +6YfWV2AistCz7Ve/oRzDHYVhVemPzBoIPF41xx7afNa0vmP+oo5q9MefMqdF5xPJ +4nR02S2PnKncwqzZF6jNA/2D+O5ETEEo5Zi80CjkHgLhG+rCfztZzJ5Y6/97F6Vb +QYxydvjJkrnIAq4ifSTfqa2kXupNs97G22qtSGWdqFMSrYZeDHGL3cQeNh42ubHc +Drcqv9FQD9j5ZCALVLizRMMqmE0Gc/KBUzeNGCUwsRsIdiONNWtnhalFteZe9aZ6 +WfxQnKXeyPxj0GrkMwYp6egCxo2jsJ1N/+xoSgIYouJ7KvUb/7JI2eDHiOg/5PWe +pVNMa44Zkzq54Cr1QVEnXPzEZobPBVNwhhMq8FDTusI/BI5u0rcCUJ9q/g94D4AP +Qs8fr86Wp31esmOPxSX+ +=pc0T -----END PGP SIGNATURE----- ``` @@ -63,8 +63,8 @@ size exec file contents 571 pool.js 2f83097467cbde33e9f1d091a6e31b524ea43bf9e97ef05ba35ae641182f3e90 23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 -25118 view.js a3e6239a1fcad055480c5f85f0865b9900db8b311371e1195519747a6164f01e -860 package.json a3836e58c837bb9476745bbddfcb752f02b18939e48d30a73fe877e8da197c17 +25159 view.js a5a79dc59f9ca375c67baacb6b4048595c5867d74a32a3fe87553605f8496f4c +860 package.json e224e7a8db7aa1aff09badf4b19101f3ead5435208df9c28f61f11eac3b43c37 src/ 5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e @@ -73,7 +73,7 @@ size exec file contents 270 pool.coffee b493416ba61c6d2f98b713b7f30cc8002142c26205be21653a00f7c11ea1b6c4 2604 toffee.jison 8d040196ea79ed3676b5874f8d85da3849cc3ad82ecaeba212a4194033bfb72e 1227 utils.coffee efd639a91f7cca74fdc138743aeb572bcaffc2c151d9a8a89bf31e3d3c798873 -18996 view.coffee 6d55d928827a30db1d6ae8abb331e1839628688a70ef17ab98918421431dfcfd +19034 view.coffee f57989990e08deb868c247af945b67999791d783cf51db68a481ff69971488c0 test/ cases/ big_file/ diff --git a/lib/view.js b/lib/view.js index fbcc0da..3347776 100644 --- a/lib/view.js +++ b/lib/view.js @@ -137,6 +137,7 @@ */ var v; + ctx = ctx || vm.createContext({}); this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async."); this._toTokenObj(); v = this; diff --git a/package.json b/package.json index 8c17beb..a653db8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.10", + "version": "0.1.11", "directories": { "lib": "./lib" }, diff --git a/src/view.coffee b/src/view.coffee index 061c97f..0b9c92c 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -198,6 +198,7 @@ class view Defers via setTimeouts in each stage in the compile process for CPU friendliness. This is a lot prettier with iced-coffee-script. ### + ctx = ctx or vm.createContext({}) @_log "Prepping #{if @fileName? then @fileName else 'unknown'} async." @_toTokenObj() v = @ From 86ed10aa8f47d1238df809066d8c1abc811d0d10 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 17 Jun 2014 10:26:36 -0400 Subject: [PATCH 142/163] configurable string compile for accord support --- index.coffee | 30 ++++++++++++++++++++++++++++++ index.js | 34 ++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/index.coffee b/index.coffee index c8d2cfe..2393ce6 100644 --- a/index.coffee +++ b/index.coffee @@ -60,3 +60,33 @@ exports.str_render = exports.strRender = (template_str, options, cb) -> # -------------------------------------------- exports.compile = require('./lib/view').expressCompile + +# better support for string compiling +# -------------------------------------------- + +exports.configurable_compile = (source, opts) -> + opts = opts or {} + opts.minimize = if opts.minimize? then opts.minimize else false + opts.bundle_path = opts.bundle_path or null + opts.headers = if opts.headers? then opts.headers else true + opts.filename = opts.filename or null + opts.to_coffee = opts.to_coffee or false + err = null + + # this compiles an individual template that you've read while recursing: + v = new view source, { + filename: opts.filename + bundlePath: opts.filename + browserMode: true + minimize: opts.minimize + } + if opts.to_coffee + output = v.toCoffee() + else + output = v.toJavaScript() + if v.error then throw v.error.e + if opts.headers + header = getCommonHeadersJs true, true, true + if opts.coffee then output = "`#{header}`\n\n#{output}" + else output = "#{header}\n;\n#{output}" + return output diff --git a/index.js b/index.js index 6e72198..175d410 100644 --- a/index.js +++ b/index.js @@ -69,4 +69,38 @@ exports.compile = require('./lib/view').expressCompile; + exports.configurable_compile = function(source, opts) { + var err, header, output, v; + opts = opts || {}; + opts.minimize = opts.minimize != null ? opts.minimize : false; + opts.bundle_path = opts.bundle_path || null; + opts.headers = opts.headers != null ? opts.headers : true; + opts.filename = opts.filename || null; + opts.to_coffee = opts.to_coffee || false; + err = null; + v = new view(source, { + filename: opts.filename, + bundlePath: opts.filename, + browserMode: true, + minimize: opts.minimize + }); + if (opts.to_coffee) { + output = v.toCoffee(); + } else { + output = v.toJavaScript(); + } + if (v.error) { + throw v.error.e; + } + if (opts.headers) { + header = getCommonHeadersJs(true, true, true); + if (opts.coffee) { + output = "`" + header + "`\n\n" + output; + } else { + output = "" + header + "\n;\n" + output; + } + } + return output; + }; + }).call(this); diff --git a/package.json b/package.json index a653db8..4289061 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.11", + "version": "0.1.12", "directories": { "lib": "./lib" }, From 2f9120283615a1daa4a6e71511915c271bb8b825 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 17 Jun 2014 10:27:01 -0400 Subject: [PATCH 143/163] new file bump --- SIGNED.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/SIGNED.md b/SIGNED.md index f7ca1b4..0814833 100644 --- a/SIGNED.md +++ b/SIGNED.md @@ -4,19 +4,19 @@ Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org -iQIcBAABCgAGBQJTj0goAAoJENIkQTsc+mSQ/GUP/ipdQKg4bzlCs2KCCQhwsI0b -PoFrdnvqq/a0rjgDRYoZ4XB2e2a2tS4MkXGsxzbsBZynT0/MPrcC8xNZRTMWdT+D -ir2kAk4bfs0scXOzvPUrUeHlWfNDNWtJmbFCzECpJThkGtlZxAnNK/wIDAgMIVn3 -C6X+f076t/eF0E5agcfKueoM9WiUyBbqN6QWb4CamagezG+i+FjKPFexrlnTomZG -IHR79uoxn9Fc4mQiNlcyXespenKgQou1DAYEG8vYmfDZR9jAfJ+efjNotV9KtXjy -6YfWV2AistCz7Ve/oRzDHYVhVemPzBoIPF41xx7afNa0vmP+oo5q9MefMqdF5xPJ -4nR02S2PnKncwqzZF6jNA/2D+O5ETEEo5Zi80CjkHgLhG+rCfztZzJ5Y6/97F6Vb -QYxydvjJkrnIAq4ifSTfqa2kXupNs97G22qtSGWdqFMSrYZeDHGL3cQeNh42ubHc -Drcqv9FQD9j5ZCALVLizRMMqmE0Gc/KBUzeNGCUwsRsIdiONNWtnhalFteZe9aZ6 -WfxQnKXeyPxj0GrkMwYp6egCxo2jsJ1N/+xoSgIYouJ7KvUb/7JI2eDHiOg/5PWe -pVNMa44Zkzq54Cr1QVEnXPzEZobPBVNwhhMq8FDTusI/BI5u0rcCUJ9q/g94D4AP -Qs8fr86Wp31esmOPxSX+ -=pc0T +iQIcBAABCgAGBQJToFAjAAoJENIkQTsc+mSQV94P/ix41qMd4pSsBD5f7ZJZLpD8 +Pakq8q49mvdoErz+uzNqZ/eHjCXORc6Caqx3HYuvXh+Y8fiNFK8tV9IjF3C2UKx+ +be/n8mU/nb8HOvS6ZWh6p0us5Pmm3aETaKKquBmUT6klOUg2g0ZO2D0Bj5XD4tSn +SkhcgAAEKglLTtqhXScuoeSAygVOmM5KkiAv4Q+5IcqhkwnOv2af8ta15d6DmKuj +tpFcQd6pTYn6dKAnEWCXQs/+I4uBhwo93+DzIC1HI6m7lI7+piqA5gcb3/KAoagV +qDufapXLEGepfl6Jb0Wq46sfS7DkpGmYebJvOH0swMXjF2uB3SddOT0ZBtf9Zl+6 +6rfbZF9MHDqf+Mela9AAfXd3vrBXXxGHpbDm8uBCSIinp/wH//4nn6pLJlq1XRFU +yDA0p1mYAHsdl4keFd0cvWDHaMwLWR8Rx/aLHkkz5F4GEI2DjixlpnxGw+swbTZu +FxRwUv9E8jVXApbcojQR0HzGyBPDQe7FY0lORKPVhTr+gLIwNM5sQ7PEChL8tOXa +QA+NYgHceG1gAXh6WDhR5Ih3XoeVZGVxdl9TxW7MrMzvRBFI4PJBgG/n9JfDgrxx +PbC9xIrqzM4DH4CCPXhWvJZNLBNfUHbxTSEj0DvGatNnxCXa0ZovMCFq7ETyL6H7 +oCnPRDIz9m1+wV1wnysq +=gehN -----END PGP SIGNATURE----- ``` @@ -37,8 +37,8 @@ size exec file contents 13715 README.md 44a697135c4145b598a812e7d904781faf772d384e8859c2767fea4be8afffb4 bin/ 57 toffee 616023d8f8b8dbb5450051ddc21c8887829fba38dc3341feaaa3ffd5afd3ee8c -2099 index.coffee a121e739dd5e8013bc40e217f2a6529a39b2e6424297410565866667bb124603 -1866 index.js f897f1995a661aea7b4a1fdc300de342cb0556b751900dd50269c158dc1122b8 +3124 index.coffee 3183ed24e04b288ffa009f5e990a3775351bd7551b235849faf5c18f9e1c2120 +2827 index.js 90b42e60179783077f02c7e086247fcaf15b3d391e18904516c9a3eaa5d4ef21 lib/ 0 README.md e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coffee-script/ @@ -64,7 +64,7 @@ size exec file contents 23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 25159 view.js a5a79dc59f9ca375c67baacb6b4048595c5867d74a32a3fe87553605f8496f4c -860 package.json e224e7a8db7aa1aff09badf4b19101f3ead5435208df9c28f61f11eac3b43c37 +860 package.json 2cd00d299ada6fd0cdceed5e12dda24de7625e8a63bea84935702e5734ed2160 src/ 5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e @@ -217,7 +217,7 @@ dropbox # ignore .dropbox-cache and other Dropbox-related files kb # ignore anything as described by .kbignore files ``` - + ### End signed statement From 4209342acf95cfb346dd9d03225b128f898a6dbe Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 17 Jun 2014 11:13:52 -0400 Subject: [PATCH 144/163] removed bad option --- index.coffee | 1 - index.js | 1 - 2 files changed, 2 deletions(-) diff --git a/index.coffee b/index.coffee index 2393ce6..700058e 100644 --- a/index.coffee +++ b/index.coffee @@ -67,7 +67,6 @@ exports.compile = require('./lib/view').expressCompile exports.configurable_compile = (source, opts) -> opts = opts or {} opts.minimize = if opts.minimize? then opts.minimize else false - opts.bundle_path = opts.bundle_path or null opts.headers = if opts.headers? then opts.headers else true opts.filename = opts.filename or null opts.to_coffee = opts.to_coffee or false diff --git a/index.js b/index.js index 175d410..b410542 100644 --- a/index.js +++ b/index.js @@ -73,7 +73,6 @@ var err, header, output, v; opts = opts || {}; opts.minimize = opts.minimize != null ? opts.minimize : false; - opts.bundle_path = opts.bundle_path || null; opts.headers = opts.headers != null ? opts.headers : true; opts.filename = opts.filename || null; opts.to_coffee = opts.to_coffee || false; From 4b0dda409cc7576f315e5db66365f54444b0bc72 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 17 Jun 2014 11:14:09 -0400 Subject: [PATCH 145/163] new signing --- SIGNED.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/SIGNED.md b/SIGNED.md index 0814833..67ebc2e 100644 --- a/SIGNED.md +++ b/SIGNED.md @@ -4,19 +4,19 @@ Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org -iQIcBAABCgAGBQJToFAjAAoJENIkQTsc+mSQV94P/ix41qMd4pSsBD5f7ZJZLpD8 -Pakq8q49mvdoErz+uzNqZ/eHjCXORc6Caqx3HYuvXh+Y8fiNFK8tV9IjF3C2UKx+ -be/n8mU/nb8HOvS6ZWh6p0us5Pmm3aETaKKquBmUT6klOUg2g0ZO2D0Bj5XD4tSn -SkhcgAAEKglLTtqhXScuoeSAygVOmM5KkiAv4Q+5IcqhkwnOv2af8ta15d6DmKuj -tpFcQd6pTYn6dKAnEWCXQs/+I4uBhwo93+DzIC1HI6m7lI7+piqA5gcb3/KAoagV -qDufapXLEGepfl6Jb0Wq46sfS7DkpGmYebJvOH0swMXjF2uB3SddOT0ZBtf9Zl+6 -6rfbZF9MHDqf+Mela9AAfXd3vrBXXxGHpbDm8uBCSIinp/wH//4nn6pLJlq1XRFU -yDA0p1mYAHsdl4keFd0cvWDHaMwLWR8Rx/aLHkkz5F4GEI2DjixlpnxGw+swbTZu -FxRwUv9E8jVXApbcojQR0HzGyBPDQe7FY0lORKPVhTr+gLIwNM5sQ7PEChL8tOXa -QA+NYgHceG1gAXh6WDhR5Ih3XoeVZGVxdl9TxW7MrMzvRBFI4PJBgG/n9JfDgrxx -PbC9xIrqzM4DH4CCPXhWvJZNLBNfUHbxTSEj0DvGatNnxCXa0ZovMCFq7ETyL6H7 -oCnPRDIz9m1+wV1wnysq -=gehN +iQIcBAABCgAGBQJToFs5AAoJENIkQTsc+mSQTpUP/2JLLdKyFlXRetWbRQd770cL +q2wKmmtu0oxG3kMjRrvnB2lS2Qxjtu0imXcIl8hqObtx2ScI+buk/DbdS0gZ1RmW +DM10MDYzoWQRAZ6sUKLcStQGP4lEpq6wYeAqWxf7N8aX8kKgkJoUsirq8w7NeosB +72EPYAd/Eth3ka0WdMf/KU8w1bpnC77nAxExlCafJ8enCZx3R8236Cy1LbGZ86v/ +Ob1FQkLD1Um+gY4mndd9s3FU4kxPJF9ISchdpHCxIq0kE7qHBGZejozjP4J1xr2U +HEwvOGN4s40k62jIEGmLzvqj87BaCplWLHtl7oV3d5ZTFSUkFoVaXKsvXlSDzAUw +uJGt2j30++C51b8vDZvX9nnegULXzNA/rnTa1zubvk2w2jDE0VT3+/ySWLRTwNHz +2e1aEWr7SL75bvi+nCCHQKYJiWuB7Xc6i+DUM6nlPxUuvFdnLTW8CV1lBtwbd9gW +7XOij+9mF3LsAaeZ+XzvLwoLE+aMpIaqIJpOi1JVoafWBnk1/O7+hHxkWKFjKJXv +3sbnG+4KpMw+YTUN35htLBiT+8V76JmsvArUYjTlkpg1x67Vv58jlhucIxOKQfaq +khnfmNA3HuPCHOTDyMBaa7LEPRU53GbhU3Y0W9PsZKI/KG1LfUP+0iPT8o4AlAT/ +6gmBoAw7Qud8v7mbvpmE +=Dlsg -----END PGP SIGNATURE----- ``` @@ -37,8 +37,8 @@ size exec file contents 13715 README.md 44a697135c4145b598a812e7d904781faf772d384e8859c2767fea4be8afffb4 bin/ 57 toffee 616023d8f8b8dbb5450051ddc21c8887829fba38dc3341feaaa3ffd5afd3ee8c -3124 index.coffee 3183ed24e04b288ffa009f5e990a3775351bd7551b235849faf5c18f9e1c2120 -2827 index.js 90b42e60179783077f02c7e086247fcaf15b3d391e18904516c9a3eaa5d4ef21 +3073 index.coffee 6e43b294bbee4b1f22327ae31d154bda633bc003b6e9345fabf9d8741191f07e +2778 index.js 256cbe97d8d3895f8867e27045811b81b1fe50c2ec09fb8e71bc1f5c90f3c90e lib/ 0 README.md e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 coffee-script/ From bce8ae9ed57dabfef5915218f5f77d9af5ded508 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 20 Jan 2017 10:10:09 -0500 Subject: [PATCH 146/163] addition of 2 problematic characters in JSON mentioned by aseemk --- Cakefile | 2 +- index.js | 12 +- lib/command_line.js | 42 ++-- lib/consts.js | 2 +- lib/engine.js | 199 +++++++++-------- lib/errorHandler.js | 104 ++++----- lib/pool.js | 2 +- lib/toffee_lang.js | 139 ++++++------ lib/utils.js | 12 +- lib/view.js | 203 +++++++++--------- package.json | 70 +++--- src/view.coffee | 4 +- test/cases/escape/input.toffee | 8 +- test/cases/escape/output.toffee | 5 +- .../express3/public/javascripts/test_cases.js | 106 ++++----- test/express3/public/javascripts/toffee.js | 2 +- test/express3/views/index.toffee | 18 +- toffee.js | 2 +- 18 files changed, 486 insertions(+), 446 deletions(-) diff --git a/Cakefile b/Cakefile index 7ec1ff2..780f9e4 100644 --- a/Cakefile +++ b/Cakefile @@ -5,7 +5,7 @@ jison = require 'jison' path = require 'path' express_test = require './test/generate_express_test' -task 'build', 'build the whole jam', (cb) -> +task 'build', 'build the whole jam', (cb) -> console.log "Building" files = fs.readdirSync 'src' files = ('src/' + file for file in files when file.match(/\.coffee$/)) diff --git a/index.js b/index.js index b410542..f29e459 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,10 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { - var cacheless_engine, e, engine, getCommonHeaders, getCommonHeadersJs, to_express, view, __express, _ref; + var __express, cacheless_engine, e, engine, getCommonHeaders, getCommonHeadersJs, ref, to_express, view; engine = require('./lib/engine').engine; - _ref = require('./lib/view'), view = _ref.view, getCommonHeaders = _ref.getCommonHeaders, getCommonHeadersJs = _ref.getCommonHeadersJs; + ref = require('./lib/view'), view = ref.view, getCommonHeaders = ref.getCommonHeaders, getCommonHeadersJs = ref.getCommonHeadersJs; exports.engine = engine; @@ -61,9 +61,9 @@ }; exports.str_render = exports.strRender = function(template_str, options, cb) { - var err, res, v, _ref1; + var err, ref1, res, v; v = new view(template_str, options); - _ref1 = v.run(options), err = _ref1[0], res = _ref1[1]; + ref1 = v.run(options), err = ref1[0], res = ref1[1]; return cb(err, res); }; @@ -96,7 +96,7 @@ if (opts.coffee) { output = "`" + header + "`\n\n" + output; } else { - output = "" + header + "\n;\n" + output; + output = header + "\n;\n" + output; } } return output; diff --git a/lib/command_line.js b/lib/command_line.js index 81fe5ff..d5779ed 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,12 +1,12 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { - var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, run, view, _ref; + var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, ref, run, view; fs = require('fs'); path = require('path'); - _ref = require('../lib/view'), view = _ref.view, getCommonHeadersJs = _ref.getCommonHeadersJs; + ref = require('../lib/view'), view = ref.view, getCommonHeadersJs = ref.getCommonHeadersJs; program = require('commander'); @@ -14,23 +14,23 @@ getVersionNumber = function() { var o, p; - p = fs.readFileSync("" + __dirname + "/../package.json", "utf8"); + p = fs.readFileSync(__dirname + "/../package.json", "utf8"); o = JSON.parse(p); return o.version; }; program.on('--help', function() { - return console.log("\n Examples:\n\n toffee views # recurses through views and builds views.js\n toffee foo.toffee # builds foo.js\n toffee views -o templates # builds templates.js\n toffee -p foo.toffee # outputs JS to stdout\n\n\n Then use in your :\n\n \n \n "); + return console.log("\n Examples: \n \n toffee views # recurses through views and builds views.js \n toffee foo.toffee # builds foo.js \n toffee views -o templates # builds templates.js \n toffee -p foo.toffee # outputs JS to stdout \n \n \n Then use in your : \n \n \n \n"); }); program.version(getVersionNumber()).option('-o, --output [path]', 'file (bundles all output into a single .js)').option('-d, --output_dir [path]', 'compiles templates into parallel .js files').option('-p, --print', 'print to stdout').option('-m, --minimize', 'minimize output (ugly, smaller file(s))').option('-c, --coffee', 'output to CoffeeScript (not JS)').option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates').option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)').parse(process.argv); compile = function(start_path, full_path) { + /* e.g., if start_path is /foo/bar and path is /foo/bar/car/thing.toffee - */ - + */ var bundle_path, output, source, v; source = fs.readFileSync(full_path, 'utf8'); bundle_path = full_path.slice(start_path.length); @@ -38,7 +38,7 @@ bundle_path = "/" + path.basename(full_path); } if (program.bundle_path) { - bundle_path = path.normalize("" + program.bundle_path + "/" + bundle_path); + bundle_path = path.normalize(program.bundle_path + "/" + bundle_path); } v = new view(source, { fileName: full_path, @@ -59,13 +59,13 @@ }; recurseRun = function(start_path, curr_path, out_text) { - var comp, file, file_out_path, files, stats, sub_path, sub_stats, _i, _len; + var comp, file, file_out_path, files, i, len, stats, sub_path, sub_stats; stats = fs.statSync(curr_path); if (stats.isDirectory()) { files = fs.readdirSync(curr_path); - for (_i = 0, _len = files.length; _i < _len; _i++) { - file = files[_i]; - sub_path = path.normalize("" + curr_path + "/" + file); + for (i = 0, len = files.length; i < len; i++) { + file = files[i]; + sub_path = path.normalize(curr_path + "/" + file); if (file.match(/\.toffee$/)) { out_text = recurseRun(start_path, sub_path, out_text); } else if (!(file === '.' || file === '..')) { @@ -79,8 +79,8 @@ comp = compile(start_path, curr_path); out_text += "\n;\n" + comp[0]; if (program.output_dir) { - file_out_path = path.normalize("" + program.output_dir + "/" + comp[1]); - file_out_path = "" + (path.dirname(file_out_path)) + "/" + (path.basename(file_out_path, '.toffee')); + file_out_path = path.normalize(program.output_dir + "/" + comp[1]); + file_out_path = (path.dirname(file_out_path)) + "/" + (path.basename(file_out_path, '.toffee')); file_out_path += program.coffee ? '.coffee' : '.js'; if (!program.print) { console.log("Outputting " + file_out_path); @@ -101,7 +101,7 @@ if (program.coffee) { return "`" + header_out + "`\n\n" + pre_output; } else { - return "" + header_out + "\n;\n" + pre_output; + return header_out + "\n;\n" + pre_output; } } }; @@ -115,16 +115,16 @@ } else { try { start_path = fs.realpathSync(program.args[0]); - } catch (_error) { - e = _error; + } catch (error) { + e = error; console.log("Input file/path not found. toffee --help for examples"); process.exit(1); } if (program.output_dir) { try { mkdirp.sync(program.output_dir); - } catch (_error) { - e = _error; + } catch (error) { + e = error; console.log("Couldn't make/use " + program.output_dir + "; " + e); process.exit(1); } @@ -139,8 +139,8 @@ try { console.log("Writing " + program.output); return fs.writeFileSync(program.output, out_text, "utf8"); - } catch (_error) { - e = _error; + } catch (error) { + e = error; console.log(e); return process.exit(1); } diff --git a/lib/consts.js b/lib/consts.js index 9a81c38..05c17db 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { exports.states = { TOFFEE: 1, diff --git a/lib/engine.js b/lib/engine.js index c9ac735..8429718 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,11 +1,11 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { - var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, sandboxCons, states, tweakables, util, utils, view, vm, _ref, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, ref, sandboxCons, states, tweakables, util, utils, view, vm, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; view = require('./view').view; - _ref = require('./consts'), states = _ref.states, tweakables = _ref.tweakables; + ref = require('./consts'), states = ref.states, tweakables = ref.tweakables; Pool = require('./pool').Pool; @@ -27,12 +27,12 @@ engine = (function() { function engine(options) { - this._fn_partial = __bind(this._fn_partial, this); - this._fn_snippet = __bind(this._fn_snippet, this); - this._fn_load = __bind(this._fn_load, this); - this._inlineInclude = __bind(this._inlineInclude, this); - this.run = __bind(this.run, this); - this.render = __bind(this.render, this); + this._fn_partial = bind(this._fn_partial, this); + this._fn_snippet = bind(this._fn_snippet, this); + this._fn_load = bind(this._fn_load, this); + this._inlineInclude = bind(this._inlineInclude, this); + this.run = bind(this.run, this); + this.render = bind(this.render, this); options = options || {}; this.verbose = options.verbose || false; this.minimize = options.minimize || false; @@ -48,9 +48,9 @@ } engine.prototype._log = function(o) { - var _ref1; + var ref1; if (this.verbose) { - if ((_ref1 = typeof o) === "string" || _ref1 === "number" || _ref1 === "boolean") { + if ((ref1 = typeof o) === "string" || ref1 === "number" || ref1 === "boolean") { return console.log("toffee: " + o); } else { return console.log("toffee: " + (util.inspect(o))); @@ -78,6 +78,7 @@ }; engine.prototype.run = function(filename, options, cb) { + /* "options" contains the pub vars and may contain special items: layout: path to a template expecting a body var (express 2.x style, but for use with express 3.x) @@ -87,9 +88,8 @@ __toffee.noInheritance: if true, don't pass variables through unless explicitly passed __toffee.repress if true, don't output anything; useful with including definition files with passback of vars __toffee.autoEscape: if set as false, don't escape output of #{} vars by default - */ - - var err, k, layout_options, post_process, res, v, _ref1, _ref2, _ref3, _ref4, _ref5; + */ + var err, k, layout_options, post_process, ref1, ref2, ref3, ref4, ref5, res, v; if (options.prettyPrintErrors == null) { options.prettyPrintErrors = this.prettyPrintErrors; } @@ -113,19 +113,19 @@ } } } - _ref1 = this.runSync(filename, options), err = _ref1[0], res = _ref1[1]; + ref1 = this.runSync(filename, options), err = ref1[0], res = ref1[1]; if (err && this.prettyPrintErrors) { - _ref2 = [null, err], err = _ref2[0], res = _ref2[1]; + ref2 = [null, err], err = ref2[0], res = ref2[1]; } if ((!err) && (layout_options != null)) { layout_options.body = res; - _ref3 = this.runSync(options.layout, layout_options), err = _ref3[0], res = _ref3[1]; + ref3 = this.runSync(options.layout, layout_options), err = ref3[0], res = ref3[1]; if (err && this.prettyPrintErrors) { - _ref4 = [null, err], err = _ref4[0], res = _ref4[1]; + ref4 = [null, err], err = ref4[0], res = ref4[1]; } } if ((!err) && (typeof post_process === "function")) { - _ref5 = this.postProcess(post_process, res), err = _ref5[0], res = _ref5[1]; + ref5 = this.postProcess(post_process, res), err = ref5[0], res = ref5[1]; } return cb(err, res); }; @@ -135,20 +135,19 @@ err = null; try { res = fn(res); - } catch (_error) { - e = _error; + } catch (error) { + e = error; err = e; } return [err, res]; }; engine.prototype.runSync = function(filename, options) { + /* "options" the same as run() above - */ - - var ctx, err, realpath, res, start_time, v, _ref1, _ref2, _ref3, - _this = this; + */ + var ctx, err, realpath, ref1, ref2, ref3, res, start_time, v; start_time = Date.now(); options = options || {}; options.__toffee = options.__toffee || {}; @@ -161,34 +160,42 @@ } if (v) { if (this.fsErrorCache[realpath]) { - _ref1 = [new Error("Couldn't load " + realpath), null], err = _ref1[0], res = _ref1[1]; + ref1 = [new Error("Couldn't load " + realpath), null], err = ref1[0], res = ref1[1]; } else { options.__toffee.parent = realpath; - options.partial = options.partial || function(fname, lvars) { - return _this._fn_partial(fname, lvars, realpath, options); - }; - options.snippet = options.snippet || function(fname, lvars) { - return _this._fn_snippet(fname, lvars, realpath, options); - }; - options.load = options.load || function(fname, lvars) { - return _this._fn_load(fname, lvars, realpath, options); - }; - options.print = options.print || function(txt) { - return _this._fn_print(txt, options); - }; + options.partial = options.partial || (function(_this) { + return function(fname, lvars) { + return _this._fn_partial(fname, lvars, realpath, options); + }; + })(this); + options.snippet = options.snippet || (function(_this) { + return function(fname, lvars) { + return _this._fn_snippet(fname, lvars, realpath, options); + }; + })(this); + options.load = options.load || (function(_this) { + return function(fname, lvars) { + return _this._fn_load(fname, lvars, realpath, options); + }; + })(this); + options.print = options.print || (function(_this) { + return function(txt) { + return _this._fn_print(txt, options); + }; + })(this); if (options.console == null) { options.console = { log: console.log }; } ctx = this.pool.get(); - _ref2 = v.run(options, ctx), err = _ref2[0], res = _ref2[1]; + ref2 = v.run(options, ctx), err = ref2[0], res = ref2[1]; this.pool.release(ctx); } } else { - _ref3 = [new Error("Couldn't load " + realpath), null], err = _ref3[0], res = _ref3[1]; + ref3 = [new Error("Couldn't load " + realpath), null], err = ref3[0], res = ref3[1]; } - this._log("" + realpath + " run in " + (Date.now() - start_time) + "ms"); + this._log(realpath + " run in " + (Date.now() - start_time) + "ms"); return [err, res]; }; @@ -205,7 +212,7 @@ }; engine.prototype._inlineInclude = function(filename, local_vars, parent_realpath, parent_options) { - var err, k, noInheritance, options, repress, res, reserved, v, _i, _len, _ref1, _ref2, _ref3; + var err, i, k, len, noInheritance, options, ref1, ref2, ref3, repress, res, reserved, v; options = local_vars || {}; options.passback = {}; options.__toffee = options.__toffee || {}; @@ -214,9 +221,9 @@ noInheritance = options.__toffee.noInheritance; repress = options.__toffee.repress; reserved = {}; - _ref1 = ["passback", "load", "print", "partial", "snippet", "layout", "__toffee", "postProcess"]; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - k = _ref1[_i]; + ref1 = ["passback", "load", "print", "partial", "snippet", "layout", "__toffee", "postProcess"]; + for (i = 0, len = ref1.length; i < len; i++) { + k = ref1[i]; reserved[k] = true; } if (!noInheritance) { @@ -229,10 +236,10 @@ } } } - _ref2 = this.runSync(filename, options), err = _ref2[0], res = _ref2[1]; - _ref3 = options.passback; - for (k in _ref3) { - v = _ref3[k]; + ref2 = this.runSync(filename, options), err = ref2[0], res = ref2[1]; + ref3 = options.passback; + for (k in ref3) { + v = ref3[k]; parent_options[k] = v; } return err || res; @@ -266,13 +273,13 @@ }; engine.prototype._loadWithoutCache = function(filename, options) { - var e, txt, v, view_options, _ref1; + var e, ref1, txt, v, view_options; try { txt = fs.readFileSync(filename, 'utf8'); - } catch (_error) { - e = _error; + } catch (error) { + e = error; txt = "Error: Could not read " + filename; - if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { + if (((ref1 = options.__toffee) != null ? ref1.parent : void 0) != null) { txt += " first requested in " + options.__toffee.parent; } } @@ -282,17 +289,17 @@ }; engine.prototype._loadCacheAndMonitor = function(filename, options) { - var e, previous_fs_err, txt, v, view_options, _ref1; + var e, previous_fs_err, ref1, txt, v, view_options; previous_fs_err = this.fsErrorCache[filename] != null; try { txt = fs.readFileSync(filename, 'utf8'); if (this.fsErrorCache[filename] != null) { delete this.fsErrorCache[filename]; } - } catch (_error) { - e = _error; + } catch (error) { + e = error; txt = "Error: Could not read " + filename; - if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { + if (((ref1 = options.__toffee) != null ? ref1.parent : void 0) != null) { txt += " first requested in " + options.__toffee.parent; } this.fsErrorCache[filename] = Date.now(); @@ -309,33 +316,34 @@ }; engine.prototype._reloadFileInBkg = function(filename, options) { - var _this = this; - return fs.readFile(filename, 'utf8', function(err, txt) { - var ctx, v, view_options, _ref1; - if (err || (txt !== _this.viewCache[filename].txt)) { - if (err) { - _this.fsErrorCache[filename] = Date.now(); - txt = "Error: Could not read " + filename; - if (((_ref1 = options.__toffee) != null ? _ref1.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } - } - if (!(err && _this.viewCache[filename].fsError)) { - view_options = _this._generateViewOptions(filename); - ctx = _this.pool.get(); - view_options.ctx = ctx; - view_options.cb = function(v) { - _this._log("" + filename + " updated and ready"); - _this.viewCache[filename] = v; - return _this.pool.release(ctx); - }; + return fs.readFile(filename, 'utf8', (function(_this) { + return function(err, txt) { + var ctx, ref1, v, view_options; + if (err || (txt !== _this.viewCache[filename].txt)) { if (err) { - view_options.fsError = true; + _this.fsErrorCache[filename] = Date.now(); + txt = "Error: Could not read " + filename; + if (((ref1 = options.__toffee) != null ? ref1.parent : void 0) != null) { + txt += " requested in " + options.__toffee.parent; + } + } + if (!(err && _this.viewCache[filename].fsError)) { + view_options = _this._generateViewOptions(filename); + ctx = _this.pool.get(); + view_options.ctx = ctx; + view_options.cb = function(v) { + _this._log(filename + " updated and ready"); + _this.viewCache[filename] = v; + return _this.pool.release(ctx); + }; + if (err) { + view_options.fsError = true; + } + return v = new view(txt, view_options); } - return v = new view(txt, view_options); } - } - }); + }; + })(this)); }; engine.prototype._generateViewOptions = function(filename) { @@ -351,30 +359,31 @@ }; engine.prototype._monitorForChanges = function(filename, options) { + /* we must continuously unwatch/rewatch because some editors/systems invoke a "rename" event and we'll end up following the wrong, old 'file' as a new one is dropped in its place. Files that are missing are ignored here because they get picked up by new calls to _loadCacheAndMonitor - */ - - var e, fsw, - _this = this; + */ + var e, fsw; if (this.fsErrorCache[filename] == null) { fsw = null; try { - this._log("" + filename + " starting fs.watch()"); + this._log(filename + " starting fs.watch()"); return fsw = fs.watch(filename, { persistent: true - }, function(change) { - _this._log("" + filename + " closing fs.watch()"); - fsw.close(); - _this._monitorForChanges(filename, options); - return _this._reloadFileInBkg(filename, options); - }); - } catch (_error) { - e = _error; + }, (function(_this) { + return function(change) { + _this._log(filename + " closing fs.watch()"); + fsw.close(); + _this._monitorForChanges(filename, options); + return _this._reloadFileInBkg(filename, options); + }; + })(this)); + } catch (error) { + e = error; this._log("fs.watch() failed for " + filename + "; settings fsErrorCache = true"); return this.fsErrorCache[filename] = Date.now(); } diff --git a/lib/errorHandler.js b/lib/errorHandler.js index fece7e0..0e968e4 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,8 +1,8 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { - var errorTypes, path, toffeeError, util, _ppEscape, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + var _ppEscape, errorTypes, path, toffeeError, util, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; path = require("path"); @@ -15,8 +15,8 @@ RUNTIME: 3 }; - toffeeError = (function(_super) { - __extends(toffeeError, _super); + toffeeError = (function(superClass) { + extend(toffeeError, superClass); function toffeeError(view, err_type, e) { this.errType = err_type; @@ -41,6 +41,7 @@ } toffeeError.prototype.getConvertedError = function() { + /* -------------------------------------- returns a JS style error, but with some extras { @@ -51,9 +52,8 @@ ...etc... } ------------------------------------------ - */ - - var line, res, _ref, _ref1, _ref2; + */ + var line, ref, ref1, ref2, res; res = { stack: [], message: "", @@ -63,10 +63,10 @@ file: path.basename(this.view.fileName), line_range: null }; - if (((_ref = this.e) != null ? _ref.message : void 0) != null) { + if (((ref = this.e) != null ? ref.message : void 0) != null) { res.message = this.e.message; } - if (((_ref1 = this.e) != null ? (_ref2 = _ref1.location) != null ? _ref2.first_line : void 0 : void 0) != null) { + if (((ref1 = this.e) != null ? (ref2 = ref1.location) != null ? ref2.first_line : void 0 : void 0) != null) { res.line_range = this._convertJsErrorRangeToToffeeRange(this.e.location); } switch (this.errType) { @@ -105,16 +105,16 @@ }; toffeeError.prototype._convertRuntimeStackLines = function(converted_err) { + /* a little more complicated, so extracted. Returns an array of dictionaries where there's extra info on each line in the stack. - */ - - var at_pub_call, hit_pub_yet, i, in_src_file, line, lineno, lrange, m, rxx_inline, rxx_pub, stack, _i, _len, _results; + */ + var at_pub_call, hit_pub_yet, i, in_src_file, k, len, line, lineno, lrange, m, results, rxx_inline, rxx_pub, stack; hit_pub_yet = false; stack = converted_err.stack; - _results = []; - for (i = _i = 0, _len = stack.length; _i < _len; i = ++_i) { + results = []; + for (i = k = 0, len = stack.length; k < len; i = ++k) { line = stack[i]; rxx_pub = /Object[\.].*?pub[\s]\(undefined\:([0-9]+)\:[0-9]+|tmpl[\.]render[\.]tmpl[\.]pub.*\(.*\:([0-9]+)\:[0-9]+/; m = line.match(rxx_pub); @@ -147,33 +147,33 @@ line_range: lrange }; if (stack[i].line_range[0] && !converted_err.line_range[0]) { - _results.push(converted_err.line_range = stack[i].line_range); + results.push(converted_err.line_range = stack[i].line_range); } else { - _results.push(void 0); + results.push(void 0); } } - return _results; + return results; }; toffeeError.prototype.getPrettyPrintText = function() { + /* returns a TEXT only blob explaining the error - */ - - var cerr, count, header, i, item, res, _i, _len, _ref, _ref1; + */ + var cerr, count, header, i, item, k, len, ref, ref1, res; cerr = this.getConvertedError(); - header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; + header = cerr.dir_name + "/" + cerr.file + ": " + cerr.message; res = "ERROR\n=====\n" + header; - if ((_ref = cerr.stack) != null ? _ref.length : void 0) { + if ((ref = cerr.stack) != null ? ref.length : void 0) { res += "\n\nSTACK\n=====\n"; count = 0; - _ref1 = cerr.stack; - for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { - item = _ref1[i]; + ref1 = cerr.stack; + for (i = k = 0, len = ref1.length; k < len; i = ++k) { + item = ref1[i]; if (i === 0) { - res += "" + (count++) + " " + item.line; + res += (count++) + " " + item.line; } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) { - res += "" + (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file; + res += (count++) + " [" + (this._lineRangeToPhrase(item.line_range)) + "] " + cerr.dir_name + "/" + cerr.file; } else if (item.in_src_file) { continue; } else { @@ -189,22 +189,22 @@ }; toffeeError.prototype.getPrettyPrint = function() { + /* returns an HTML blob explaining the error with lines highlighted - */ - - var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4; + */ + var cerr, count, extra, header, i, item, j, k, l, len, line, padding, padding_len, ref, ref1, ref2, ref3, ref4, res; cerr = this.getConvertedError(); res = ""; - header = "" + cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; + header = cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; - if ((_ref = cerr.stack) != null ? _ref.length : void 0) { + if ((ref = cerr.stack) != null ? ref.length : void 0) { res += "
    "; count = 0; - _ref1 = cerr.stack; - for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { - item = _ref1[i]; + ref1 = cerr.stack; + for (i = k = 0, len = ref1.length; k < len; i = ++k) { + item = ref1[i]; if (i === 0) { res += "
    " + (count++) + " " + item.line + "
    "; } else if (item.in_src_file && (item.above_pub_call || item.at_pub_call)) { @@ -217,26 +217,26 @@ } res += "
    "; } - for (i = _j = _ref2 = cerr.line_range[0] - 3, _ref3 = cerr.line_range[1] + 1; _ref2 <= _ref3 ? _j < _ref3 : _j > _ref3; i = _ref2 <= _ref3 ? ++_j : --_j) { + for (i = l = ref2 = cerr.line_range[0] - 3, ref3 = cerr.line_range[1] + 1; ref2 <= ref3 ? l < ref3 : l > ref3; i = ref2 <= ref3 ? ++l : --l) { if ((i < 0) || i > this.toffeeSrcLines.length - 1) { continue; } line = _ppEscape(this.toffeeSrcLines[i]); padding_len = 5 - ("" + (i + 1)).length; padding = ((function() { - var _k, _results; - _results = []; - for (j = _k = 0; 0 <= padding_len ? _k < padding_len : _k > padding_len; j = 0 <= padding_len ? ++_k : --_k) { - _results.push(" "); + var n, ref4, results; + results = []; + for (j = n = 0, ref4 = padding_len; 0 <= ref4 ? n < ref4 : n > ref4; j = 0 <= ref4 ? ++n : --n) { + results.push(" "); } - return _results; + return results; })()).join(""); - if (((cerr.line_range[0] - 1) <= (_ref4 = i) && _ref4 < cerr.line_range[1])) { + if (((cerr.line_range[0] - 1) <= (ref4 = i) && ref4 < cerr.line_range[1])) { extra = ""; } else { extra = ""; } - res += "" + extra + "\n" + (i + 1) + ": " + padding + " " + line + "
    "; + res += extra + "\n" + (i + 1) + ": " + padding + " " + line + "

    "; } res += " \n
    \n\n
    "; return res; @@ -270,12 +270,12 @@ }; toffeeError.prototype._convertOffensiveLineToToffeeRange = function(lineno) { + /* Given the error line in a converted file, hunts for surrounding __toffee.lineno calls and returns a pair array with the error position range in the original toffee file. - */ - + */ var next, next_matches, ol, prev, prev_matches, res, tl; ol = this.offensiveSrcLines; tl = this.toffeeSrcLines; @@ -307,12 +307,12 @@ txt = txt.replace(/&/g, '&').replace(/ _ref; i = 0 <= _ref ? ++_i : --_i) { - _results.push(" "); + var k, ref, results; + results = []; + for (i = k = 0, ref = m[0].length; 0 <= ref ? k < ref : k > ref; i = 0 <= ref ? ++k : --k) { + results.push(" "); } - return _results; + return results; })()).join("")); return txt; }; diff --git a/lib/pool.js b/lib/pool.js index 34e4fd7..4a4db6d 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { var Pool; diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index bae32aa..ce0d0bf 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -1,4 +1,4 @@ -/* parser generated by jison 0.4.13 */ +/* parser generated by jison 0.4.17 */ /* Returns a Parser object of the following structure: @@ -72,6 +72,7 @@ } */ var toffee_lang = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,7],$V1=[1,8],$V2=[1,7],$V3=[1,9],$V4=[5,15],$V5=[1,15],$V6=[2,19],$V7=[1,20],$V8=[11,12,13,14,15,16],$V9=[5,9,12,13,14,15,16],$Va=[5,9,12,15,16]; var parser = {trace: function trace() { }, yy: {}, symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffee_comment":8,"START_TOFFEE_COMMENT":9,"toffee_commented_region":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"END_COFFEE":13,"START_TOFFEE":14,"END_TOFFEE":15,"CODE":16,"coffee_zone":17,"coffee_code":18,"flip_to_toffee":19,"code":20,"$accept":0,"$end":1}, @@ -82,71 +83,88 @@ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* actio var $0 = $$.length - 1; switch (yystate) { -case 1: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; return this.$; +case 1: + this.$ = ["TOFFEE_ZONE", $$[$0-1]]; return this.$; break; -case 2: this.$ = [$$[$0]]; +case 2: case 16: + this.$ = [$$[$0]]; break; -case 3: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); +case 3: case 17: + this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); break; -case 4: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); +case 4: case 18: + this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); break; -case 5: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2]); +case 5: + this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2]); break; -case 6: this.$ = $$[$0]; +case 6: + this.$ = $$[$0]; break; -case 7: this.$ = []; +case 7: case 19: + this.$ = []; break; -case 15: this.$ = ["COFFEE_ZONE", $$[$0-1]]; +case 15: + this.$ = ["COFFEE_ZONE", $$[$0-1]]; break; -case 16: this.$ = [$$[$0]]; +case 20: + this.$ = ["TOFFEE_ZONE", $$[$0-1]]; break; -case 17: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); +case 21: + this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; break; -case 18: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); +case 22: + this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; break; -case 19: this.$ = []; -break; -case 20: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; -break; -case 21: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; -break; -case 22: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; -break; -case 23: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; +case 23: + var ln = yylineno + 1 - $$[$0].split("\n").length + 1; this.$ = [$$[$0], ln]; break; -case 24: var c = $$[$0-1][0] + $$[$0]; +case 24: + var c = $$[$0-1][0] + $$[$0]; var ln = yylineno + 1 - c.split("\n").length + 1; this.$ = [c, ln]; break; } }, -table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],16:[1,9],20:6},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],12:[1,7],15:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{5:[2,21],9:[2,21],12:[2,21],15:[2,21],16:[1,15]},{13:[2,19],14:[1,20],16:[1,9],17:16,18:17,19:18,20:19},{10:21,11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14]},{5:[2,23],9:[2,23],12:[2,23],13:[2,23],14:[2,23],15:[2,23],16:[2,23]},{1:[2,1]},{4:22,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{5:[2,4],15:[2,4]},{5:[2,6],15:[2,6]},{5:[2,24],9:[2,24],12:[2,24],13:[2,24],14:[2,24],15:[2,24],16:[2,24]},{13:[1,24]},{13:[2,16],14:[1,20],19:25},{13:[2,19],14:[1,20],16:[1,9],17:26,18:17,19:18,20:19},{13:[2,22],14:[2,22],16:[1,15]},{4:27,6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{11:[1,28],12:[1,29],13:[1,30],14:[1,31],15:[1,32],16:[1,33]},{5:[2,3],15:[2,3]},{5:[2,5],15:[2,5]},{5:[2,15],9:[2,15],12:[2,15],15:[2,15],16:[2,15]},{13:[2,19],14:[1,20],16:[1,9],17:34,18:17,19:18,20:19},{13:[2,18]},{15:[1,35]},{5:[2,8],9:[2,8],12:[2,8],15:[2,8],16:[2,8]},{11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[2,9]},{11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[2,10]},{11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11]},{11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12]},{11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13]},{13:[2,17]},{13:[2,20],14:[2,20],16:[2,20]}], +table: [{3:1,4:2,5:$V0,6:3,7:4,8:5,9:$V1,12:$V2,16:$V3,20:6},{1:[3]},{5:[1,10]},o($V4,[2,2],{7:11,8:12,9:$V1,12:$V2}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:13,9:$V1,12:$V2,16:$V3}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:14,9:$V1,12:$V2,16:$V3}),o([5,9,12,15],[2,21],{16:$V5}),{13:$V6,14:$V7,16:$V3,17:16,18:17,19:18,20:19},o($V8,[2,14],{10:21}),o($V9,[2,23]),{1:[2,1]},o($V4,$V0,{6:3,7:4,8:5,20:6,4:22,9:$V1,12:$V2,16:$V3}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:23,9:$V1,12:$V2,16:$V3}),o($V4,[2,4]),o($V4,[2,6]),o($V9,[2,24]),{13:[1,24]},{13:[2,16],14:$V7,19:25},{13:$V6,14:$V7,16:$V3,17:26,18:17,19:18,20:19},o([13,14],[2,22],{16:$V5}),{4:27,6:3,7:4,8:5,9:$V1,12:$V2,15:$V0,16:$V3,20:6},{11:[1,28],12:[1,29],13:[1,30],14:[1,31],15:[1,32],16:[1,33]},o($V4,[2,3]),o($V4,[2,5]),o($Va,[2,15]),{13:$V6,14:$V7,16:$V3,17:34,18:17,19:18,20:19},{13:[2,18]},{15:[1,35]},o($Va,[2,8]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),o($V8,[2,12]),o($V8,[2,13]),{13:[2,17]},o([13,14,16],[2,20])], defaultActions: {10:[2,1],26:[2,18],34:[2,17]}, parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); } else { - throw new Error(str); + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; + + throw new _parseError(str, hash); } }, parse: function parse(input) { - var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; var args = lstack.slice.call(arguments, 1); - this.lexer.setInput(input); - this.lexer.yy = this.yy; - this.yy.lexer = this.lexer; - this.yy.parser = this; - if (typeof this.lexer.yylloc == 'undefined') { - this.lexer.yylloc = {}; + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; } - var yyloc = this.lexer.yylloc; + var yyloc = lexer.yylloc; lstack.push(yyloc); - var ranges = this.lexer.options && this.lexer.options.ranges; - if (typeof this.yy.parseError === 'function') { - this.parseError = this.yy.parseError; + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; } else { this.parseError = Object.getPrototypeOf(this).parseError; } @@ -155,14 +173,15 @@ parse: function parse(input) { vstack.length = vstack.length - n; lstack.length = lstack.length - n; } - function lex() { - var token; - token = self.lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } + _token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + }; var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; while (true) { state = stack[stack.length - 1]; @@ -182,15 +201,15 @@ parse: function parse(input) { expected.push('\'' + this.terminals_[p] + '\''); } } - if (this.lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; } else { errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); } this.parseError(errStr, { - text: this.lexer.match, + text: lexer.match, token: this.terminals_[symbol] || symbol, - line: this.lexer.yylineno, + line: lexer.yylineno, loc: yyloc, expected: expected }); @@ -201,15 +220,15 @@ parse: function parse(input) { switch (action[0]) { case 1: stack.push(symbol); - vstack.push(this.lexer.yytext); - lstack.push(this.lexer.yylloc); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); stack.push(action[1]); symbol = null; if (!preErrorSymbol) { - yyleng = this.lexer.yyleng; - yytext = this.lexer.yytext; - yylineno = this.lexer.yylineno; - yyloc = this.lexer.yylloc; + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; if (recovering > 0) { recovering--; } @@ -237,7 +256,7 @@ parse: function parse(input) { yytext, yyleng, yylineno, - this.yy, + sharedState.yy, action[1], vstack, lstack @@ -262,9 +281,9 @@ parse: function parse(input) { } return true; }}; -/* generated by jison-lex 0.2.1 */ +/* generated by jison-lex 0.3.4 */ var lexer = (function(){ -var lexer = { +var lexer = ({ EOF:1, @@ -277,7 +296,8 @@ parseError:function parseError(str, hash) { }, // resets the lexer, sets new input -setInput:function (input) { +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; this._input = input; this._more = this._backtrack = this.done = false; this.yylineno = this.yyleng = 0; @@ -325,7 +345,7 @@ unput:function (ch) { var lines = ch.split(/(?:\r\n?|\n)/g); this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len - 1); + this.yytext = this.yytext.substr(0, this.yytext.length - len); //this.yyleng -= len; this.offset -= len; var oldLines = this.match.split(/(?:\r\n?|\n)/g); @@ -587,7 +607,6 @@ stateStackSize:function stateStackSize() { }, options: {}, performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:return 9; @@ -610,7 +629,7 @@ break; }, rules: [/^(?:\{##)/,/^(?:##\})/,/^(?::\})/,/^(?:\{:)/,/^(?:\{#)/,/^(?:#\})/,/^(?:[^{}#\\:\-]+|[\\{}#:\-])/,/^(?:$)/], conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7],"inclusive":true}} -}; +}); return lexer; })(); parser.lexer = lexer; diff --git a/lib/utils.js b/lib/utils.js index 45f1cfa..8838331 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { var lex, lexer; @@ -7,13 +7,13 @@ lex = new lexer.Lexer(); exports.interpolateString = function(str) { + /* Similar to the interpolateString function in CoffeeScript, except that it doesn't actually work on anything inside an outer #{}; we're just looking to recognize them. - */ - - var expr, i, inner, interpolated, letter, pi, res, tag, tokens, value, _i, _len, _ref; + */ + var expr, i, inner, interpolated, j, len, letter, pi, ref, res, tag, tokens, value; tokens = []; res = []; pi = 0; @@ -48,8 +48,8 @@ if (interpolated = tokens.length > 1) { res.push('(', '('); } - for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) { - _ref = tokens[i], tag = _ref[0], value = _ref[1]; + for (i = j = 0, len = tokens.length; j < len; i = ++j) { + ref = tokens[i], tag = ref[0], value = ref[1]; if (i) { res.push('+', '+'); } diff --git a/lib/view.js b/lib/view.js index 3347776..e93e9a6 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,12 +1,12 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.12.2 (function() { - var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, spaces, states, tabs, toffeeError, util, utils, view, vm, _ref, _ref1; + var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, ref, ref1, spaces, states, tabs, toffeeError, util, utils, view, vm; parser = require('./toffee_lang').parser; - _ref = require('./errorHandler'), errorHandler = _ref.errorHandler, toffeeError = _ref.toffeeError, errorTypes = _ref.errorTypes; + ref = require('./errorHandler'), errorHandler = ref.errorHandler, toffeeError = ref.toffeeError, errorTypes = ref.errorTypes; - _ref1 = require('./consts'), states = _ref1.states, TAB_SPACES = _ref1.TAB_SPACES; + ref1 = require('./consts'), states = ref1.states, TAB_SPACES = ref1.TAB_SPACES; utils = require('./utils'); @@ -16,32 +16,32 @@ try { coffee = require("iced-coffee-script"); - } catch (_error) { - e = _error; + } catch (error) { + e = error; coffee = require("coffee-script"); } spaces = function(n) { var i; return ((function() { - var _i, _results; - _results = []; - for (i = _i = 0; 0 <= n ? _i < n : _i > n; i = 0 <= n ? ++_i : --_i) { - _results.push(" "); + var j, ref2, results; + results = []; + for (i = j = 0, ref2 = n; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) { + results.push(" "); } - return _results; + return results; })()).join(""); }; tabs = function(n) { var i; return ((function() { - var _i, _results; - _results = []; - for (i = _i = 0; 0 <= n ? _i < n : _i > n; i = 0 <= n ? ++_i : --_i) { - _results.push(spaces(TAB_SPACES)); + var j, ref2, results; + results = []; + for (i = j = 0, ref2 = n; 0 <= ref2 ? j < ref2 : j > ref2; i = 0 <= ref2 ? ++j : --j) { + results.push(spaces(TAB_SPACES)); } - return _results; + return results; })()).join(""); }; @@ -52,8 +52,8 @@ js = uglify.minify(js, { fromString: true }).code; - } catch (_error) { - e = _error; + } catch (error) { + e = error; console.log(js); console.log(e); process.exit(1); @@ -62,24 +62,24 @@ }; getCommonHeaders = function(tab_level, include_bundle_headers, auto_escape) { + /* each view will use this, or if they're bundled together, it'll only be used once. include_bundle_headers: includes some functions needed for browser use - */ - + */ var __; __ = tabs(tab_level); - return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o? then return \"null\"\n" + __ + " else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026')\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); + return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o? then return \"null\"\n" + __ + " else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029')\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { + /* header stuff only needed when compiling to a JS file - */ - + */ var __; __ = tabs(tab_level); return "\n\n" + __ + "toffee.__print = (locals, o) ->\n" + __ + " if locals.__toffee.state is toffee.states.COFFEE\n" + __ + " locals.__toffee.out.push o\n" + __ + " return ''\n" + __ + " else\n" + __ + " return \"\#{o}\"\n\n" + __ + "toffee.__normalize = (path) ->\n" + __ + " if (not path?) or path is \"/\"\n" + __ + " return path\n" + __ + " else\n" + __ + " parts = path.split \"/\"\n" + __ + " np = []\n" + __ + " # make sure path always starts with '/'\n" + __ + " if parts[0]\n" + __ + " np.push ''\n" + __ + " for part in parts\n" + __ + " if part is \"..\"\n" + __ + " if np.length > 1\n" + __ + " np.pop()\n" + __ + " else\n" + __ + " np.push part\n" + __ + " else\n" + __ + " if part isnt \".\"\n" + __ + " np.push part\n" + __ + " path = np.join \"/\"\n" + __ + " if not path then path = \"/\"\n" + __ + " return path\n\n" + __ + "toffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.noInheritance = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__load = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.repress = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__inlineInclude = (path, locals, parent_locals) ->\n" + __ + " options = locals or {}\n" + __ + " options.passback = {}\n" + __ + " options.__toffee = options.__toffee or {}\n" + __ + "\n" + __ + " # we need to make a shallow copy of parent variables\n" + __ + " reserved = {}\n" + __ + " reserved[k] = true for k in [\"passback\", \"load\", \"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\", \"postProcess\"]\n" + __ + " if not options.__toffee.noInheritance\n" + __ + " for k,v of parent_locals when not locals?[k]?\n" + __ + " if not reserved[k]?\n" + __ + " options[k] = v\n" + __ + "\n" + __ + " if not toffee.templates[path]\n" + __ + " return \"Inline toffee include: Could not find \#{path}\"\n" + __ + " else\n" + __ + " res = toffee.templates[path].pub options\n" + __ + " for k,v of options.passback\n" + __ + " parent_locals[k] = v\n" + __ + " return res"; @@ -99,12 +99,11 @@ view = (function() { function view(txt, options) { + /* important options: cb: if this is set, compilation will happen async and cb will be executed when it's ready - */ - - var _this = this; + */ options = options || {}; this.fileName = options.fileName || options.filename || null; this.bundlePath = options.bundlePath || "/"; @@ -123,19 +122,21 @@ this.fun = null; this.error = null; if (options.cb) { - this._prepAsync(txt, options.ctx, (function() { - return options.cb(_this); - })); + this._prepAsync(txt, options.ctx, ((function(_this) { + return function() { + return options.cb(_this); + }; + })(this))); } } view.prototype._prepAsync = function(txt, ctx, cb) { + /* Only once it's fully compiled does it callback. Defers via setTimeouts in each stage in the compile process for CPU friendliness. This is a lot prettier with iced-coffee-script. - */ - + */ var v; ctx = ctx || vm.createContext({}); this._log("Prepping " + (this.fileName != null ? this.fileName : 'unknown') + " async."); @@ -155,9 +156,9 @@ }; view.prototype._log = function(o) { - var _ref2; + var ref2; if (this.verbose) { - if ((_ref2 = typeof o) === "string" || _ref2 === "number" || _ref2 === "boolean") { + if ((ref2 = typeof o) === "string" || ref2 === "number" || ref2 === "boolean") { return console.log("toffee: " + o); } else { return console.log("toffee: " + (util.inspect(o))); @@ -166,47 +167,47 @@ }; view.prototype._cleanTabs = function(obj) { + /* replaces tabs with spaces in their coffee regions - */ - - var item, _i, _len, _ref2, _ref3, _results; - if ((_ref2 = obj[0]) === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { - _ref3 = obj[1]; - _results = []; - for (_i = 0, _len = _ref3.length; _i < _len; _i++) { - item = _ref3[_i]; - _results.push(this._cleanTabs(item)); + */ + var item, j, len, ref2, ref3, results; + if ((ref2 = obj[0]) === "TOFFEE_ZONE" || ref2 === "COFFEE_ZONE") { + ref3 = obj[1]; + results = []; + for (j = 0, len = ref3.length; j < len; j++) { + item = ref3[j]; + results.push(this._cleanTabs(item)); } - return _results; + return results; } else if (obj[0] === "COFFEE") { return obj[1] = obj[1].replace(/\t/g, tabs(1)); } }; view.prototype.run = function(options, ctx) { + /* returns [err, str] - */ - - var fun, line, pair, res, txt, _i, _len, _ref2; + */ + var fun, j, len, line, pair, ref2, res, txt; ctx = ctx || vm.createContext({}); fun = this._toFun(ctx); res = null; if (!this.error) { try { res = fun(options); - } catch (_error) { - e = _error; + } catch (error) { + e = error; this.error = new toffeeError(this, errorTypes.RUNTIME, e); } } if (this.error) { if (this.prettyLogErrors) { txt = this.error.getPrettyPrintText(); - _ref2 = txt.split("\n"); - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - line = _ref2[_i]; + ref2 = txt.split("\n"); + for (j = 0, len = ref2.length; j < len; j++) { + line = ref2[j]; console.log("toffee err: " + line); } } @@ -228,15 +229,15 @@ }; view.prototype._toTokenObj = function() { + /* compiles Toffee to token array - */ - + */ if (this.tokenObj == null) { try { this.tokenObj = parser.parse(this.txt); - } catch (_error) { - e = _error; + } catch (error) { + e = error; this.error = new toffeeError(this, errorTypes.PARSER, e); } if (this.error == null) { @@ -254,7 +255,7 @@ d = Date.now(); vm.runInContext(txt, ctx); this.fun = ctx['_TMPL_']; - this._log("" + this.fileName + " compiled to scriptObj in " + (Date.now() - d) + "ms"); + this._log(this.fileName + " compiled to scriptObj in " + (Date.now() - d) + "ms"); } } return this.fun; @@ -274,15 +275,15 @@ opts.bare = false; } this.javaScript = coffee.compile(c, opts); - } catch (_error) { - e = _error; + } catch (error) { + e = error; this.error = new toffeeError(this, errorTypes.COFFEE_COMPILE, e); } if (this.minimize && !this.error) { d2 = Date.now(); this.javaScript = minimizeJs(this.javaScript); } - this._log("" + this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms"); + this._log(this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms"); } } return this.javaScript; @@ -299,12 +300,12 @@ res += this._toCoffeeRecurse(tobj, TAB_SPACES * (1 + this._globalTabLevel()), 0, {})[0]; res += this._coffeeFooters(); this.coffeeScript = res; - } catch (_error) { - e = _error; + } catch (error) { + e = error; console.log(e); this.error; } - this._log("" + this.fileName + " compiled to CoffeeScript in " + (Date.now() - d) + "ms"); + this._log(this.fileName + " compiled to CoffeeScript in " + (Date.now() - d) + "ms"); } } return this.coffeeScript; @@ -320,12 +321,12 @@ }; view.prototype._snippetHasEscapeOverride = function(str) { - var token, _i, _len, _ref2, _ref3; - _ref2 = ['print', ' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify']; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - token = _ref2[_i]; + var j, len, ref2, ref3, token; + ref2 = ['print', ' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify']; + for (j = 0, len = ref2.length; j < len; j++) { + token = ref2[j]; if (str.slice(0, token.length) === token) { - if ((str.length > token.length) && ((_ref3 = str[token.length]) === ' ' || _ref3 === '\t' || _ref3 === '\n' || _ref3 === '(')) { + if ((str.length > token.length) && ((ref3 = str[token.length]) === ' ' || ref3 === '\t' || ref3 === '\n' || ref3 === '(')) { return true; } } @@ -334,10 +335,10 @@ }; view.prototype._snippetIsSoloToken = function(str) { + /* if the inside is something like #{ foo } not #{ foo.bar } or other complex thing. - */ - + */ if (str.match(/^[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*$/)) { return true; } @@ -345,7 +346,7 @@ }; view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline, state_carry) { - var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref2, _ref3, _ref4, _ref5; + var c, chunk, delta, i, i_delta, ind, interp, item, j, k, l, lbreak, len, len1, len2, len3, line, lineno, lines, m, part, ref2, ref3, ref4, ref5, res, s, t_int, temp_indent_level, zone_baseline; res = ""; i_delta = 0; switch (obj[0]) { @@ -354,10 +355,10 @@ indent_level += TAB_SPACES; } res += "\n" + (spaces(indent_level)) + "_ts " + states.TOFFEE; - _ref2 = obj[1]; - for (_i = 0, _len = _ref2.length; _i < _len; _i++) { - item = _ref2[_i]; - _ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline, state_carry), s = _ref3[0], delta = _ref3[1]; + ref2 = obj[1]; + for (j = 0, len = ref2.length; j < len; j++) { + item = ref2[j]; + ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline, state_carry), s = ref3[0], delta = ref3[1]; res += s; } break; @@ -365,10 +366,10 @@ res += "\n" + (spaces(indent_level)) + "_ts " + states.COFFEE; zone_baseline = this._getZoneBaseline(obj[1]); temp_indent_level = indent_level; - _ref4 = obj[1]; - for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { - item = _ref4[_j]; - _ref5 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline, state_carry), s = _ref5[0], delta = _ref5[1]; + ref4 = obj[1]; + for (k = 0, len1 = ref4.length; k < len1; k++) { + item = ref4[k]; + ref5 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline, state_carry), s = ref5[0], delta = ref5[1]; res += s; temp_indent_level = indent_level + delta; } @@ -379,14 +380,14 @@ lineno = obj[2]; try { t_int = utils.interpolateString(obj[1]); - } catch (_error) { - e = _error; + } catch (error) { + e = error; e.relayed_line_range = [lineno, lineno + obj[1].split("\n").length]; this.error = new toffeeError(this, errorTypes.STR_INTERPOLATE, e); throw e; } - for (_k = 0, _len2 = t_int.length; _k < _len2; _k++) { - part = t_int[_k]; + for (l = 0, len2 = t_int.length; l < len2; l++) { + part = t_int[l]; if (part[0] === "TOKENS") { res += this._printLineNo(lineno, ind); interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); @@ -401,7 +402,7 @@ lineno += part[1].split("\n").length - 1; } else { lines = part[1].split("\n"); - for (i = _l = 0, _len3 = lines.length; _l < _len3; i = ++_l) { + for (i = m = 0, len3 = lines.length; m < len3; i = ++m) { line = lines[i]; res += this._printLineNo(lineno, ind); lbreak = i !== lines.length - 1 ? "\n" : ""; @@ -432,12 +433,12 @@ }; view.prototype._quoteStr = function(s) { + /* returns a triple-quoted string, dividing into single quoted start and stops, if the string begins with double quotes, since coffee doesn't want to let us escape those. - */ - + */ var follow, lead, res; lead = ""; follow = ""; @@ -471,11 +472,11 @@ }; view.prototype._escapeForStr = function(s) { + /* escapes a string so it can make it into coffeescript triple quotes without losing whitespace, etc. - */ - + */ s = s.replace(/\\/g, '\\\\'); s = s.replace(/\n/g, '\\n'); s = s.replace(/\t/g, '\\t'); @@ -483,9 +484,9 @@ }; view.prototype._getZoneBaseline = function(obj_arr) { - var ib, obj, _i, _len; - for (_i = 0, _len = obj_arr.length; _i < _len; _i++) { - obj = obj_arr[_i]; + var ib, j, len, obj; + for (j = 0, len = obj_arr.length; j < len; j++) { + obj = obj_arr[j]; if (obj[0] === "COFFEE") { ib = this._getIndentationBaseline(obj[1]); if (ib != null) { @@ -497,11 +498,11 @@ }; view.prototype._getIndentationBaseline = function(coffee) { - var i, line, lines, res, _i, _len; + var i, j, len, line, lines, res; res = null; lines = coffee.split("\n"); if (lines.length) { - for (i = _i = 0, _len = lines.length; _i < _len; i = ++_i) { + for (i = j = 0, len = lines.length; j < len; i = ++j) { line = lines[i]; if ((!line.match(/^[ ]*$/)) || i === (lines.length - 1)) { res = line.match(/[ ]*/)[0].length; @@ -516,13 +517,13 @@ }; view.prototype._getIndentationDelta = function(coffee, baseline) { + /* given an arbitrarily indented set of coffeescript, returns the delta between the first and last lines, in chars. Ignores leading/trailing whitespace lines If passed a baseline, uses that instead of own. - */ - + */ var lines, res, y, y_l; if (baseline == null) { baseline = this._getIndentationBaseline(coffee); @@ -555,13 +556,13 @@ strip = indent_baseline; indent = spaces(indent_level); res = ((function() { - var _i, _len, _results; - _results = []; - for (_i = 0, _len = lines.length; _i < _len; _i++) { - line = lines[_i]; - _results.push("" + indent + line.slice(strip)); + var j, len, results; + results = []; + for (j = 0, len = lines.length; j < len; j++) { + line = lines[j]; + results.push("" + indent + line.slice(strip)); } - return _results; + return results; })()).join("\n"); return res; }; @@ -582,7 +583,7 @@ var __, ___; __ = this._globalTabs(); ___ = tabs(1); - return "" + (this.browserMode ? '' : '_TMPL_ = (__toffee_run_input) ->' + (getCommonHeaders(1, false, this.autoEscape))) + "\n" + __ + "# browser mode = " + this.browserMode + "\n" + __ + "tmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n" + __ + " bundlePath: \"" + this.bundlePath + "\"\n" + __ + "tmpl.render = tmpl.pub = (__locals) ->\n" + __ + ___ + "__locals = __locals or {}\n" + __ + ___ + "__repress = __locals.__toffee?.repress\n" + __ + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + __ + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + __ + ___ + "_ts = (x) -> __locals.__toffee.state = x\n" + __ + ___ + "toffee.__augmentLocals __locals, \"" + this.bundlePath + "\"\n\n" + __ + ___ + "`with (__locals) {`\n" + __ + ___ + "__toffee.out = []"; + return (this.browserMode ? '' : '_TMPL_ = (__toffee_run_input) ->' + (getCommonHeaders(1, false, this.autoEscape))) + "\n" + __ + "# browser mode = " + this.browserMode + "\n" + __ + "tmpl = toffee.templates[\"" + this.bundlePath + "\"] =\n" + __ + " bundlePath: \"" + this.bundlePath + "\"\n" + __ + "tmpl.render = tmpl.pub = (__locals) ->\n" + __ + ___ + "__locals = __locals or {}\n" + __ + ___ + "__repress = __locals.__toffee?.repress\n" + __ + ___ + "_to = (x) -> __locals.__toffee.out.push x\n" + __ + ___ + "_ln = (x) -> __locals.__toffee.lineno = x\n" + __ + ___ + "_ts = (x) -> __locals.__toffee.state = x\n" + __ + ___ + "toffee.__augmentLocals __locals, \"" + this.bundlePath + "\"\n\n" + __ + ___ + "`with (__locals) {`\n" + __ + ___ + "__toffee.out = []"; }; view.prototype._coffeeFooters = function() { diff --git a/package.json b/package.json index 4289061..c919c2b 100644 --- a/package.json +++ b/package.json @@ -1,36 +1,36 @@ { - "name": "toffee", - "description": "A NodeJs, Express 3.x, Express 2.x, and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.12", - "directories": { - "lib": "./lib" - }, - "main": "index.js", - "author": "Chris Coyne ", - "bin": "./bin/toffee", - "dependencies": { - "coffee-script": "*", - "commander": "*", - "uglify-js": "*", - "mkdirp": "*", - "highlight.js": "*" - }, - "devDependencies": { - "jison" : "*", - "zombie": "*", - "assert": "*", - "express": "*", - "tablify": "*", - "iced-coffee-script": "*" - }, - "repository": { - "type": "git", - "url": "http://github.com/malgorithms/toffee" - }, - "licenses": [ - { - "type": "MIT", - "url": "http://github.com/malgorithms/toffee/raw/master/LICENSE" - } - ] -} \ No newline at end of file + "name": "toffee", + "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", + "version": "0.1.13", + "directories": { + "lib": "./lib" + }, + "main": "index.js", + "author": "Chris Coyne ", + "bin": "./bin/toffee", + "dependencies": { + "coffee-script": "*", + "commander": "*", + "uglify-js": "*", + "mkdirp": "*", + "highlight.js": "*" + }, + "devDependencies": { + "assert": "*", + "express": "^3.21.2", + "iced-coffee-script": "*", + "jison": "*", + "tablify": "*", + "zombie": "*" + }, + "repository": { + "type": "git", + "url": "http://github.com/malgorithms/toffee" + }, + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/malgorithms/toffee/raw/master/LICENSE" + } + ] +} diff --git a/src/view.coffee b/src/view.coffee index 0b9c92c..826b914 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -41,7 +41,7 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__}toffee.__json = (locals, o) -> #{__} if not o? then return "null" -#{__} else return "" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026') +#{__} else return "" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029') #{__}toffee.__raw = (locals, o) -> o @@ -233,7 +233,7 @@ class view run: (options, ctx) -> ### returns [err, str] - ### + ### ctx = ctx or vm.createContext({}) fun = @_toFun(ctx) res = null diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index 9d77017..87a018f 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -3,6 +3,7 @@ y = '
    ' z = 'click&clack' w = [1, 2, {"place": "The Dreadfort"}] + v = ["\u2028", "\u2029"] #}

    default x = #{x} default y = #{y} @@ -10,6 +11,7 @@ default w = #{w} default r = #{r} default w.foo = #{w.foo} + default v = #{v}

    raw x = #{raw x} @@ -22,6 +24,7 @@ y = #{json y} z = #{json z} w = #{json w} + v = #{json v}

    {# @@ -36,7 +39,8 @@ print " json printed x = #{ raw raw raw raw json x }\n" print " json printed y = #{ raw raw raw raw json y }\n" print " json printed z = #{ raw raw raw raw json z }\n" - print " json printed w = #{ raw raw raw raw json w }" + print " json printed w = #{ raw raw raw raw json w }\n" + print " json printed v = #{ raw raw raw raw json v }" #}

    @@ -46,4 +50,4 @@ print " html printed longhand z = #{ __toffee.html z }\n" print " html printed longhand w = #{ __toffee.html w }" #} -

    \ No newline at end of file +

    diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index 6fdefe5..0be58e9 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -5,6 +5,7 @@ default w = [1,2,{"place":"The Dreadfort"}] default r = default w.foo = + default v = ["\u2028","\u2029"]

    raw x = "Hello world" @@ -17,6 +18,7 @@ y = "\u003Chr /\u003E" z = "click\u0026clack" w = [1,2,{"place":"The Dreadfort"}] + v = ["\u2028","\u2029"]

    raw printed x = "Hello world" @@ -29,10 +31,11 @@ json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" json printed w = [1,2,{"place":"The Dreadfort"}] + json printed v = ["\u2028","\u2029"]

    html printed longhand x = "Hello world" html printed longhand y = <hr /> html printed longhand z = click&clack html printed longhand w = 1,2,[object Object] -

    \ No newline at end of file +

    diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 09387c0..62ef2c9 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,107 +1,107 @@ ; -(function(){var tmpl;return tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var count,i,__repress,_i,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/big_file/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),count=0,i=_i=0;2>_i;i=++_i)_ts(1),_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...");return __toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var count,i,__repress,_i,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/big_file/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),count=0,i=_i=0;_i<2;i=++_i){_ts(1),_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... ");_to(""+escape(count++));_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...")}return __toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/comments/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3"),_ts(2),_ts(1),_to("\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/comments/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3"),_ts(2),_ts(1),_to("\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    default w = [1,2,{"place":"The Dreadfort"}] default r = default w.foo = + default v = ["\u2028","\u2029"]

    raw x = "Hello world" @@ -147,6 +148,7 @@ You have 3 female friends. y = "\u003Chr /\u003E" z = "click\u0026clack" w = [1,2,{"place":"The Dreadfort"}] + v = ["\u2028","\u2029"]

    raw printed x = "Hello world" @@ -159,13 +161,15 @@ You have 3 female friends. json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" json printed w = [1,2,{"place":"The Dreadfort"}] + json printed v = ["\u2028","\u2029"]

    html printed longhand x = "Hello world" html printed longhand y = <hr /> html printed longhand z = click&clack html printed longhand w = 1,2,[object Object] -

    +

    + @@ -438,13 +442,13 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 postProcess: function(s) { var c; return ((function() { - var _i, _results; - _results = []; - for (_i = s.length - 1; _i >= 0; _i += -1) { - c = s[_i]; - _results.push(c); + var i, results; + results = []; + for (i = s.length - 1; i >= 0; i += -1) { + c = s[i]; + results.push(c); } - return _results; + return results; })()).join(''); } })); diff --git a/toffee.js b/toffee.js index 73ffca5..964dbde 100644 --- a/toffee.js +++ b/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); } }; From 2d1f080ca3893967eeba31b5bc73a0170720e2a3 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 9 Jun 2017 10:59:34 -0400 Subject: [PATCH 147/163] remove minification/uglify; default escape strips RTL unicode and related --- bin/toffee | 0 index.coffee | 2 - index.js | 4 +- lib/command_line.js | 5 +- lib/engine.js | 4 +- lib/errorHandler.js | 4 +- lib/view.js | 34 +- package.json | 3 +- src/command_line.coffee | 6 +- src/engine.coffee | 6 +- src/errorHandler.coffee | 16 +- src/view.coffee | 58 +- test/cases/escape/input.toffee | 7 +- test/cases/escape/output.toffee | 6 +- .../express3/public/javascripts/test_cases.js | 3977 ++++++++++++++++- test/express3/public/javascripts/toffee.js | 4 +- test/express3/views/index.toffee | 6 +- test/generate_express_test.coffee | 4 +- test/run_cases.iced | 10 - toffee.js | 4 +- 20 files changed, 4005 insertions(+), 155 deletions(-) mode change 100644 => 100755 bin/toffee diff --git a/bin/toffee b/bin/toffee old mode 100644 new mode 100755 diff --git a/index.coffee b/index.coffee index 700058e..84605af 100644 --- a/index.coffee +++ b/index.coffee @@ -66,7 +66,6 @@ exports.compile = require('./lib/view').expressCompile exports.configurable_compile = (source, opts) -> opts = opts or {} - opts.minimize = if opts.minimize? then opts.minimize else false opts.headers = if opts.headers? then opts.headers else true opts.filename = opts.filename or null opts.to_coffee = opts.to_coffee or false @@ -77,7 +76,6 @@ exports.configurable_compile = (source, opts) -> filename: opts.filename bundlePath: opts.filename browserMode: true - minimize: opts.minimize } if opts.to_coffee output = v.toCoffee() diff --git a/index.js b/index.js index f29e459..275c688 100644 --- a/index.js +++ b/index.js @@ -72,7 +72,6 @@ exports.configurable_compile = function(source, opts) { var err, header, output, v; opts = opts || {}; - opts.minimize = opts.minimize != null ? opts.minimize : false; opts.headers = opts.headers != null ? opts.headers : true; opts.filename = opts.filename || null; opts.to_coffee = opts.to_coffee || false; @@ -80,8 +79,7 @@ v = new view(source, { filename: opts.filename, bundlePath: opts.filename, - browserMode: true, - minimize: opts.minimize + browserMode: true }); if (opts.to_coffee) { output = v.toCoffee(); diff --git a/lib/command_line.js b/lib/command_line.js index d5779ed..dff3ade 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -23,7 +23,7 @@ return console.log("\n Examples: \n \n toffee views # recurses through views and builds views.js \n toffee foo.toffee # builds foo.js \n toffee views -o templates # builds templates.js \n toffee -p foo.toffee # outputs JS to stdout \n \n \n Then use in your : \n \n \n \n"); }); - program.version(getVersionNumber()).option('-o, --output [path]', 'file (bundles all output into a single .js)').option('-d, --output_dir [path]', 'compiles templates into parallel .js files').option('-p, --print', 'print to stdout').option('-m, --minimize', 'minimize output (ugly, smaller file(s))').option('-c, --coffee', 'output to CoffeeScript (not JS)').option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates').option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)').parse(process.argv); + program.version(getVersionNumber()).option('-o, --output [path]', 'file (bundles all output into a single .js)').option('-d, --output_dir [path]', 'compiles templates into parallel .js files').option('-p, --print', 'print to stdout').option('-c, --coffee', 'output to CoffeeScript (not JS)').option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates').option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)').parse(process.argv); compile = function(start_path, full_path) { @@ -43,8 +43,7 @@ v = new view(source, { fileName: full_path, bundlePath: bundle_path, - browserMode: true, - minimize: (program.minimize != null) && program.minimize + browserMode: true }); if (program.coffee) { output = v.toCoffee(); diff --git a/lib/engine.js b/lib/engine.js index 8429718..8f01f8b 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -35,7 +35,6 @@ this.render = bind(this.render, this); options = options || {}; this.verbose = options.verbose || false; - this.minimize = options.minimize || false; this.pool = new Pool(sandboxCons, options.poolSize || MAX_CACHED_SANDBOXES); this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; this.prettyLogErrors = options.prettyLogErrors != null ? options.prettyLogErrors : true; @@ -353,8 +352,7 @@ prettyPrintErrors: this.prettyPrintErrors, prettyLogErrors: this.prettyLogErrors, autoEscape: this.autoEscape, - additionalErrorHandler: this.additionalErrorHandler, - minimize: this.minimize + additionalErrorHandler: this.additionalErrorHandler }; }; diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 0e968e4..58933ac 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -191,14 +191,14 @@ toffeeError.prototype.getPrettyPrint = function() { /* - returns an HTML blob explaining the error + returns an HTML blob explaining the error with lines highlighted */ var cerr, count, extra, header, i, item, j, k, l, len, line, padding, padding_len, ref, ref1, ref2, ref3, ref4, res; cerr = this.getConvertedError(); res = ""; header = cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; - res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; + res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; if ((ref = cerr.stack) != null ? ref.length : void 0) { res += "
    "; count = 0; diff --git a/lib/view.js b/lib/view.js index e93e9a6..16ca902 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.12.2 (function() { - var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, minimizeJs, parser, ref, ref1, spaces, states, tabs, toffeeError, util, utils, view, vm; + var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, parser, ref, ref1, spaces, states, tabs, toffeeError, util, utils, view, vm; parser = require('./toffee_lang').parser; @@ -45,22 +45,6 @@ })()).join(""); }; - minimizeJs = function(js) { - var uglify; - try { - uglify = require('uglify-js'); - js = uglify.minify(js, { - fromString: true - }).code; - } catch (error) { - e = error; - console.log(js); - console.log(e); - process.exit(1); - } - return js; - }; - getCommonHeaders = function(tab_level, include_bundle_headers, auto_escape) { /* @@ -71,7 +55,7 @@ */ var __; __ = tabs(tab_level); - return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o? then return \"null\"\n" + __ + " else return \"\" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029')\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); + return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o?\n" + __ + " return \"null\"\n" + __ + " else\n" + __ + " return \"\" + JSON.stringify(o)\n" + __ + " .replace(//g,'\\\\u003E')\n" + __ + " .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028')\n" + __ + " .replace(/\\u2029/g, '\\\\u2029')\n" + __ + " .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&')\n" + __ + " .replace(//g, '>')\n" + __ + " .replace(/\"/g, '"')\n" + __ + " .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { @@ -85,15 +69,12 @@ return "\n\n" + __ + "toffee.__print = (locals, o) ->\n" + __ + " if locals.__toffee.state is toffee.states.COFFEE\n" + __ + " locals.__toffee.out.push o\n" + __ + " return ''\n" + __ + " else\n" + __ + " return \"\#{o}\"\n\n" + __ + "toffee.__normalize = (path) ->\n" + __ + " if (not path?) or path is \"/\"\n" + __ + " return path\n" + __ + " else\n" + __ + " parts = path.split \"/\"\n" + __ + " np = []\n" + __ + " # make sure path always starts with '/'\n" + __ + " if parts[0]\n" + __ + " np.push ''\n" + __ + " for part in parts\n" + __ + " if part is \"..\"\n" + __ + " if np.length > 1\n" + __ + " np.pop()\n" + __ + " else\n" + __ + " np.push part\n" + __ + " else\n" + __ + " if part isnt \".\"\n" + __ + " np.push part\n" + __ + " path = np.join \"/\"\n" + __ + " if not path then path = \"/\"\n" + __ + " return path\n\n" + __ + "toffee.__partial = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__snippet = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.noInheritance = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__load = (parent_tmpl, parent_locals, path, vars) ->\n" + __ + " path = toffee.__normalize parent_tmpl.bundlePath + \"/../\" + path\n" + __ + " vars = if vars? then vars else {}\n" + __ + " vars.__toffee = vars.__toffee or {}\n" + __ + " vars.__toffee.repress = true\n" + __ + " return toffee.__inlineInclude path, vars, parent_locals\n\n" + __ + "toffee.__inlineInclude = (path, locals, parent_locals) ->\n" + __ + " options = locals or {}\n" + __ + " options.passback = {}\n" + __ + " options.__toffee = options.__toffee or {}\n" + __ + "\n" + __ + " # we need to make a shallow copy of parent variables\n" + __ + " reserved = {}\n" + __ + " reserved[k] = true for k in [\"passback\", \"load\", \"print\", \"partial\", \"snippet\", \"layout\", \"__toffee\", \"postProcess\"]\n" + __ + " if not options.__toffee.noInheritance\n" + __ + " for k,v of parent_locals when not locals?[k]?\n" + __ + " if not reserved[k]?\n" + __ + " options[k] = v\n" + __ + "\n" + __ + " if not toffee.templates[path]\n" + __ + " return \"Inline toffee include: Could not find \#{path}\"\n" + __ + " else\n" + __ + " res = toffee.templates[path].pub options\n" + __ + " for k,v of options.passback\n" + __ + " parent_locals[k] = v\n" + __ + " return res"; }; - getCommonHeadersJs = function(include_bundle_headers, auto_escape, minimize) { + getCommonHeadersJs = function(include_bundle_headers, auto_escape) { var ch, js; ch = getCommonHeaders(0, include_bundle_headers, auto_escape); js = coffee.compile(ch, { bare: true }); - if (minimize) { - js = minimizeJs(js); - } return js; }; @@ -108,7 +89,6 @@ this.fileName = options.fileName || options.filename || null; this.bundlePath = options.bundlePath || "/"; this.browserMode = options.browserMode || false; - this.minimize = options.minimize || false; this.verbose = options.verbose || false; this.fsError = options.fsError || false; this.prettyPrintErrors = options.prettyPrintErrors != null ? options.prettyPrintErrors : true; @@ -262,7 +242,7 @@ }; view.prototype.toJavaScript = function() { - var c, d, d2, opts; + var c, d, opts; if (this.javaScript == null) { c = this.toCoffee(); if (!this.error) { @@ -279,10 +259,6 @@ e = error; this.error = new toffeeError(this, errorTypes.COFFEE_COMPILE, e); } - if (this.minimize && !this.error) { - d2 = Date.now(); - this.javaScript = minimizeJs(this.javaScript); - } this._log(this.fileName + " compiled to JavaScript in " + (Date.now() - d) + "ms"); } } @@ -312,7 +288,7 @@ }; view.prototype._printLineNo = function(n, ind) { - if (this.minimize || ((this.lastLineNo != null) && (n === this.lastLineNo))) { + if ((this.lastLineNo != null) && (n === this.lastLineNo)) { return ""; } else { this.lastLineNo = n; diff --git a/package.json b/package.json index c919c2b..e81bf58 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.1.13", + "version": "0.2.0", "directories": { "lib": "./lib" }, @@ -11,7 +11,6 @@ "dependencies": { "coffee-script": "*", "commander": "*", - "uglify-js": "*", "mkdirp": "*", "highlight.js": "*" }, diff --git a/src/command_line.coffee b/src/command_line.coffee index d7418ab..da54047 100644 --- a/src/command_line.coffee +++ b/src/command_line.coffee @@ -30,14 +30,13 @@ program.on '--help', -> \n var pubvars = { name: \"Hans Gruber\", criminal: true }; \n var some_html = toffee.render (\"views/layout.toffee\", pubvars); \n -\n +\n " program.version(getVersionNumber()) .option('-o, --output [path]', 'file (bundles all output into a single .js)') .option('-d, --output_dir [path]', 'compiles templates into parallel .js files') .option('-p, --print', 'print to stdout') - .option('-m, --minimize', 'minimize output (ugly, smaller file(s))') .option('-c, --coffee', 'output to CoffeeScript (not JS)') .option('-b, --bundle_path [path]', 'bundle_path (instead of "/") for templates') .option('-n, --no_headers', 'exclude boilerplate toffee (requires toffee.js included separately)') @@ -63,7 +62,6 @@ compile = (start_path, full_path) -> fileName: full_path bundlePath: bundle_path browserMode: true - minimize: program.minimize? and program.minimize if program.coffee output = v.toCoffee() else @@ -133,7 +131,7 @@ run = exports.run = -> try mkdirp.sync program.output_dir catch e - console.log "Couldn't make/use #{program.output_dir}; #{e}" + console.log "Couldn't make/use #{program.output_dir}; #{e}" process.exit 1 start_path = path.normalize start_path diff --git a/src/engine.coffee b/src/engine.coffee index 316e889..db5495b 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -17,7 +17,6 @@ class engine constructor: (options) -> options = options or {} @verbose = options.verbose or false - @minimize = options.minimize or false @pool = new Pool(sandboxCons, options.poolSize or MAX_CACHED_SANDBOXES) @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @prettyLogErrors = if options.prettyLogErrors? then options.prettyLogErrors else true @@ -98,7 +97,7 @@ class engine postProcess: (fn, res) -> err = null - try + try res = fn res catch e err = e @@ -254,7 +253,6 @@ class engine prettyLogErrors: @prettyLogErrors autoEscape: @autoEscape additionalErrorHandler: @additionalErrorHandler - minimize: @minimize } _monitorForChanges: (filename, options) -> @@ -278,4 +276,4 @@ class engine @_log "fs.watch() failed for #{filename}; settings fsErrorCache = true" @fsErrorCache[filename] = Date.now() -exports.engine = engine \ No newline at end of file +exports.engine = engine diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index e32f059..c56e277 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -72,7 +72,7 @@ class toffeeError extends Error res.message = res.message.replace /on line [0-9]+/, @_lineRangeToPhrase res.line_range else res.message += " " + @_lineRangeToPhrase res.line_range - + when errorTypes.RUNTIME if not res.line_range? @@ -91,10 +91,10 @@ class toffeeError extends Error stack = converted_err.stack for line, i in stack - rxx_pub = /// - Object[\.].*?pub[\s]\(undefined\:([0-9]+)\:[0-9]+ + rxx_pub = /// + Object[\.].*?pub[\s]\(undefined\:([0-9]+)\:[0-9]+ | - tmpl[\.]render[\.]tmpl[\.]pub.*\(.*\:([0-9]+)\:[0-9]+ + tmpl[\.]render[\.]tmpl[\.]pub.*\(.*\:([0-9]+)\:[0-9]+ /// m = line.match rxx_pub in_src_file = false @@ -161,7 +161,7 @@ class toffeeError extends Error getPrettyPrint: -> ### - returns an HTML blob explaining the error + returns an HTML blob explaining the error with lines highlighted ### cerr = @getConvertedError() @@ -171,7 +171,7 @@ class toffeeError extends Error
    \n
    #{header}
    \n
    - \n
    + \n
    """ if cerr.stack?.length res += "
    " @@ -190,7 +190,7 @@ class toffeeError extends Error for i in [(cerr.line_range[0]-3)...(cerr.line_range[1]+1)] if (i < 0) or i > @toffeeSrcLines.length - 1 continue - line = _ppEscape @toffeeSrcLines[i] + line = _ppEscape @toffeeSrcLines[i] padding_len = 5 - ("#{i+1}").length padding = (" " for j in [0...padding_len]).join "" if (cerr.line_range[0] - 1) <= (i) < cerr.line_range[1] @@ -254,4 +254,4 @@ _ppEscape = (txt) -> # retain leading spaces m = txt.match /^[\t ]*/ txt = txt.replace m[0], (" " for i in [0...(m[0].length)]).join "" - txt \ No newline at end of file + txt diff --git a/src/view.coffee b/src/view.coffee index 826b914..8642342 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -13,16 +13,6 @@ catch e spaces = (n) -> (" " for i in [0...n]).join "" tabs = (n) -> (spaces(TAB_SPACES) for i in [0...n]).join "" -minimizeJs = (js) -> - try - uglify = require 'uglify-js' - js = uglify.minify(js, { fromString: true }).code - catch e - console.log js - console.log e - process.exit 1 - js - getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> ### each view will use this, or if they're bundled together, @@ -40,13 +30,46 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__}toffee.states = #{JSON.stringify states} #{__}toffee.__json = (locals, o) -> -#{__} if not o? then return "null" -#{__} else return "" + JSON.stringify(o).replace(//g,'\\\\u003E').replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029') +#{__} if not o? +#{__} return "null" +#{__} else +#{__} return "" + JSON.stringify(o) +#{__} .replace(//g,'\\\\u003E') +#{__} .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028') +#{__} .replace(/\\u2029/g, '\\\\u2029') +#{__} .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK +#{__} .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK +#{__} .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING +#{__} .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING +#{__} .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING +#{__} .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE +#{__} .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE +#{__} .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING +#{__} .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING +#{__} .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING +#{__} .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING +#{__} .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES +#{__} .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES #{__}toffee.__raw = (locals, o) -> o #{__}toffee.__html = (locals, o) -> -#{__} (""+o).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"') +#{__} (""+o).replace(/&/g, '&') +#{__} .replace(//g, '>') +#{__} .replace(/\"/g, '"') +#{__} .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK +#{__} .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK +#{__} .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING +#{__} .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING +#{__} .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING +#{__} .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE +#{__} .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE +#{__} .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING +#{__} .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING +#{__} .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING +#{__} .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING +#{__} .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES +#{__} .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES #{__}toffee.__escape = (locals, o) -> #{__} if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape @@ -158,10 +181,9 @@ getBundleHeaders = (tab_level) -> #{__} return res """ -getCommonHeadersJs = (include_bundle_headers, auto_escape, minimize)-> +getCommonHeadersJs = (include_bundle_headers, auto_escape)-> ch = getCommonHeaders 0, include_bundle_headers, auto_escape js = coffee.compile ch, {bare: true} - if minimize then js = minimizeJs js js class view @@ -175,7 +197,6 @@ class view @fileName = options.fileName or options.filename or null @bundlePath = options.bundlePath or "/" # if to be included inside a bundle, this is the path inside it. @browserMode = options.browserMode or false - @minimize = options.minimize or false # excludes line numbers from coffee ; uses uglify.JS @verbose = options.verbose or false @fsError = options.fsError or false # pass true if you could not load the view template and passed in error text @prettyPrintErrors = if options.prettyPrintErrors? then options.prettyPrintErrors else true @@ -299,9 +320,6 @@ class view @javaScript = coffee.compile c, opts catch e @error = new toffeeError @, errorTypes.COFFEE_COMPILE, e - if @minimize and not @error - d2 = Date.now() - @javaScript = minimizeJs @javaScript @_log "#{@fileName} compiled to JavaScript in #{Date.now()-d}ms" @javaScript @@ -322,7 +340,7 @@ class view @coffeeScript _printLineNo: (n, ind) -> - if @minimize or (@lastLineNo? and (n is @lastLineNo)) + if (@lastLineNo? and (n is @lastLineNo)) return "" else @lastLineNo = n diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index 87a018f..ad29469 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -4,14 +4,17 @@ z = 'click&clack' w = [1, 2, {"place": "The Dreadfort"}] v = ["\u2028", "\u2029"] + dir = ["hi\u{202e}there"] # ltr type things #}

    default x = #{x} default y = #{y} default z = #{z} default w = #{w} - default r = #{r} - default w.foo = #{w.foo} + default r = #{r}eol + default w.foo = #{w.foo}eol default v = #{v} + default dir = #{dir} + default dir0 = #{dir[0]}

    raw x = #{raw x} diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index 0be58e9..27ed781 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -3,9 +3,11 @@ default y = <hr /> default z = click&clack default w = [1,2,{"place":"The Dreadfort"}] - default r = - default w.foo = + default r = eol + default w.foo = eol default v = ["\u2028","\u2029"] + default dir = ["hi\u202ethere"] + default dir0 = hithere

    raw x = "Hello world" diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 62ef2c9..dbad2b9 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -1,107 +1,3978 @@ ; -(function(){var tmpl;if(tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var count,i,__repress,_i,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/big_file/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),count=0,i=_i=0;_i<2;i=++_i){_ts(1),_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... ");_to(""+escape(count++));_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...")}return __toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/big_file/input.toffee"] = { + bundlePath: "/big_file/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var count, i, __repress, _i, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/big_file/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + count = 0; + for (i = _i = 0; _i < 2; i = ++_i) { + _ts(1); + _ts(1); + _ln(3); + _to("" + (escape(count++))); + _ln(4); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(5); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(6); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(7); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(8); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(9); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(10); + _to("..."); + _ts(2); + _ts(2); + count += 1; + print(" " + count + "..."); + _ts(1); + _ln(13); + _to(" "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(14); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(15); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(16); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(17); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(18); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(19); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _ln(20); + _to("..."); + _ts(2); + _ts(2); + count += 1; + print(" " + count + "..."); + } + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/big_file/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/big_file/output.toffee"] = { + bundlePath: "/big_file/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/big_file/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/comments/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3"),_ts(2),_ts(1),_to("\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/comments/input.toffee"] = { + bundlePath: "/comments/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/comments/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to("Pass 1\n"); + _ln(3); + _ts(2); + _ts(1); + _ln(8); + _to("\n"); + _ln(9); + _to("Pass 2\n"); + _ln(10); + _ts(2); + _ts(2); + + /* + print "FAIL FAIL FAIL" + #{ foo } + */ + _ts(1); + _ln(19); + _to("\n"); + _ln(20); + _to("Pass 3"); + _ts(2); + _ts(1); + _to("\n"); + _ln(21); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/comments/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/comments/output.toffee"] = { + bundlePath: "/comments/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/comments/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to("Pass 1\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("Pass 2\n"); + _ln(5); + _to("\n"); + _ln(6); + _to("Pass 3\n"); + _ln(7); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="

    default y = <hr /> default z = click&clack default w = [1,2,{"place":"The Dreadfort"}] - default r = - default w.foo = + default r = eol + default w.foo = eol default v = ["\u2028","\u2029"] + default dir = ["hi\u202ethere"] + default dir0 = hithere

    raw x = "Hello world" diff --git a/test/generate_express_test.coffee b/test/generate_express_test.coffee index d87540e..2c5839f 100644 --- a/test/generate_express_test.coffee +++ b/test/generate_express_test.coffee @@ -6,7 +6,7 @@ coffee = require 'coffee-script' generateExpressTest = (cb) -> - proc = spawn 'coffee', ['./src/command_line.coffee', '-n', '-m', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn 'coffee', ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> @@ -83,7 +83,7 @@ generateExpressTest = (cb) -> $("#browser_#{rid}").html(script_res); \n\n\n - """ + """ test_page += """

    FILEEXPECTED OUTPUTSERVER RENDERBROWSER RENDER
    #{dir}\#{partial '../../cases/#{dir}/input.toffee', #{vars}} #{expected_output}
    ' + y = '
    ' z = 'click&clack' w = [1, 2, {"place": "The Dreadfort"}] #}

    diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index 9290059..6fdefe5 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -1,6 +1,6 @@

    default x = "Hello world" - default y = <td> + default y = <hr /> default z = click&clack default w = [1,2,{"place":"The Dreadfort"}] default r = @@ -8,31 +8,31 @@

    raw x = "Hello world" - raw y =

    + raw y =
    raw z = click&clack raw w = 1,2,[object Object]

    raw printed x = "Hello world" - raw printed y =

    + raw printed y =
    raw printed z = click&clack raw printed w = 1,2,[object Object]

    json printed x = "\"Hello world\"" - json printed y = "\u003Ctd\u003E" + json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" json printed w = [1,2,{"place":"The Dreadfort"}]

    html printed longhand x = "Hello world" - html printed longhand y = <td> + html printed longhand y = <hr /> html printed longhand z = click&clack html printed longhand w = 1,2,[object Object]

    \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 1054427..1fabe27 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -9,15 +9,6 @@ toffee.states = { "COFFEE": 2 }; -toffee.__print = function(locals, o) { - if (locals.__toffee.state === toffee.states.COFFEE) { - locals.__toffee.out.push(o); - return ''; - } else { - return "" + o; - } -}; - toffee.__json = function(locals, o) { var json; try { @@ -49,6 +40,15 @@ toffee.__escape = function(locals, o) { return o; }; +toffee.__print = function(locals, o) { + if (locals.__toffee.state === toffee.states.COFFEE) { + locals.__toffee.out.push(o); + return ''; + } else { + return "" + o; + } +}; + toffee.__normalize = function(path) { var np, part, parts, _i, _len; if ((!(path != null)) || path === "/") { @@ -77,13 +77,11 @@ toffee.__normalize = function(path) { toffee.__partial = function(parent_tmpl, parent_locals, path, vars) { path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); - console.log("Partial called: " + path); return toffee.__inlineInclude(path, vars, parent_locals); }; toffee.__snippet = function(parent_tmpl, parent_locals, path, vars) { path = toffee.__normalize(parent_tmpl.bundlePath + "/../" + path); - console.log("Snippet called: " + path); vars = vars != null ? vars : {}; vars.__toffee = vars.__toffee || {}; vars.__toffee.noInheritance = true; @@ -105,4389 +103,47 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } } if (!toffee.templates[path]) { - return "Could not fund " + path; + return "Inline toffee include: Could not find " + path; } else { return toffee.templates[path].pub(options); } }; -(function() { - var tmpl; - - tmpl = toffee.templates["/big_file/input.toffee"] = { - bundlePath: "/big_file/input.toffee" - }; - - tmpl.pub = function(locals) { - var count, i, _i, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/big_file/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/big_file/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - count = 0; - for (i = _i = 0; _i < 2; i = ++_i) { - _ts(1); - _ln(3); - _to("" + (escape(count++))); - _ln(4); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(5); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(6); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(7); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(8); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(9); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(10); - _to("..."); - _ts(2); - _ts(2); - count += 1; - print(" " + count + "..."); - _ts(1); - _ln(13); - _to(" "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(14); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(15); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(16); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(17); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(18); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(19); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _to("... "); - _to("" + (escape(count++))); - _ln(20); - _to("..."); - _ts(2); - _ts(2); - count += 1; - print(" " + count + "..."); - } - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/big_file/output.toffee"] = { - bundlePath: "/big_file/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/big_file/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/big_file/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/comments/input.toffee"] = { - bundlePath: "/comments/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/comments/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/comments/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to("Pass 1\n"); - _ln(3); - _ts(2); - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _to("Pass 2\n"); - _ln(10); - _ts(2); - _ts(2); - /* - print "FAIL FAIL FAIL" - #{ foo } - */ - - _ts(1); - _ln(19); - _to("\n"); - _ln(20); - _to("Pass 3\n"); - _ln(21); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/comments/output.toffee"] = { - bundlePath: "/comments/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/comments/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/comments/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to("Pass 1\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("Pass 2\n"); - _ln(5); - _to("\n"); - _ln(6); - _to("Pass 3\n"); - _ln(7); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/custom_escape/input.toffee"] = { - bundlePath: "/custom_escape/input.toffee" - }; - - tmpl.pub = function(locals) { - var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - x = '"Hello world"'; - y = '
    '; - z = 'click&clack'; - w = [ - 1, 2, { - "place": "The Dreadfort" - } - ]; - _ts(1); - _ln(6); - _to("

    \n"); - _ln(7); - _to(" default x = "); - _to("" + (x != null ? escape(x) : '')); - _to("\n"); - _ln(8); - _to(" default y = "); - _to("" + (y != null ? escape(y) : '')); - _to("\n"); - _ln(9); - _to(" default z = "); - _to("" + (z != null ? escape(z) : '')); - _to("\n"); - _ln(10); - _to(" default w = "); - _to("" + (w != null ? escape(w) : '')); - _to("\n"); - _ln(11); - _to("

    \n"); - _ln(12); - _to("

    \n"); - _ln(13); - _to(" raw x = "); - _to("" + (raw(x))); - _to("\n"); - _ln(14); - _to(" raw y = "); - _to("" + (raw(y))); - _to("\n"); - _ln(15); - _to(" raw z = "); - _to("" + (raw(z))); - _to("\n"); - _ln(16); - _to(" raw w = "); - _to("" + (raw(w))); - _to("\n"); - _ln(17); - _to("

    \n"); - _ln(18); - _to("\n"); - _ln(24); - _to("

    \n"); - _ln(25); - _ts(2); - _ts(2); - print(" raw printed x = " + x + "\n"); - print(" raw printed y = " + y + "\n"); - print(" raw printed z = " + z + "\n"); - print(" raw printed w = " + w); - _ts(1); - _ln(30); - _to("\n"); - _ln(31); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/custom_escape/output.toffee"] = { - bundlePath: "/custom_escape/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("

    \n"); - _ln(2); - _to(" default x = [\"Hello world\"]\n"); - _ln(3); - _to(" default y = [

    ]\n"); - _ln(4); - _to(" default z = [click&clack]\n"); - _ln(5); - _to(" default w = [1,2,[object Object]]\n"); - _ln(6); - _to("

    \n"); - _ln(7); - _to("

    \n"); - _ln(8); - _to(" raw x = \"Hello world\"\n"); - _ln(9); - _to(" raw y =

    \n"); - _ln(10); - _to(" raw z = click&clack\n"); - _ln(11); - _to(" raw w = 1,2,[object Object]\n"); - _ln(12); - _to("

    \n"); - _ln(13); - _to("\n"); - _ln(19); - _to("

    \n"); - _ln(20); - _to(" raw printed x = \"Hello world\"\n"); - _ln(21); - _to(" raw printed y =

    \n"); - _ln(22); - _to(" raw printed z = click&clack\n"); - _ln(23); - _to(" raw printed w = 1,2,[object Object]\n"); - _ln(24); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/eco_compare/input.toffee"] = { - bundlePath: "/eco_compare/input.toffee" - }; - - tmpl.pub = function(locals) { - var f, friends, project, _i, _l, _len, _ln, _ref, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - this.projects = [ - { - url: "http://localhost:3000", - name: "okcupid", - description: "A site for singles" - }, { - url: "http://localhost:3001", - name: "tallygram", - description: "A site for anyone" - } - ]; - if (this.projects.length) { - _ref = this.projects; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - project = _ref[_i]; - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _to(" "); - _to("" + (escape(project.name))); - _to("\n"); - _ln(10); - _to("

    "); - _to("" + (escape(project.description))); - _to("

    \n"); - _ln(11); - _to(" "); - _ts(2); - } - } else { - _ts(1); - _ln(12); - _to(" No projects "); - _ts(2); - } - friends = [ - { - gender: "f", - name: "Jennie" - }, { - gender: "f", - name: "Rachel" - }, { - gender: "m", - name: "Petar" - }, { - gender: "f", - name: "Marissa" - } - ]; - _ts(1); - _ln(20); - _to("\n"); - _ln(21); - _to("\n"); - _ln(22); - _to("You have "); - _to("" + (escape(((function() { - var _j, _len1, _results; - _results = []; - for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { - f = friends[_j]; - if (f.gender === "f") _results.push(f); - } - return _results; - })()).length))); - _to(" female friends."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/eco_compare/output.toffee"] = { - bundlePath: "/eco_compare/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to(" okcupid\n"); - _ln(3); - _to("

    A site for singles

    \n"); - _ln(4); - _to(" \n"); - _ln(5); - _to(" tallygram\n"); - _ln(6); - _to("

    A site for anyone

    \n"); - _ln(7); - _to(" \n"); - _ln(8); - _to("\n"); - _ln(9); - _to("You have 3 female friends."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/escape/input.toffee"] = { - bundlePath: "/escape/input.toffee" - }; - - tmpl.pub = function(locals) { - var w, x, y, z, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/escape/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/escape/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - x = '"Hello world"'; - y = '
    '; - z = 'click&clack'; - w = [ - 1, 2, { - "place": "The Dreadfort" - } - ]; - _ts(1); - _ln(6); - _to("

    \n"); - _ln(7); - _to(" default x = "); - _to("" + (x != null ? escape(x) : '')); - _to("\n"); - _ln(8); - _to(" default y = "); - _to("" + (y != null ? escape(y) : '')); - _to("\n"); - _ln(9); - _to(" default z = "); - _to("" + (z != null ? escape(z) : '')); - _to("\n"); - _ln(10); - _to(" default w = "); - _to("" + (w != null ? escape(w) : '')); - _to("\n"); - _ln(11); - _to(" default r = "); - _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); - _to("\n"); - _ln(12); - _to(" default w.foo = "); - _to("" + (escape(w.foo))); - _to("\n"); - _ln(13); - _to("

    \n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to(" raw x = "); - _to("" + (raw(x))); - _to("\n"); - _ln(16); - _to(" raw y = "); - _to("" + (raw(y))); - _to("\n"); - _ln(17); - _to(" raw z = "); - _to("" + (raw(z))); - _to("\n"); - _ln(18); - _to(" raw w = "); - _to("" + (raw(w))); - _to("\n"); - _ln(19); - _to("

    \n"); - _ln(20); - _to("\n"); - _ln(26); - _to("

    \n"); - _ln(27); - _ts(2); - _ts(2); - print(" raw printed x = " + x + "\n"); - print(" raw printed y = " + y + "\n"); - print(" raw printed z = " + z + "\n"); - print(" raw printed w = " + w); - _ts(1); - _ln(32); - _to("\n"); - _ln(33); - _to("

    \n"); - _ln(34); - _to("

    \n"); - _ln(35); - _ts(2); - _ts(2); - print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); - print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); - print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); - print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); - _ts(1); - _ln(40); - _to("\n"); - _ln(41); - _to("

    \n"); - _ln(42); - _to("

    \n"); - _ln(43); - _ts(2); - _ts(2); - print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); - print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); - print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); - print(" html printed longhand w = " + (__toffee.html(w))); - _ts(1); - _ln(48); - _to("\n"); - _ln(49); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/escape/output.toffee"] = { - bundlePath: "/escape/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/escape/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/escape/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("

    \n"); - _ln(2); - _to(" default x = "Hello world"\n"); - _ln(3); - _to(" default y = <td>\n"); - _ln(4); - _to(" default z = click&clack\n"); - _ln(5); - _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - _ln(6); - _to(" default r = \n"); - _ln(7); - _to(" default w.foo = \n"); - _ln(8); - _to("

    \n"); - _ln(9); - _to("

    \n"); - _ln(10); - _to(" raw x = \"Hello world\"\n"); - _ln(11); - _to(" raw y =

    \n"); - _ln(12); - _to(" raw z = click&clack\n"); - _ln(13); - _to(" raw w = 1,2,[object Object]\n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to("\n"); - _ln(21); - _to("

    \n"); - _ln(22); - _to(" raw printed x = \"Hello world\"\n"); - _ln(23); - _to(" raw printed y =

    \n"); - _ln(24); - _to(" raw printed z = click&clack\n"); - _ln(25); - _to(" raw printed w = 1,2,[object Object]\n"); - _ln(26); - _to("

    \n"); - _ln(27); - _to("

    \n"); - _ln(28); - _to(" json printed x = \"\\\"Hello world\\\"\"\n"); - _ln(29); - _to(" json printed y = \"\\u003Ctd\\u003E\"\n"); - _ln(30); - _to(" json printed z = \"click\\u0026clack\"\n"); - _ln(31); - _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - _ln(32); - _to("

    \n"); - _ln(33); - _to("

    \n"); - _ln(34); - _to(" html printed longhand x = "Hello world"\n"); - _ln(35); - _to(" html printed longhand y = <td>\n"); - _ln(36); - _to(" html printed longhand z = click&clack\n"); - _ln(37); - _to(" html printed longhand w = 1,2,[object Object]\n"); - _ln(38); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/input.toffee"] = { - bundlePath: "/hello_world/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); - _to(", world."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/output.toffee"] = { - bundlePath: "/hello_world/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hello, world."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/temp.toffee"] = { - bundlePath: "/hello_world/temp.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("a\n"); - _ln(2); - _to("b\n"); - _ln(3); - _to("c\n"); - _ln(4); - _to("" + (escape(passed_fn(100)))); - _to("\n"); - _ln(5); - _to("d\n"); - _ln(6); - _to("e\n"); - _ln(7); - _to("f"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/child.toffee"] = { - bundlePath: "/include_order/child.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/child.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/child.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("a\n"); - _ln(2); - _ts(2); - _ts(2); - say_hi(); - _ts(1); - _ln(4); - _to("\n"); - _ln(5); - _to("b"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/input.toffee"] = { - bundlePath: "/include_order/input.toffee" - }; - - tmpl.pub = function(locals) { - var say_hi, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - say_hi = function() { - _ts(1); - _ts(1); - _ln(3); - _to("hi"); - return _ts(2); - }; - _ts(1); - _ln(4); - _to("1\n"); - _ln(5); - _to("2\n"); - _ln(6); - _to("" + (partial("child.toffee", { - say_hi: say_hi - }))); - _to("\n"); - _ln(7); - _to("3\n"); - _ln(8); - _to("4"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/output.toffee"] = { - bundlePath: "/include_order/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_order/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_order/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("1\n"); - _ln(2); - _to("2\n"); - _ln(3); - _to("hia\n"); - _ln(4); - _to("\n"); - _ln(5); - _to("b\n"); - _ln(6); - _to("3\n"); - _ln(7); - _to("4"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_recursion/input.toffee"] = { - bundlePath: "/include_recursion/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - if (countdown === 0) { - _ts(1); - _ln(2); - _to("blastoff!"); - _ts(2); - } else { - print("" + countdown + "..." + (partial('input.toffee', { - countdown: countdown - 1 - }))); - } - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_recursion/output.toffee"] = { - bundlePath: "/include_recursion/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/input.toffee"] = { - bundlePath: "/include_techniques/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (partial("message.toffee", { - from: "Chris " - }))); - _to("\n"); - _ln(2); - _to("" + (partial("message.toffee", { - from: "Max & Sam" - }))); - _to("\n"); - _ln(3); - _ts(2); - _ts(2); - print(partial("message.toffee", { - from: "Christian" - })); - _ts(1); - _ts(1); - _ln(5); - _to("" + (partial("message.toffee", { - from: "Jennie" - }))); - _ts(2); - print(partial("message.toffee", { - sender: "The enemy" - })); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/message.toffee"] = { - bundlePath: "/include_techniques/message.toffee" - }; - - tmpl.pub = function(locals) { - var from, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - from = from || "Unknown"; - _ts(1); - _ln(3); - _to("From: "); - _to("" + (from != null ? escape(from) : '')); - _to(" \n"); - _ln(4); - _to("Msg: Hello, world\n"); - _ln(5); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/output.toffee"] = { - bundlePath: "/include_techniques/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("From: Chris <ccoyne77@gmail> \n"); - _ln(2); - _to("Msg: Hello, world\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("From: Max & Sam \n"); - _ln(5); - _to("Msg: Hello, world\n"); - _ln(6); - _to("\n"); - _ln(7); - _to("From: Christian \n"); - _ln(8); - _to("Msg: Hello, world\n"); - _ln(9); - _to("From: Jennie \n"); - _ln(10); - _to("Msg: Hello, world\n"); - _ln(11); - _to("From: Unknown \n"); - _ln(12); - _to("Msg: Hello, world\n"); - _ln(13); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/indent_attack/input.toffee"] = { - bundlePath: "/indent_attack/input.toffee" - }; - - tmpl.pub = function(locals) { - var i, x, _i, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
    \n"); - _ln(2); - _to(" "); - _ts(2); - _ts(2); - if (1 === 1) { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ln(5); - _to("Pass1"); - _ts(2); - } - } - } - if (1 === 1) { - if (2 === 3) { - if (3 === 3) { - _ts(1); - _ln(9); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ln(11); - _to("Fail"); - _ts(2); - } - } else { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ln(14); - _to("Pass2"); - _ts(2); - } - } - } - } - _ts(1); - _ln(15); - _to("\n"); - _ln(16); - _to("
    \n"); - _ln(17); - _to("\n"); - _ln(18); - _ts(2); - _ts(2); - if (1 === 1) { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ln(21); - _to("Pass3"); - _ts(2); - } - } - } - if (1 === 1) { - if (2 === 3) { - if (3 === 3) { - _ts(1); - _ln(25); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ln(27); - _to("Fail"); - _ts(2); - } - } else { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ln(30); - _to("Pass4"); - _ts(2); - } - } - } - } - _ts(1); - _ln(31); - _to("\n"); - _ln(32); - _to("
    \n"); - _ln(33); - _to("\n"); - _ln(34); - _ts(2); - _ts(2); - if (10 === 10) { - if (20 === 20) { - if (30 === 30) { - _ts(1); - _ln(37); - _to("Pass5"); - _ts(2); - } - } - } - if (10 === 10) { - if (20 === 30) { - if (30 === 30) { - _ts(1); - _ln(41); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ln(43); - _to("Fail"); - _ts(2); - } - } else { - if (20 === 20) { - if (30 === 30) { - _ts(1); - _ln(46); - _to("Pass6"); - _ts(2); - } - } - } - } - _ts(1); - _ln(47); - _to("\n"); - _ln(48); - _to("\n"); - _ln(49); - _ts(2); - _ts(2); - if (99 === 99) { - print('Pass7'); - } else { - print('Fail'); - _ts(1); - _ln(54); - _to("Fail8"); - _ts(2); - } - _ts(1); - _ts(1); - _ln(55); - _to("Pass8"); - _ts(2); - _ts(1); - _ln(56); - _to("\n"); - _ln(57); - _to("\n"); - _ln(58); - _ts(2); - _ts(2); - _ts(1); - _ts(1); - _ln(60); - _to("...passed with flying colors."); - _ts(2); - _ts(1); - _ln(61); - _to("\n"); - _ln(62); - _to("

    \n"); - _ln(63); - _to(" "); - _ts(2); - _ts(2); - x = 10; - if (x > 1) { - for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { - _ts(1); - _ln(67); - _to("
    "); - _to("" + (i != null ? escape(i) : '')); - _ts(2); - _ts(2); - if (i === 3) { - _ts(1); - _ln(68); - _to(" (my favorite number) "); - _ts(2); - } - } - } - _ts(1); - _ln(70); - _to("\n"); - _ln(71); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/indent_attack/output.toffee"] = { - bundlePath: "/indent_attack/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
    \n"); - _ln(2); - _to(" Pass1Pass2\n"); - _ln(3); - _to("
    \n"); - _ln(4); - _to("\n"); - _ln(5); - _to("Pass3Pass4\n"); - _ln(6); - _to("
    \n"); - _ln(7); - _to("\n"); - _ln(8); - _to("Pass5Pass6\n"); - _ln(9); - _to("\n"); - _ln(10); - _to("Pass7Pass8\n"); - _ln(11); - _to("\n"); - _ln(12); - _to("...passed with flying colors.\n"); - _ln(13); - _to("

    \n"); - _ln(14); - _to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); - _ln(15); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/junk/input.toffee"] = { - bundlePath: "/junk/input.toffee" - }; - - tmpl.pub = function(locals) { - var supplies, supply, _i, _l, _len, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/junk/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/junk/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - supplies = ["broom", "mop", "vacuum"]; - _ts(1); - _ln(3); - _to("
      \n"); - _ln(4); - _to(" "); - _ts(2); - _ts(2); - for (_i = 0, _len = supplies.length; _i < _len; _i++) { - supply = supplies[_i]; - _ts(1); - _to("
    • "); - _to("" + (supply != null ? escape(supply) : '')); - _to("
    • "); - _ts(2); - } - _ts(1); - _to("\n"); - _ln(5); - _to("
    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/junk/output.toffee"] = { - bundlePath: "/junk/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/junk/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/junk/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
      \n"); - _ln(2); - _to("
    • broom
    • mop
    • vacuum
    • \n"); - _ln(3); - _to("
    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/lambda_fns/input.toffee"] = { - bundlePath: "/lambda_fns/input.toffee" - }; - - tmpl.pub = function(locals) { - var echo_it, print_it, print_it_twice, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - print_it = function(msg) { - _ts(1); - _ln(2); - _to("" + (msg != null ? escape(msg) : '')); - return _ts(2); - }; - print_it_twice = function(msg) { - var m; - _ts(1); - _ts(1); - _ln(5); - _to("" + (msg != null ? escape(msg) : '')); - _ts(2); - m = msg; - _ts(1); - _ts(1); - _ln(7); - _to("" + (m != null ? escape(m) : '')); - return _ts(2); - }; - echo_it = function(msg) { - var v; - v = msg; - return v; - }; - print_it("Pass"); - print_it_twice("Pass"); - print(echo_it("Pass")); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/lambda_fns/output.toffee"] = { - bundlePath: "/lambda_fns/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("PassPassPassPass"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = { - bundlePath: "/multiline_interpolation/foo.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); - _to(" "); - _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = { - bundlePath: "/multiline_interpolation/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (escape("Hello, " + "world"))); - _ln(4); - _to("\n"); - _ln(5); - _to("
    \n"); - _ln(6); - _to("" + (partial("foo.toffee", { - a: "Goodbye" + ',', - b: "world" - }))); - _ln(10); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = { - bundlePath: "/multiline_interpolation/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hello, world\n"); - _ln(2); - _to("
    \n"); - _ln(3); - _to("Goodbye, world"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/plaintext/input.toffee"] = { - bundlePath: "/plaintext/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/plaintext/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/plaintext/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hi there."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/plaintext/output.toffee"] = { - bundlePath: "/plaintext/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/plaintext/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/plaintext/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hi there."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = { - bundlePath: "/snippets/foo/bar/body.toffee" - }; - - tmpl.pub = function(locals) { - var msg, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - msg = msg || "Unknown message"; - print(msg); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/foo/message.toffee"] = { - bundlePath: "/snippets/foo/message.toffee" - }; - - tmpl.pub = function(locals) { - var from, msg, _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - from = from || "Unknown sender"; - msg = msg || "Unknown message."; - print("From: " + from + "\n" + (snippet('./bar/body.toffee', { - msg: msg - }))); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/input.toffee"] = { - bundlePath: "/snippets/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (partial("./foo/message.toffee"))); - _to("\n"); - _ln(2); - _to("" + (escape(snippet("./foo/message.toffee")))); - _to("\n"); - _ln(3); - _to("" + (partial("./foo/message.toffee", { - from: "Sam" - }))); - _to("\n"); - _ln(4); - _to("" + (escape(snippet("./foo/message.toffee", { - from: "Max" - })))); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/output.toffee"] = { - bundlePath: "/snippets/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/snippets/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/snippets/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("From: Preloaded sender\n"); - _ln(2); - _to("Preloaded message.\n"); - _ln(3); - _to("From: Unknown sender\n"); - _ln(4); - _to("Unknown message.\n"); - _ln(5); - _to("From: Sam\n"); - _ln(6); - _to("Preloaded message.\n"); - _ln(7); - _to("From: Max\n"); - _ln(8); - _to("Unknown message."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/special_cases/input.toffee"] = { - bundlePath: "/special_cases/input.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/special_cases/input.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/special_cases/input.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(5); - _to("\n"); - _ln(6); - _ts(2); - _ts(2); - _ts(1); - _ts(1); - _ln(7); - _to('"' + "PASSED" + '"'); - _ts(2); - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _ts(2); - _ts(1); - _ln(13); - _to("\n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to(" "); - _to("" + (print("" + 'click & clack' + ""))); - _to("\n"); - _ln(16); - _to("

    \n"); - _ln(17); - _ts(2); - _ts(1); - _ln(21); - _to("\n"); - _ln(22); - _to("A backslash is a \\\n"); - _ln(23); - _to(""); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); -(function() { - var tmpl; - - tmpl = toffee.templates["/special_cases/output.toffee"] = { - bundlePath: "/special_cases/output.toffee" - }; - - tmpl.pub = function(locals) { - var _l, _ln, _t, _to, _ts; - _l = locals; - _t = _l.__toffee = { - out: [] - }; - _to = function(x) { - return locals.__toffee.out.push(x); - }; - _ln = function(x) { - return locals.__toffee.lineno = x; - }; - _ts = function(x) { - return locals.__toffee.state = x; - }; - if (!(_l.print != null)) { - _l.print = function(o) { - return toffee.__print(_l, o); - }; - } - if (!(_l.json != null)) { - _l.json = function(o) { - return toffee.__json(_l, o); - }; - } - if (!(_l.raw != null)) { - _l.raw = function(o) { - return toffee.__raw(_l, o); - }; - } - if (!(_l.html != null)) { - _l.html = function(o) { - return toffee.__html(_l, o); - }; - } - if (!(_l.escape != null)) { - _l.escape = function(o) { - return toffee.__escape(_l, o); - }; - } - if (!(_l.partial != null)) { - _l.partial = function(path, vars) { - return toffee.__partial(toffee.templates["/special_cases/output.toffee"], _l, path, vars); - }; - } - if (!(_l.snippet != null)) { - _l.snippet = function(path, vars) { - return toffee.__snippet(toffee.templates["/special_cases/output.toffee"], _l, path, vars); - }; - } - _t.print = _l.print; - _t.json = _l.json; - _t.raw = _l.raw; - _t.html = _l.html; - _t.escape = _l.escape; - _t.partial = _l.partial; - _t.snippet = _l.snippet; - with (locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to('"' + "PASSED\"\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("

    \n"); - _ln(5); - _to(" click & clack\n"); - _ln(6); - _to("

    \n"); - _ln(7); - _to("\n"); - _ln(8); - _to("A backslash is a \\\n"); - _ln(9); - _to(""); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } -}).call(this); +(function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"},tmpl.pub=function(locals){var count,i,_i,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/big_file/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/big_file/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),count=0;for(i=_i=0;_i<2;i=++_i)_ts(1),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"..."),_ts(1),_to(" "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("... "),_to(""+escape(count++)),_to("..."),_ts(2),_ts(2),count+=1,print(" "+count+"...");return __toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/big_file/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/big_file/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/comments/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/comments/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_ts(2),_ts(1),_to("\n"),_to("Pass 2\n"),_ts(2),_ts(2),_ts(1),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/comments/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/comments/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to("Pass 1\n"),_to("\n"),_to("Pass 2\n"),_to("\n"),_to("Pass 3\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.pub=function(locals){var w,x,y,z,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/custom_escape/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/custom_escape/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(' default x = ["Hello world"]\n'),_to(" default y = [

    ]\n"),_to(" default z = [click&clack]\n"),_to(" default w = [1,2,[object Object]]\n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =

    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =

    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.pub=function(locals){var f,friends,project,_i,_l,_len,_ln,_ref,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/eco_compare/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}];if(this.projects.length){_ref=this.projects;for(_i=0,_len=_ref.length;_i<_len;_i++)project=_ref[_i],_ts(1),_to("\n"),_to(' '),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2)}else _ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var _j,_len1,_results;_results=[];for(_j=0,_len1=friends.length;_j<_len1;_j++)f=friends[_j],f.gender==="f"&&_results.push(f);return _results}().length)),_to(" female friends."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/eco_compare/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.pub=function(locals){var w,x,y,z,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/escape/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/escape/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+(typeof r!="undefined"&&r!==null?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/escape/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/escape/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof greeting!="undefined"&&greeting!==null?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/temp.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/child.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/child.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.pub=function(locals){var say_hi,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_recursion/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),countdown===0?(_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_recursion/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.pub=function(locals){var from,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/message.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(from!=null?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.pub=function(locals){var i,x,_i,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/indent_attack/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_to("Pass1"),_ts(2),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_to("Pass3"),_ts(2),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_to("Pass5"),_ts(2),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=10;if(x>1)for(i=_i=0;0<=x?_ix;i=0<=x?++_i:--_i)_ts(1),_to("
    "),_to(""+(i!=null?escape(i):"")),_ts(2),_ts(2),i===3&&(_ts(1),_to(" (my favorite number) "),_ts(2));return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/indent_attack/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.pub=function(locals){var supplies,supply,_i,_l,_len,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/junk/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/junk/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2);for(_i=0,_len=supplies.length;_i<_len;_i++)supply=supplies[_i],_ts(1),_to("
    • "),_to(""+(supply!=null?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/junk/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/junk/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.pub=function(locals){var echo_it,print_it,print_it_twice,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(msg){return _ts(1),_to(""+(msg!=null?escape(msg):"")),_ts(2)},print_it_twice=function(msg){var m;return _ts(1),_ts(1),_to(""+(msg!=null?escape(msg):"")),_ts(2),m=msg,_ts(1),_ts(1),_to(""+(m!=null?escape(m):"")),_ts(2)},echo_it=function(msg){var v;return v=msg,v},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof a!="undefined"&&a!==null?escape(a):"")),_to(" "),_to(""+(typeof b!="undefined"&&b!==null?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye,",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/plaintext/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/plaintext/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/plaintext/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/plaintext/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"},tmpl.pub=function(locals){var msg,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),msg=msg||"Unknown message",print(msg),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"},tmpl.pub=function(locals){var from,msg,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown sender",msg=msg||"Unknown message.",print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("./foo/message.toffee")),_to("\n"),_to(""+escape(snippet("./foo/message.toffee"))),_to("\n"),_to(""+partial("./foo/message.toffee",{from:"Sam"})),_to("\n"),_to(""+escape(snippet("./foo/message.toffee",{from:"Max"}))),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Preloaded sender\n"),_to("Preloaded message.\n"),_to("From: Unknown sender\n"),_to("Unknown message.\n"),_to("From: Sam\n"),_to("Preloaded message.\n"),_to("From: Max\n"),_to("Unknown message."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/special_cases/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/special_cases/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_to(""+print("click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/special_cases/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/special_cases/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) \ No newline at end of file diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 083fd3d..c3b94b8 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -4,26 +4,27 @@ + + -
    -
    #{partial '../../cases/big_file/input.toffee', {}}
    +
    + + -
    0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
    + -
    -
    + -
    - + @@ -32,29 +33,28 @@ -
    -
    #{partial '../../cases/comments/input.toffee', { +
    + + -
    +
    -
    -
    + -
    - + @@ -63,10 +63,11 @@ Pass 3 -
    -
    #{partial '../../cases/eco_compare/input.toffee', {}}
    +
    + + -
    +
    -
    -
    + -
    - + @@ -92,12 +91,13 @@ You have 3 female friends. -
    -
    #{partial '../../cases/escape/input.toffee', {}}
    +
    + + -

    +

    -
    -
    + -
    - + @@ -150,23 +148,22 @@ You have 3 female friends. -
    -
    #{partial '../../cases/hello_world/input.toffee', { +
    + + -
    Hello, world.
    + -
    -
    + -
    - + @@ -175,29 +172,28 @@ You have 3 female friends. -
    -
    #{partial '../../cases/include_order/input.toffee', { +
    + + -
    1 +
    -
    -
    + -
    - + @@ -206,23 +202,22 @@ b -
    -
    #{partial '../../cases/include_recursion/input.toffee', { +
    + + -
    10...9...8...7...6...5...4...3...2...1...blastoff!
    + -
    -
    + -
    - + @@ -231,11 +226,12 @@ b -
    -
    #{partial '../../cases/include_techniques/input.toffee', { -}}
    +
    + + -
    From: Chris <ccoyne77@gmail> +
    -
    -
    + -
    - + @@ -266,11 +260,12 @@ Msg: Hello, world -
    -
    #{partial '../../cases/indent_attack/input.toffee', { -}}
    +
    + + -

    +
    -
    -
    + -
    - + @@ -303,21 +296,20 @@ Pass7Pass8 -
    -
    #{partial '../../cases/junk/input.toffee', {}}
    +
    + + -
      +
    -
    -
    + -
    - + @@ -326,19 +318,18 @@ Pass7Pass8 -
    -
    #{partial '../../cases/lambda_fns/input.toffee', {}}
    +
    + + -
    PassPassPassPass
    + -
    -
    + -
    - + @@ -347,21 +338,20 @@ Pass7Pass8 -
    -
    #{partial '../../cases/multiline_interpolation/input.toffee', {}}
    +
    + + -
    Hello, world +
    -
    -
    + -
    - + @@ -370,19 +360,18 @@ Goodbye, world -
    -
    #{partial '../../cases/plaintext/input.toffee', {}}
    +
    + + -
    Hi there.
    + -
    -
    + -
    - + @@ -391,32 +380,31 @@ Goodbye, world -
    -
    #{partial '../../cases/snippets/input.toffee', { +
    + + -
    From: Preloaded sender +
    -
    -
    + -
    - + @@ -425,10 +413,11 @@ Unknown message. -
    -
    #{partial '../../cases/special_cases/input.toffee', {}}
    +
    + + -
    +
    -
    -
    + -
    - + +
    FILEEXPECTED OUTPUTSERVER RENDERBROWSER RENDER
    big_file#{partial '../../cases/big_file/input.toffee', {}} 0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
    comments#{partial '../../cases/comments/input.toffee', { "greeting": "Hello" -}} +}} Pass 1 Pass 2 Pass 3 - +
    eco_compare#{partial '../../cases/eco_compare/input.toffee', {}} okcupid

    A site for singles

    @@ -74,16 +75,14 @@ Pass 3

    A site for anyone

    -You have 3 female friends. +You have 3 female friends.
    escape#{partial '../../cases/escape/input.toffee', {}}

    default x = "Hello world" - default y = <td> + default y = <hr /> default z = click&clack default w = [1,2,{"place":"The Dreadfort"}] default r = @@ -105,43 +105,41 @@ You have 3 female friends.

    raw x = "Hello world" - raw y =

    + raw y =
    raw z = click&clack raw w = 1,2,[object Object]

    raw printed x = "Hello world" - raw printed y =

    + raw printed y =
    raw printed z = click&clack raw printed w = 1,2,[object Object]

    json printed x = "\"Hello world\"" - json printed y = "\u003Ctd\u003E" + json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" json printed w = [1,2,{"place":"The Dreadfort"}]

    html printed longhand x = "Hello world" - html printed longhand y = <td> + html printed longhand y = <hr /> html printed longhand z = click&clack html printed longhand w = 1,2,[object Object] -

    +

    hello_world#{partial '../../cases/hello_world/input.toffee', { "greeting": "Hello" -}} +}} Hello, world.
    include_order#{partial '../../cases/include_order/input.toffee', { "greeting": "Hello" -}} +}} 1 2 hia b 3 -4 +4
    include_recursion#{partial '../../cases/include_recursion/input.toffee', { "countdown" : 10 -}} +}} 10...9...8...7...6...5...4...3...2...1...blastoff!
    include_techniques#{partial '../../cases/include_techniques/input.toffee', { +}} From: Chris <ccoyne77@gmail> Msg: Hello, world From: Max & Sam @@ -247,17 +243,15 @@ From: Jennie Msg: Hello, world From: Unknown Msg: Hello, world - +
    indent_attack#{partial '../../cases/indent_attack/input.toffee', { +}}
    Pass1Pass2
    @@ -284,17 +279,15 @@ Pass7Pass8 ...passed with flying colors.


    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9 -

    +

    junk#{partial '../../cases/junk/input.toffee', {}}
    • broom
    • mop
    • vacuum
    • -
    +
    lambda_fns#{partial '../../cases/lambda_fns/input.toffee', {}} PassPassPassPass
    multiline_interpolation#{partial '../../cases/multiline_interpolation/input.toffee', {}} Hello, world
    -Goodbye, world +Goodbye, world
    plaintext#{partial '../../cases/plaintext/input.toffee', {}} Hi there.
    snippets#{partial '../../cases/snippets/input.toffee', { "from": "Preloaded sender", "msg" : "Preloaded message." -}} +}} From: Preloaded sender Preloaded message. From: Unknown sender Unknown message. From: Sam Preloaded message. From: Max -Unknown message. +Unknown message.
    special_cases#{partial '../../cases/special_cases/input.toffee', {}} "PASSED"

    @@ -438,19 +427,18 @@ Unknown message. A backslash is a \ +

    \ No newline at end of file From 3e8f90299a0f7ca20798ce0917b8501b401d5bc3 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 13:02:11 -0400 Subject: [PATCH 030/163] removed random numbers in a committed file, which is silly --- Cakefile | 4 +-- test/express3/views/index.toffee | 60 ++++++++++++++++---------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Cakefile b/Cakefile index 5ca9876..1752b49 100644 --- a/Cakefile +++ b/Cakefile @@ -70,14 +70,14 @@ generateExpressTest = (cb) -> case_dirs = fs.readdirSync "./test/cases/" - for dir in case_dirs + for dir,i in case_dirs if dir isnt "custom_escape" # a special case since this isn't actually JSON expected_output = fs.readFileSync "./test/cases/#{dir}/output.toffee", "utf8" if path.existsSync "./test/cases/#{dir}/vars.js" vars = fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" else vars = "{}" - rid = Math.floor 100000 * Math.random() + rid = i test_page += """ \n\n\n
    0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
    Hello, world.
    10...9...8...7...6...5...4...3...2...1...blastoff!
    PassPassPassPass
    Hi there.
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/custom_escape/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(' default x = ["Hello world"]\n'),_to(" default y = [

    ]\n"),_to(" default z = [click&clack]\n"),_to(" default w = [1,2,[object Object]]\n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =

    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =

    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.pub=function(locals){var f,friends,project,_i,_l,_len,_ln,_ref,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/eco_compare/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}];if(this.projects.length){_ref=this.projects;for(_i=0,_len=_ref.length;_i<_len;_i++)project=_ref[_i],_ts(1),_to("\n"),_to(' '),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2)}else _ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var _j,_len1,_results;_results=[];for(_j=0,_len1=friends.length;_j<_len1;_j++)f=friends[_j],f.gender==="f"&&_results.push(f);return _results}().length)),_to(" female friends."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/eco_compare/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.pub=function(locals){var w,x,y,z,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/escape/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/escape/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+(typeof r!="undefined"&&r!==null?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/escape/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/escape/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof greeting!="undefined"&&greeting!==null?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/hello_world/temp.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/child.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/child.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.pub=function(locals){var say_hi,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_order/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_order/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_recursion/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),countdown===0?(_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_recursion/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.pub=function(locals){var from,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/message.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(from!=null?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/include_techniques/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.pub=function(locals){var i,x,_i,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/indent_attack/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_to("Pass1"),_ts(2),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_to("Pass3"),_ts(2),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_to("Pass5"),_ts(2),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=10;if(x>1)for(i=_i=0;0<=x?_ix;i=0<=x?++_i:--_i)_ts(1),_to("
    "),_to(""+(i!=null?escape(i):"")),_ts(2),_ts(2),i===3&&(_ts(1),_to(" (my favorite number) "),_ts(2));return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/indent_attack/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.pub=function(locals){var supplies,supply,_i,_l,_len,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/junk/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/junk/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals){__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2);for(_i=0,_len=supplies.length;_i<_len;_i++)supply=supplies[_i],_ts(1),_to("
    • "),_to(""+(supply!=null?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/junk/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/junk/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.pub=function(locals){var echo_it,print_it,print_it_twice,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(msg){return _ts(1),_to(""+(msg!=null?escape(msg):"")),_ts(2)},print_it_twice=function(msg){var m;return _ts(1),_ts(1),_to(""+(msg!=null?escape(msg):"")),_ts(2),m=msg,_ts(1),_ts(1),_to(""+(m!=null?escape(m):"")),_ts(2)},echo_it=function(msg){var v;return v=msg,v},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof a!="undefined"&&a!==null?escape(a):"")),_to(" "),_to(""+(typeof b!="undefined"&&b!==null?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye,",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/plaintext/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/plaintext/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/plaintext/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/plaintext/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"},tmpl.pub=function(locals){var msg,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),msg=msg||"Unknown message",print(msg),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"},tmpl.pub=function(locals){var from,msg,_l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown sender",msg=msg||"Unknown message.",print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("./foo/message.toffee")),_to("\n"),_to(""+escape(snippet("./foo/message.toffee"))),_to("\n"),_to(""+partial("./foo/message.toffee",{from:"Sam"})),_to("\n"),_to(""+escape(snippet("./foo/message.toffee",{from:"Max"}))),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/snippets/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/snippets/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Preloaded sender\n"),_to("Preloaded message.\n"),_to("From: Unknown sender\n"),_to("Unknown message.\n"),_to("From: Sam\n"),_to("Preloaded message.\n"),_to("From: Max\n"),_to("Unknown message."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/special_cases/input.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/special_cases/input.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_to(""+print("click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) -(function(){var tmpl;tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.pub=function(locals){var _l,_ln,_t,_to,_ts;_l=locals,_t=_l.__toffee={out:[]},_to=function(x){return locals.__toffee.out.push(x)},_ln=function(x){return locals.__toffee.lineno=x},_ts=function(x){return locals.__toffee.state=x},_l.print==null&&(_l.print=function(o){return toffee.__print(_l,o)}),_l.json==null&&(_l.json=function(o){return toffee.__json(_l,o)}),_l.raw==null&&(_l.raw=function(o){return toffee.__raw(_l,o)}),_l.html==null&&(_l.html=function(o){return toffee.__html(_l,o)}),_l.escape==null&&(_l.escape=function(o){return toffee.__escape(_l,o)}),_l.partial==null&&(_l.partial=function(path,vars){return toffee.__partial(toffee.templates["/special_cases/output.toffee"],_l,path,vars)}),_l.snippet==null&&(_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates["/special_cases/output.toffee"],_l,path,vars)}),_t.print=_l.print,_t.json=_l.json,_t.raw=_l.raw,_t.html=_l.html,_t.escape=_l.escape,_t.partial=_l.partial,_t.snippet=_l.snippet;with(locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) \ No newline at end of file +(function() { + var tmpl; + + tmpl = toffee.templates["/big_file/input.toffee"] = { + bundlePath: "/big_file/input.toffee" + }; + + tmpl.pub = function(locals) { + var count, i, _i, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/big_file/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/big_file/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + count = 0; + for (i = _i = 0; _i < 2; i = ++_i) { + _ts(1); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("..."); + _ts(2); + _ts(2); + count += 1; + print(" " + count + "..."); + _ts(1); + _to(" "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("... "); + _to("" + (escape(count++))); + _to("..."); + _ts(2); + _ts(2); + count += 1; + print(" " + count + "..."); + } + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/big_file/output.toffee"] = { + bundlePath: "/big_file/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/big_file/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/big_file/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324..."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/comments/input.toffee"] = { + bundlePath: "/comments/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/comments/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/comments/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("\n"); + _to("Pass 1\n"); + _ts(2); + _ts(1); + _to("\n"); + _to("Pass 2\n"); + _ts(2); + _ts(2); + /* + print "FAIL FAIL FAIL" + #{ foo } + */ + + _ts(1); + _to("\n"); + _to("Pass 3\n"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/comments/output.toffee"] = { + bundlePath: "/comments/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/comments/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/comments/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("\n"); + _to("Pass 1\n"); + _to("\n"); + _to("Pass 2\n"); + _to("\n"); + _to("Pass 3\n"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/custom_escape/input.toffee"] = { + bundlePath: "/custom_escape/input.toffee" + }; + + tmpl.pub = function(locals) { + var w, x, y, z, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/custom_escape/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + x = '"Hello world"'; + y = '
    '; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + _ts(1); + _to("

    \n"); + _to(" default x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _to(" default y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _to(" default z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _to(" default w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _to("

    \n"); + _to("

    \n"); + _to(" raw x = "); + _to("" + (raw(x))); + _to("\n"); + _to(" raw y = "); + _to("" + (raw(y))); + _to("\n"); + _to(" raw z = "); + _to("" + (raw(z))); + _to("\n"); + _to(" raw w = "); + _to("" + (raw(w))); + _to("\n"); + _to("

    \n"); + _to("\n"); + _to("

    \n"); + _ts(2); + _ts(2); + print(" raw printed x = " + x + "\n"); + print(" raw printed y = " + y + "\n"); + print(" raw printed z = " + z + "\n"); + print(" raw printed w = " + w); + _ts(1); + _to("\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/custom_escape/output.toffee"] = { + bundlePath: "/custom_escape/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/custom_escape/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("

    \n"); + _to(" default x = [\"Hello world\"]\n"); + _to(" default y = [

    ]\n"); + _to(" default z = [click&clack]\n"); + _to(" default w = [1,2,[object Object]]\n"); + _to("

    \n"); + _to("

    \n"); + _to(" raw x = \"Hello world\"\n"); + _to(" raw y =

    \n"); + _to(" raw z = click&clack\n"); + _to(" raw w = 1,2,[object Object]\n"); + _to("

    \n"); + _to("\n"); + _to("

    \n"); + _to(" raw printed x = \"Hello world\"\n"); + _to(" raw printed y =

    \n"); + _to(" raw printed z = click&clack\n"); + _to(" raw printed w = 1,2,[object Object]\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/eco_compare/input.toffee"] = { + bundlePath: "/eco_compare/input.toffee" + }; + + tmpl.pub = function(locals) { + var f, friends, project, _i, _l, _len, _ln, _ref, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/eco_compare/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + this.projects = [ + { + url: "http://localhost:3000", + name: "okcupid", + description: "A site for singles" + }, { + url: "http://localhost:3001", + name: "tallygram", + description: "A site for anyone" + } + ]; + if (this.projects.length) { + _ref = this.projects; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + project = _ref[_i]; + _ts(1); + _to("\n"); + _to(" "); + _to("" + (escape(project.name))); + _to("\n"); + _to("

    "); + _to("" + (escape(project.description))); + _to("

    \n"); + _to(" "); + _ts(2); + } + } else { + _ts(1); + _to(" No projects "); + _ts(2); + } + friends = [ + { + gender: "f", + name: "Jennie" + }, { + gender: "f", + name: "Rachel" + }, { + gender: "m", + name: "Petar" + }, { + gender: "f", + name: "Marissa" + } + ]; + _ts(1); + _to("\n"); + _to("\n"); + _to("You have "); + _to("" + (escape(((function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { + f = friends[_j]; + if (f.gender === "f") _results.push(f); + } + return _results; + })()).length))); + _to(" female friends."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/eco_compare/output.toffee"] = { + bundlePath: "/eco_compare/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/eco_compare/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("\n"); + _to(" okcupid\n"); + _to("

    A site for singles

    \n"); + _to(" \n"); + _to(" tallygram\n"); + _to("

    A site for anyone

    \n"); + _to(" \n"); + _to("\n"); + _to("You have 3 female friends."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/escape/input.toffee"] = { + bundlePath: "/escape/input.toffee" + }; + + tmpl.pub = function(locals) { + var w, x, y, z, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/escape/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/escape/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + x = '"Hello world"'; + y = '
    '; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + _ts(1); + _to("

    \n"); + _to(" default x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _to(" default y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _to(" default z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _to(" default w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _to(" default r = "); + _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); + _to("\n"); + _to(" default w.foo = "); + _to("" + (escape(w.foo))); + _to("\n"); + _to("

    \n"); + _to("

    \n"); + _to(" raw x = "); + _to("" + (raw(x))); + _to("\n"); + _to(" raw y = "); + _to("" + (raw(y))); + _to("\n"); + _to(" raw z = "); + _to("" + (raw(z))); + _to("\n"); + _to(" raw w = "); + _to("" + (raw(w))); + _to("\n"); + _to("

    \n"); + _to("\n"); + _to("

    \n"); + _ts(2); + _ts(2); + print(" raw printed x = " + x + "\n"); + print(" raw printed y = " + y + "\n"); + print(" raw printed z = " + z + "\n"); + print(" raw printed w = " + w); + _ts(1); + _to("\n"); + _to("

    \n"); + _to("

    \n"); + _ts(2); + _ts(2); + print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); + print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); + print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); + print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); + _ts(1); + _to("\n"); + _to("

    \n"); + _to("

    \n"); + _ts(2); + _ts(2); + print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); + print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); + print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); + print(" html printed longhand w = " + (__toffee.html(w))); + _ts(1); + _to("\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/escape/output.toffee"] = { + bundlePath: "/escape/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/escape/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/escape/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("

    \n"); + _to(" default x = "Hello world"\n"); + _to(" default y = <hr />\n"); + _to(" default z = click&clack\n"); + _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _to(" default r = \n"); + _to(" default w.foo = \n"); + _to("

    \n"); + _to("

    \n"); + _to(" raw x = \"Hello world\"\n"); + _to(" raw y =


    \n"); + _to(" raw z = click&clack\n"); + _to(" raw w = 1,2,[object Object]\n"); + _to("

    \n"); + _to("\n"); + _to("

    \n"); + _to(" raw printed x = \"Hello world\"\n"); + _to(" raw printed y =


    \n"); + _to(" raw printed z = click&clack\n"); + _to(" raw printed w = 1,2,[object Object]\n"); + _to("

    \n"); + _to("

    \n"); + _to(" json printed x = \"\\\"Hello world\\\"\"\n"); + _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); + _to(" json printed z = \"click\\u0026clack\"\n"); + _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _to("

    \n"); + _to("

    \n"); + _to(" html printed longhand x = "Hello world"\n"); + _to(" html printed longhand y = <hr />\n"); + _to(" html printed longhand z = click&clack\n"); + _to(" html printed longhand w = 1,2,[object Object]\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/input.toffee"] = { + bundlePath: "/hello_world/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); + _to(", world."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/output.toffee"] = { + bundlePath: "/hello_world/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("Hello, world."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/temp.toffee"] = { + bundlePath: "/hello_world/temp.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/hello_world/temp.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("a\n"); + _to("b\n"); + _to("c\n"); + _to("" + (escape(passed_fn(100)))); + _to("\n"); + _to("d\n"); + _to("e\n"); + _to("f"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/child.toffee"] = { + bundlePath: "/include_order/child.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/child.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/child.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("a\n"); + _ts(2); + _ts(2); + say_hi(); + _ts(1); + _to("\n"); + _to("b"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/input.toffee"] = { + bundlePath: "/include_order/input.toffee" + }; + + tmpl.pub = function(locals) { + var say_hi, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + say_hi = function() { + _ts(1); + _ts(1); + _to("hi"); + return _ts(2); + }; + _ts(1); + _to("1\n"); + _to("2\n"); + _to("" + (partial("child.toffee", { + say_hi: say_hi + }))); + _to("\n"); + _to("3\n"); + _to("4"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/output.toffee"] = { + bundlePath: "/include_order/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_order/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_order/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("1\n"); + _to("2\n"); + _to("hia\n"); + _to("\n"); + _to("b\n"); + _to("3\n"); + _to("4"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_recursion/input.toffee"] = { + bundlePath: "/include_recursion/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_recursion/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + if (countdown === 0) { + _ts(1); + _to("blastoff!"); + _ts(2); + } else { + print("" + countdown + "..." + (partial('input.toffee', { + countdown: countdown - 1 + }))); + } + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_recursion/output.toffee"] = { + bundlePath: "/include_recursion/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_recursion/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/input.toffee"] = { + bundlePath: "/include_techniques/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("" + (partial("message.toffee", { + from: "Chris " + }))); + _to("\n"); + _to("" + (partial("message.toffee", { + from: "Max & Sam" + }))); + _to("\n"); + _ts(2); + _ts(2); + print(partial("message.toffee", { + from: "Christian" + })); + _ts(1); + _ts(1); + _to("" + (partial("message.toffee", { + from: "Jennie" + }))); + _ts(2); + print(partial("message.toffee", { + sender: "The enemy" + })); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/message.toffee"] = { + bundlePath: "/include_techniques/message.toffee" + }; + + tmpl.pub = function(locals) { + var from, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/message.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + from = from || "Unknown"; + _ts(1); + _to("From: "); + _to("" + (from != null ? escape(from) : '')); + _to(" \n"); + _to("Msg: Hello, world\n"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/output.toffee"] = { + bundlePath: "/include_techniques/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/include_techniques/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("From: Chris <ccoyne77@gmail> \n"); + _to("Msg: Hello, world\n"); + _to("\n"); + _to("From: Max & Sam \n"); + _to("Msg: Hello, world\n"); + _to("\n"); + _to("From: Christian \n"); + _to("Msg: Hello, world\n"); + _to("From: Jennie \n"); + _to("Msg: Hello, world\n"); + _to("From: Unknown \n"); + _to("Msg: Hello, world\n"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/indent_attack/input.toffee"] = { + bundlePath: "/indent_attack/input.toffee" + }; + + tmpl.pub = function(locals) { + var i, x, _i, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/indent_attack/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("
    \n"); + _to(" "); + _ts(2); + _ts(2); + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _to("Pass1"); + _ts(2); + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + _ts(1); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _to("Fail"); + _ts(2); + } + } else { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _to("Pass2"); + _ts(2); + } + } + } + } + _ts(1); + _to("\n"); + _to("
    \n"); + _to("\n"); + _ts(2); + _ts(2); + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _to("Pass3"); + _ts(2); + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + _ts(1); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _to("Fail"); + _ts(2); + } + } else { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _to("Pass4"); + _ts(2); + } + } + } + } + _ts(1); + _to("\n"); + _to("
    \n"); + _to("\n"); + _ts(2); + _ts(2); + if (10 === 10) { + if (20 === 20) { + if (30 === 30) { + _ts(1); + _to("Pass5"); + _ts(2); + } + } + } + if (10 === 10) { + if (20 === 30) { + if (30 === 30) { + _ts(1); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _to("Fail"); + _ts(2); + } + } else { + if (20 === 20) { + if (30 === 30) { + _ts(1); + _to("Pass6"); + _ts(2); + } + } + } + } + _ts(1); + _to("\n"); + _to("\n"); + _ts(2); + _ts(2); + if (99 === 99) { + print('Pass7'); + } else { + print('Fail'); + _ts(1); + _to("Fail8"); + _ts(2); + } + _ts(1); + _ts(1); + _to("Pass8"); + _ts(2); + _ts(1); + _to("\n"); + _to("\n"); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _to("...passed with flying colors."); + _ts(2); + _ts(1); + _to("\n"); + _to("

    \n"); + _to(" "); + _ts(2); + _ts(2); + x = 10; + if (x > 1) { + for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { + _ts(1); + _to("
    "); + _to("" + (i != null ? escape(i) : '')); + _ts(2); + _ts(2); + if (i === 3) { + _ts(1); + _to(" (my favorite number) "); + _ts(2); + } + } + } + _ts(1); + _to("\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/indent_attack/output.toffee"] = { + bundlePath: "/indent_attack/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/indent_attack/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("
    \n"); + _to(" Pass1Pass2\n"); + _to("
    \n"); + _to("\n"); + _to("Pass3Pass4\n"); + _to("
    \n"); + _to("\n"); + _to("Pass5Pass6\n"); + _to("\n"); + _to("Pass7Pass8\n"); + _to("\n"); + _to("...passed with flying colors.\n"); + _to("

    \n"); + _to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/junk/input.toffee"] = { + bundlePath: "/junk/input.toffee" + }; + + tmpl.pub = function(locals) { + var supplies, supply, _i, _l, _len, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/junk/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/junk/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + supplies = ["broom", "mop", "vacuum"]; + _ts(1); + _to("
      \n"); + _to(" "); + _ts(2); + _ts(2); + for (_i = 0, _len = supplies.length; _i < _len; _i++) { + supply = supplies[_i]; + _ts(1); + _to("
    • "); + _to("" + (supply != null ? escape(supply) : '')); + _to("
    • "); + _ts(2); + } + _ts(1); + _to("\n"); + _to("
    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/junk/output.toffee"] = { + bundlePath: "/junk/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/junk/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/junk/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("
      \n"); + _to("
    • broom
    • mop
    • vacuum
    • \n"); + _to("
    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/lambda_fns/input.toffee"] = { + bundlePath: "/lambda_fns/input.toffee" + }; + + tmpl.pub = function(locals) { + var echo_it, print_it, print_it_twice, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/lambda_fns/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + print_it = function(msg) { + _ts(1); + _to("" + (msg != null ? escape(msg) : '')); + return _ts(2); + }; + print_it_twice = function(msg) { + var m; + _ts(1); + _ts(1); + _to("" + (msg != null ? escape(msg) : '')); + _ts(2); + m = msg; + _ts(1); + _ts(1); + _to("" + (m != null ? escape(m) : '')); + return _ts(2); + }; + echo_it = function(msg) { + var v; + v = msg; + return v; + }; + print_it("Pass"); + print_it_twice("Pass"); + print(echo_it("Pass")); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/lambda_fns/output.toffee"] = { + bundlePath: "/lambda_fns/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/lambda_fns/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("PassPassPassPass"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = { + bundlePath: "/multiline_interpolation/foo.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/foo.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); + _to(" "); + _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = { + bundlePath: "/multiline_interpolation/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("" + (escape("Hello, " + "world"))); + _to("\n"); + _to("
    \n"); + _to("" + (partial("foo.toffee", { + a: "Goodbye" + ',', + b: "world" + }))); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = { + bundlePath: "/multiline_interpolation/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/multiline_interpolation/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("Hello, world\n"); + _to("
    \n"); + _to("Goodbye, world"); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/plaintext/input.toffee"] = { + bundlePath: "/plaintext/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/plaintext/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/plaintext/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("Hi there."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/plaintext/output.toffee"] = { + bundlePath: "/plaintext/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/plaintext/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/plaintext/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("Hi there."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = { + bundlePath: "/snippets/foo/bar/body.toffee" + }; + + tmpl.pub = function(locals) { + var msg, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/foo/bar/body.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + msg = msg || "Unknown message"; + print(msg); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/foo/message.toffee"] = { + bundlePath: "/snippets/foo/message.toffee" + }; + + tmpl.pub = function(locals) { + var from, msg, _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/foo/message.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(2); + from = from || "Unknown sender"; + msg = msg || "Unknown message."; + print("From: " + from + "\n" + (snippet('./bar/body.toffee', { + msg: msg + }))); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/input.toffee"] = { + bundlePath: "/snippets/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("" + (partial("./foo/message.toffee"))); + _to("\n"); + _to("" + (escape(snippet("./foo/message.toffee")))); + _to("\n"); + _to("" + (partial("./foo/message.toffee", { + from: "Sam" + }))); + _to("\n"); + _to("" + (escape(snippet("./foo/message.toffee", { + from: "Max" + })))); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/output.toffee"] = { + bundlePath: "/snippets/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/snippets/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/snippets/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("From: Preloaded sender\n"); + _to("Preloaded message.\n"); + _to("From: Unknown sender\n"); + _to("Unknown message.\n"); + _to("From: Sam\n"); + _to("Preloaded message.\n"); + _to("From: Max\n"); + _to("Unknown message."); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/special_cases/input.toffee"] = { + bundlePath: "/special_cases/input.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/special_cases/input.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/special_cases/input.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("\n"); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _to('"' + "PASSED" + '"'); + _ts(2); + _ts(1); + _to("\n"); + _ts(2); + _ts(1); + _to("\n"); + _to("

    \n"); + _to(" "); + _to("" + (print("" + 'click & clack' + ""))); + _to("\n"); + _to("

    \n"); + _ts(2); + _ts(1); + _to("\n"); + _to("A backslash is a \\\n"); + _to(""); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +(function() { + var tmpl; + + tmpl = toffee.templates["/special_cases/output.toffee"] = { + bundlePath: "/special_cases/output.toffee" + }; + + tmpl.pub = function(locals) { + var _l, _ln, _t, _to, _ts; + _l = locals; + _t = _l.__toffee = { + out: [] + }; + _to = function(x) { + return locals.__toffee.out.push(x); + }; + _ln = function(x) { + return locals.__toffee.lineno = x; + }; + _ts = function(x) { + return locals.__toffee.state = x; + }; + if (!(_l.print != null)) { + _l.print = function(o) { + return toffee.__print(_l, o); + }; + } + if (!(_l.json != null)) { + _l.json = function(o) { + return toffee.__json(_l, o); + }; + } + if (!(_l.raw != null)) { + _l.raw = function(o) { + return toffee.__raw(_l, o); + }; + } + if (!(_l.html != null)) { + _l.html = function(o) { + return toffee.__html(_l, o); + }; + } + if (!(_l.escape != null)) { + _l.escape = function(o) { + return toffee.__escape(_l, o); + }; + } + if (!(_l.partial != null)) { + _l.partial = function(path, vars) { + return toffee.__partial(toffee.templates["/special_cases/output.toffee"], _l, path, vars); + }; + } + if (!(_l.snippet != null)) { + _l.snippet = function(path, vars) { + return toffee.__snippet(toffee.templates["/special_cases/output.toffee"], _l, path, vars); + }; + } + _t.print = _l.print; + _t.json = _l.json; + _t.raw = _l.raw; + _t.html = _l.html; + _t.escape = _l.escape; + _t.partial = _l.partial; + _t.snippet = _l.snippet; + with (locals) {; + + __toffee.out = []; + _ts(1); + _ts(1); + _to("\n"); + _to('"' + "PASSED\"\n"); + _to("\n"); + _to("

    \n"); + _to(" click & clack\n"); + _to("

    \n"); + _to("\n"); + _to("A backslash is a \\\n"); + _to(""); + _ts(2); + __toffee.res = __toffee.out.join(""); + return __toffee.res; + return } /* closing JS 'with' */ ; + }; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index c3b94b8..d636b4c 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -19,12 +19,12 @@
    0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...
    Hello, world.
    10...9...8...7...6...5...4...3...2...1...blastoff!
    PassPassPassPass
    Hi there.
    ]\n"); + _ln(4); _to(" default z = [click&clack]\n"); + _ln(5); _to(" default w = [1,2,[object Object]]\n"); + _ln(6); _to("

    \n"); + _ln(7); _to("

    \n"); + _ln(8); _to(" raw x = \"Hello world\"\n"); + _ln(9); _to(" raw y =

    \n"); + _ln(10); _to(" raw z = click&clack\n"); + _ln(11); _to(" raw w = 1,2,[object Object]\n"); + _ln(12); _to("

    \n"); + _ln(13); _to("\n"); + _ln(19); _to("

    \n"); + _ln(20); _to(" raw printed x = \"Hello world\"\n"); + _ln(21); _to(" raw printed y =

    \n"); + _ln(22); _to(" raw printed z = click&clack\n"); + _ln(23); _to(" raw printed w = 1,2,[object Object]\n"); + _ln(24); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1121,20 +1194,25 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { for (_i = 0, _len = _ref.length; _i < _len; _i++) { project = _ref[_i]; _ts(1); + _ln(8); _to("\n"); + _ln(9); _to(" "); _to("" + (escape(project.name))); _to("\n"); + _ln(10); _to("

    "); _to("" + (escape(project.description))); _to("

    \n"); + _ln(11); _to(" "); _ts(2); } } else { _ts(1); + _ln(12); _to(" No projects "); _ts(2); } @@ -1154,8 +1232,11 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } ]; _ts(1); + _ln(20); _to("\n"); + _ln(21); _to("\n"); + _ln(22); _to("You have "); _to("" + (escape(((function() { var _j, _len1, _results; @@ -1248,14 +1329,23 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("\n"); + _ln(2); _to(" okcupid\n"); + _ln(3); _to("

    A site for singles

    \n"); + _ln(4); _to(" \n"); + _ln(5); _to(" tallygram\n"); + _ln(6); _to("

    A site for anyone

    \n"); + _ln(7); _to(" \n"); + _ln(8); _to("\n"); + _ln(9); _to("You have 3 female friends."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1347,55 +1437,77 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } ]; _ts(1); + _ln(6); _to("

    \n"); + _ln(7); _to(" default x = "); _to("" + (x != null ? escape(x) : '')); _to("\n"); + _ln(8); _to(" default y = "); _to("" + (y != null ? escape(y) : '')); _to("\n"); + _ln(9); _to(" default z = "); _to("" + (z != null ? escape(z) : '')); _to("\n"); + _ln(10); _to(" default w = "); _to("" + (w != null ? escape(w) : '')); _to("\n"); + _ln(11); _to(" default r = "); _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); _to("\n"); + _ln(12); _to(" default w.foo = "); _to("" + (escape(w.foo))); _to("\n"); + _ln(13); _to("

    \n"); + _ln(14); _to("

    \n"); + _ln(15); _to(" raw x = "); _to("" + (raw(x))); _to("\n"); + _ln(16); _to(" raw y = "); _to("" + (raw(y))); _to("\n"); + _ln(17); _to(" raw z = "); _to("" + (raw(z))); _to("\n"); + _ln(18); _to(" raw w = "); _to("" + (raw(w))); _to("\n"); + _ln(19); _to("

    \n"); + _ln(20); _to("\n"); + _ln(26); _to("

    \n"); + _ln(27); _ts(2); _ts(2); print(" raw printed x = " + x + "\n"); @@ -1403,9 +1515,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); _ts(1); + _ln(32); _to("\n"); + _ln(33); _to("

    \n"); + _ln(34); _to("

    \n"); + _ln(35); _ts(2); _ts(2); print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); @@ -1413,9 +1529,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); _ts(1); + _ln(40); _to("\n"); + _ln(41); _to("

    \n"); + _ln(42); _to("

    \n"); + _ln(43); _ts(2); _ts(2); print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); @@ -1423,7 +1543,9 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); print(" html printed longhand w = " + (__toffee.html(w))); _ts(1); + _ln(48); _to("\n"); + _ln(49); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1506,43 +1628,81 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("

    \n"); + _ln(2); _to(" default x = "Hello world"\n"); + _ln(3); _to(" default y = <hr />\n"); + _ln(4); _to(" default z = click&clack\n"); + _ln(5); _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(6); _to(" default r = \n"); + _ln(7); _to(" default w.foo = \n"); + _ln(8); _to("

    \n"); + _ln(9); _to("

    \n"); + _ln(10); _to(" raw x = \"Hello world\"\n"); + _ln(11); _to(" raw y =


    \n"); + _ln(12); _to(" raw z = click&clack\n"); + _ln(13); _to(" raw w = 1,2,[object Object]\n"); + _ln(14); _to("

    \n"); + _ln(15); _to("\n"); + _ln(21); _to("

    \n"); + _ln(22); _to(" raw printed x = \"Hello world\"\n"); + _ln(23); _to(" raw printed y =


    \n"); + _ln(24); _to(" raw printed z = click&clack\n"); + _ln(25); _to(" raw printed w = 1,2,[object Object]\n"); + _ln(26); _to("

    \n"); + _ln(27); _to("

    \n"); + _ln(28); _to(" json printed x = \"\\\"Hello world\\\"\"\n"); + _ln(29); _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); + _ln(30); _to(" json printed z = \"click\\u0026clack\"\n"); + _ln(31); _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(32); _to("

    \n"); + _ln(33); _to("

    \n"); + _ln(34); _to(" html printed longhand x = "Hello world"\n"); + _ln(35); _to(" html printed longhand y = <hr />\n"); + _ln(36); _to(" html printed longhand z = click&clack\n"); + _ln(37); _to(" html printed longhand w = 1,2,[object Object]\n"); + _ln(38); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1625,6 +1785,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); _to(", world."); _ts(2); @@ -1708,6 +1869,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("Hello, world."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1790,13 +1952,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("a\n"); + _ln(2); _to("b\n"); + _ln(3); _to("c\n"); + _ln(4); _to("" + (escape(passed_fn(100)))); _to("\n"); + _ln(5); _to("d\n"); + _ln(6); _to("e\n"); + _ln(7); _to("f"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1879,12 +2048,16 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("a\n"); + _ln(2); _ts(2); _ts(2); say_hi(); _ts(1); + _ln(4); _to("\n"); + _ln(5); _to("b"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -1970,17 +2143,23 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { say_hi = function() { _ts(1); _ts(1); + _ln(3); _to("hi"); return _ts(2); }; _ts(1); + _ln(4); _to("1\n"); + _ln(5); _to("2\n"); + _ln(6); _to("" + (partial("child.toffee", { say_hi: say_hi }))); _to("\n"); + _ln(7); _to("3\n"); + _ln(8); _to("4"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -2063,12 +2242,19 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("1\n"); + _ln(2); _to("2\n"); + _ln(3); _to("hia\n"); + _ln(4); _to("\n"); + _ln(5); _to("b\n"); + _ln(6); _to("3\n"); + _ln(7); _to("4"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -2153,6 +2339,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); if (countdown === 0) { _ts(1); + _ln(2); _to("blastoff!"); _ts(2); } else { @@ -2240,6 +2427,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -2322,14 +2510,17 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("" + (partial("message.toffee", { from: "Chris " }))); _to("\n"); + _ln(2); _to("" + (partial("message.toffee", { from: "Max & Sam" }))); _to("\n"); + _ln(3); _ts(2); _ts(2); print(partial("message.toffee", { @@ -2337,6 +2528,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { })); _ts(1); _ts(1); + _ln(5); _to("" + (partial("message.toffee", { from: "Jennie" }))); @@ -2426,10 +2618,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); from = from || "Unknown"; _ts(1); + _ln(3); _to("From: "); _to("" + (from != null ? escape(from) : '')); _to(" \n"); + _ln(4); _to("Msg: Hello, world\n"); + _ln(5); _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -2511,18 +2706,31 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("From: Chris <ccoyne77@gmail> \n"); + _ln(2); _to("Msg: Hello, world\n"); + _ln(3); _to("\n"); + _ln(4); _to("From: Max & Sam \n"); + _ln(5); _to("Msg: Hello, world\n"); + _ln(6); _to("\n"); + _ln(7); _to("From: Christian \n"); + _ln(8); _to("Msg: Hello, world\n"); + _ln(9); _to("From: Jennie \n"); + _ln(10); _to("Msg: Hello, world\n"); + _ln(11); _to("From: Unknown \n"); + _ln(12); _to("Msg: Hello, world\n"); + _ln(13); _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -2604,7 +2812,9 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("
    \n"); + _ln(2); _to(" "); _ts(2); _ts(2); @@ -2612,6 +2822,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (2 === 2) { if (3 === 3) { _ts(1); + _ln(5); _to("Pass1"); _ts(2); } @@ -2621,10 +2832,12 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (2 === 3) { if (3 === 3) { _ts(1); + _ln(9); _to("Fail"); _ts(2); } else { _ts(1); + _ln(11); _to("Fail"); _ts(2); } @@ -2632,6 +2845,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (2 === 2) { if (3 === 3) { _ts(1); + _ln(14); _to("Pass2"); _ts(2); } @@ -2639,15 +2853,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } } _ts(1); + _ln(15); _to("\n"); + _ln(16); _to("
    \n"); + _ln(17); _to("\n"); + _ln(18); _ts(2); _ts(2); if (1 === 1) { if (2 === 2) { if (3 === 3) { _ts(1); + _ln(21); _to("Pass3"); _ts(2); } @@ -2657,10 +2876,12 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (2 === 3) { if (3 === 3) { _ts(1); + _ln(25); _to("Fail"); _ts(2); } else { _ts(1); + _ln(27); _to("Fail"); _ts(2); } @@ -2668,6 +2889,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (2 === 2) { if (3 === 3) { _ts(1); + _ln(30); _to("Pass4"); _ts(2); } @@ -2675,15 +2897,20 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } } _ts(1); + _ln(31); _to("\n"); + _ln(32); _to("
    \n"); + _ln(33); _to("\n"); + _ln(34); _ts(2); _ts(2); if (10 === 10) { if (20 === 20) { if (30 === 30) { _ts(1); + _ln(37); _to("Pass5"); _ts(2); } @@ -2693,10 +2920,12 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (20 === 30) { if (30 === 30) { _ts(1); + _ln(41); _to("Fail"); _ts(2); } else { _ts(1); + _ln(43); _to("Fail"); _ts(2); } @@ -2704,6 +2933,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (20 === 20) { if (30 === 30) { _ts(1); + _ln(46); _to("Pass6"); _ts(2); } @@ -2711,8 +2941,11 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } } _ts(1); + _ln(47); _to("\n"); + _ln(48); _to("\n"); + _ln(49); _ts(2); _ts(2); if (99 === 99) { @@ -2720,25 +2953,34 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } else { print('Fail'); _ts(1); + _ln(54); _to("Fail8"); _ts(2); } _ts(1); _ts(1); + _ln(55); _to("Pass8"); _ts(2); _ts(1); + _ln(56); _to("\n"); + _ln(57); _to("\n"); + _ln(58); _ts(2); _ts(2); _ts(1); _ts(1); + _ln(60); _to("...passed with flying colors."); _ts(2); _ts(1); + _ln(61); _to("\n"); + _ln(62); _to("

    \n"); + _ln(63); _to(" "); _ts(2); _ts(2); @@ -2746,19 +2988,23 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (x > 1) { for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { _ts(1); + _ln(67); _to("
    "); _to("" + (i != null ? escape(i) : '')); _ts(2); _ts(2); if (i === 3) { _ts(1); + _ln(68); _to(" (my favorite number) "); _ts(2); } } } _ts(1); + _ln(70); _to("\n"); + _ln(71); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -2841,20 +3087,35 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("
    \n"); + _ln(2); _to(" Pass1Pass2\n"); + _ln(3); _to("
    \n"); + _ln(4); _to("\n"); + _ln(5); _to("Pass3Pass4\n"); + _ln(6); _to("
    \n"); + _ln(7); _to("\n"); + _ln(8); _to("Pass5Pass6\n"); + _ln(9); _to("\n"); + _ln(10); _to("Pass7Pass8\n"); + _ln(11); _to("\n"); + _ln(12); _to("...passed with flying colors.\n"); + _ln(13); _to("

    \n"); + _ln(14); _to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); + _ln(15); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -2939,7 +3200,9 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); supplies = ["broom", "mop", "vacuum"]; _ts(1); + _ln(3); _to("
      \n"); + _ln(4); _to(" "); _ts(2); _ts(2); @@ -2953,6 +3216,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } _ts(1); _to("\n"); + _ln(5); _to("
    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3035,8 +3299,11 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("
      \n"); + _ln(2); _to("
    • broom
    • mop
    • vacuum
    • \n"); + _ln(3); _to("
    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3121,6 +3388,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); print_it = function(msg) { _ts(1); + _ln(2); _to("" + (msg != null ? escape(msg) : '')); return _ts(2); }; @@ -3128,11 +3396,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { var m; _ts(1); _ts(1); + _ln(5); _to("" + (msg != null ? escape(msg) : '')); _ts(2); m = msg; _ts(1); _ts(1); + _ln(7); _to("" + (m != null ? escape(m) : '')); return _ts(2); }; @@ -3224,6 +3494,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("PassPassPassPass"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3306,6 +3577,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); _to(" "); _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); @@ -3390,13 +3662,18 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("" + (escape("Hello, " + "world"))); + _ln(4); _to("\n"); + _ln(5); _to("
    \n"); + _ln(6); _to("" + (partial("foo.toffee", { a: "Goodbye" + ',', b: "world" }))); + _ln(10); _ts(2); __toffee.res = __toffee.out.join(""); return __toffee.res; @@ -3478,8 +3755,11 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("Hello, world\n"); + _ln(2); _to("
    \n"); + _ln(3); _to("Goodbye, world"); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3562,6 +3842,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("Hi there."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3644,6 +3925,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("Hi there."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3893,14 +4175,18 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("" + (partial("./foo/message.toffee"))); _to("\n"); + _ln(2); _to("" + (escape(snippet("./foo/message.toffee")))); _to("\n"); + _ln(3); _to("" + (partial("./foo/message.toffee", { from: "Sam" }))); _to("\n"); + _ln(4); _to("" + (escape(snippet("./foo/message.toffee", { from: "Max" })))); @@ -3985,13 +4271,21 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("From: Preloaded sender\n"); + _ln(2); _to("Preloaded message.\n"); + _ln(3); _to("From: Unknown sender\n"); + _ln(4); _to("Unknown message.\n"); + _ln(5); _to("From: Sam\n"); + _ln(6); _to("Preloaded message.\n"); + _ln(7); _to("From: Max\n"); + _ln(8); _to("Unknown message."); _ts(2); __toffee.res = __toffee.out.join(""); @@ -4074,29 +4368,44 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(5); _to("\n"); + _ln(6); _ts(2); _ts(2); _ts(1); _ts(1); + _ln(7); _to('"' + "PASSED" + '"'); _ts(2); _ts(1); + _ln(8); _to("\n"); + _ln(9); _ts(2); _ts(1); + _ln(13); _to("\n"); + _ln(14); _to("

    \n"); + _ln(15); _to(" "); _to("" + (print("" + 'click & clack' + ""))); _to("\n"); + _ln(16); _to("

    \n"); + _ln(17); _ts(2); _ts(1); + _ln(21); _to("\n"); + _ln(22); _to("A backslash is a \\\n"); + _ln(23); _to(""); _ts(2); __toffee.res = __toffee.out.join(""); @@ -4179,16 +4488,27 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { __toffee.out = []; _ts(1); _ts(1); + _ln(1); _to("\n"); + _ln(2); _to('"' + "PASSED\"\n"); + _ln(3); _to("\n"); + _ln(4); _to("

    \n"); + _ln(5); _to(" click & clack\n"); + _ln(6); _to("

    \n"); + _ln(7); _to("\n"); + _ln(8); _to("A backslash is a \\\n"); + _ln(9); _to(""); _ts(2); __toffee.res = __toffee.out.join(""); From 041053b25024485706d6a40353f22a0d78061f9c Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 1 Aug 2012 15:38:57 -0400 Subject: [PATCH 037/163] npm version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 596eedb..4acfded 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.31", + "version": "0.0.32", "directories": { "lib": "./lib" }, From 1e6df6e113c28b1784271dd7005ee2111ae6ef0b Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 2 Aug 2012 16:49:42 -0300 Subject: [PATCH 038/163] Update README.md --- README.md | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2801baa..18d39f5 100644 --- a/README.md +++ b/README.md @@ -385,31 +385,26 @@ toffee.expressEngine.autoEscape = false known issues =============== -1. comments in `{## ##}` cannot contain other toffee code. Hope to have this fixed soon, as these tokens should -be useful for temporarily commenting off a region of a template. - -3. There's a case where line numbers aren't right. +1. command line stdout not done yet. command-line ============ -Soon I'll have browser compilation working. I'd like partials and everything to work before I release this. In the meantime, if you're -curious to see the CoffeeScript that's compiled from a template: +You can compile an entire project of .toffee files easily. ``` -toffee -c foo.toffee +toffee --help ``` -Or to see it in JS: -``` -toffee foo.toffee -``` +This will display some examples and instructions for including a template bundle in your frontend. + +contributing & asking for fixes. +================= +If you have a problem with Toffee let me know, and I'll fix it ASAP. -contributing -============= -I'm likely to accept good pull requests. +Also, I'm likely to accept good pull requests. If you'd like to edit code for this project, note that you should always edit the `.coffee` files, -as the `.js` files as generated automatically by building. +as the `.js` files are generated automatically by building. To build ``` @@ -425,7 +420,8 @@ I'm also very interested in someone building a Sublime/Textmate package for Toff todo ====== -- finish browser-side include and command-line compiler -- ...then add instructions on how to use it - continue to add to unit tests -- stack trace conversion improvement +- finish a few command line options + - stdout + - coffee output isntead of js, if requested + - file-by-file output with root dir as param From 5a18151f0dd7afb74f5c0feffdfa273c00ab8483 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 3 Aug 2012 14:51:56 -0400 Subject: [PATCH 039/163] commenting out blocks of code with {## ##} now working. --- lib/toffee_lang.js | 42 +++++++++---------- package.json | 2 +- src/toffee.jison | 25 +++++++++-- test/cases/comments/input.toffee | 15 ++++++- .../express3/public/javascripts/test_cases.js | 5 ++- 5 files changed, 60 insertions(+), 29 deletions(-) diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index cc2c8f8..3a60a76 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -2,9 +2,9 @@ var toffee_lang = (function(){ var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffeecomment":8,"START_TOFFEE_COMMENT":9,"code":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"coffee_zone":13,"END_COFFEE":14,"coffee_code":15,"flip_to_toffee":16,"START_TOFFEE":17,"END_TOFFEE":18,"START_INDENTED_TOFFEE":19,"CODE":20,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_COFFEE",14:"END_COFFEE",17:"START_TOFFEE",18:"END_TOFFEE",19:"START_INDENTED_TOFFEE",20:"CODE"}, -productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[7,3],[13,1],[13,3],[13,2],[13,0],[16,3],[16,3],[6,1],[15,1],[10,1],[10,2]], +symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffee_comment":8,"START_TOFFEE_COMMENT":9,"toffee_commented_region":10,"END_TOFFEE_COMMENT":11,"START_INDENTED_TOFFEE":12,"START_COFFEE":13,"END_COFFEE":14,"START_TOFFEE":15,"END_TOFFEE":16,"CODE":17,"coffee_zone":18,"coffee_code":19,"flip_to_toffee":20,"code":21,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_INDENTED_TOFFEE",13:"START_COFFEE",14:"END_COFFEE",15:"START_TOFFEE",16:"END_TOFFEE",17:"CODE"}, +productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,2],[10,0],[7,3],[18,1],[18,3],[18,2],[18,0],[20,3],[20,3],[6,1],[19,1],[21,1],[21,2]], performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { var $0 = $$.length - 1; @@ -23,37 +23,37 @@ case 6: this.$ = $$[$0]; break; case 7: this.$ = []; break; -case 9: this.$ = ["COFFEE_ZONE", $$[$0-1]]; +case 16: this.$ = ["COFFEE_ZONE", $$[$0-1]]; break; -case 10: this.$ = [$$[$0]]; +case 17: this.$ = [$$[$0]]; break; -case 11: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); +case 18: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); break; -case 12: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); +case 19: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); break; -case 13: this.$ = []; +case 20: this.$ = []; break; -case 14: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; +case 21: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; break; -case 15: this.$ = ["INDENTED_TOFFEE_ZONE", $$[$0-1]]; +case 22: this.$ = ["INDENTED_TOFFEE_ZONE", $$[$0-1]]; break; -case 16: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; +case 23: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; break; -case 17: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; +case 24: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; break; -case 18: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; +case 25: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; this.$ = [$$[$0], ln]; break; -case 19: var c = $$[$0-1][0] + $$[$0]; +case 26: var c = $$[$0-1][0] + $$[$0]; var ln = yylineno + 1 - c.split("\n").length + 1; this.$ = [c, ln]; break; } }, -table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],20:[1,9]},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],12:[1,7],18:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,16],9:[2,16],12:[2,16],18:[2,16],20:[1,15]},{10:19,13:16,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{10:22,20:[1,9]},{5:[2,18],9:[2,18],11:[2,18],12:[2,18],14:[2,18],17:[2,18],18:[2,18],19:[2,18],20:[2,18]},{1:[2,1]},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:24,5:[2,7],6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{5:[2,4],18:[2,4]},{5:[2,6],18:[2,6]},{5:[2,19],9:[2,19],11:[2,19],12:[2,19],14:[2,19],17:[2,19],18:[2,19],19:[2,19],20:[2,19]},{14:[1,25]},{14:[2,10],16:26,17:[1,20],19:[1,21]},{10:19,13:27,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,17],17:[2,17],19:[2,17],20:[1,15]},{4:28,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{4:29,6:3,7:4,8:5,9:[1,8],10:6,12:[1,7],18:[2,7],20:[1,9]},{11:[1,30],20:[1,15]},{5:[2,3],18:[2,3]},{5:[2,5],18:[2,5]},{5:[2,9],9:[2,9],12:[2,9],18:[2,9],20:[2,9]},{10:19,13:31,14:[2,13],15:17,16:18,17:[1,20],19:[1,21],20:[1,9]},{14:[2,12]},{18:[1,32]},{18:[1,33]},{5:[2,8],9:[2,8],12:[2,8],18:[2,8],20:[2,8]},{14:[2,11]},{14:[2,14],17:[2,14],19:[2,14],20:[2,14]},{14:[2,15],17:[2,15],19:[2,15],20:[2,15]}], -defaultActions: {10:[2,1],27:[2,12],31:[2,11]}, +table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],17:[1,9],21:6},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],13:[1,7],16:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{5:[2,23],9:[2,23],13:[2,23],16:[2,23],17:[1,15]},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:16,19:17,20:18,21:19},{10:22,11:[2,15],12:[2,15],13:[2,15],14:[2,15],15:[2,15],16:[2,15],17:[2,15]},{5:[2,25],9:[2,25],12:[2,25],13:[2,25],14:[2,25],15:[2,25],16:[2,25],17:[2,25]},{1:[2,1]},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:24,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{5:[2,4],16:[2,4]},{5:[2,6],16:[2,6]},{5:[2,26],9:[2,26],12:[2,26],13:[2,26],14:[2,26],15:[2,26],16:[2,26],17:[2,26]},{14:[1,25]},{12:[1,21],14:[2,17],15:[1,20],20:26},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:27,19:17,20:18,21:19},{12:[2,24],14:[2,24],15:[2,24],17:[1,15]},{4:28,6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:29,6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{11:[1,30],12:[1,31],13:[1,32],14:[1,33],15:[1,34],16:[1,35],17:[1,36]},{5:[2,3],16:[2,3]},{5:[2,5],16:[2,5]},{5:[2,16],9:[2,16],13:[2,16],16:[2,16],17:[2,16]},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:37,19:17,20:18,21:19},{14:[2,19]},{16:[1,38]},{16:[1,39]},{5:[2,8],9:[2,8],13:[2,8],16:[2,8],17:[2,8]},{11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[2,9],17:[2,9]},{11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[2,10],17:[2,10]},{11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],17:[2,11]},{11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],17:[2,12]},{11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],17:[2,13]},{11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],17:[2,14]},{14:[2,18]},{12:[2,21],14:[2,21],15:[2,21],17:[2,21]},{12:[2,22],14:[2,22],15:[2,22],17:[2,22]}], +defaultActions: {10:[2,1],27:[2,19],37:[2,18]}, parseError: function parseError(str, hash) { throw new Error(str); }, @@ -380,17 +380,17 @@ case 0:return 9; break; case 1:return 11; break; -case 2:return 18; +case 2:return 16; break; -case 3:return 19; +case 3:return 12; break; -case 4:return 12; +case 4:return 13; break; case 5:return 14; break; -case 6:return 17; +case 6:return 15; break; -case 7:return 20; +case 7:return 17; break; case 8:return 5; break; diff --git a/package.json b/package.json index 4acfded..e6d04d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.32", + "version": "0.0.33", "directories": { "lib": "./lib" }, diff --git a/src/toffee.jison b/src/toffee.jison index d6f106a..ca93769 100644 --- a/src/toffee.jison +++ b/src/toffee.jison @@ -28,6 +28,7 @@ starter toffee_zone EOF { $$ = ["TOFFEE_ZONE", $1]; return $$;} ; + toffee_zone : toffee_code { $$ = [$1]; } @@ -36,16 +37,32 @@ toffee_zone | flip_to_coffee toffee_zone { $$ = $2; $2.splice(0,0,$1); } | - toffee_code flip_to_toffeecomment toffee_zone { $$ = $3; $3.splice(0,0,$1); } + toffee_code flip_to_toffee_comment toffee_zone { $$ = $3; $3.splice(0,0,$1); } | - flip_to_toffeecomment toffee_zone { $$ = $2; } + flip_to_toffee_comment toffee_zone { $$ = $2; } | { $$ = []; } ; -flip_to_toffeecomment +flip_to_toffee_comment : - START_TOFFEE_COMMENT code END_TOFFEE_COMMENT {} + START_TOFFEE_COMMENT toffee_commented_region END_TOFFEE_COMMENT {} + ; + +toffee_commented_region + : + toffee_commented_region START_INDENTED_TOFFEE + | + toffee_commented_region START_COFFEE + | + toffee_commented_region END_COFFEE + | + toffee_commented_region START_TOFFEE + | + toffee_commented_region END_TOFFEE + | + toffee_commented_region CODE + | ; flip_to_coffee diff --git a/test/cases/comments/input.toffee b/test/cases/comments/input.toffee index 89cc52b..54655cf 100644 --- a/test/cases/comments/input.toffee +++ b/test/cases/comments/input.toffee @@ -17,5 +17,16 @@ Pass 2 ### #} -Pass 3 -{## Fail ##}{## Fail ##} \ No newline at end of file +Pass 3{## Fail ##}{## Fail ##} +{## + Fail + #{"Fail"} + {# + for x in [1...100] {: + #{"Fail"} + {# + print "Fail" + #} + :} + #} +##} \ No newline at end of file diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 9f34f6a..cfb9c98 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -708,7 +708,10 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ln(19); _to("\n"); _ln(20); - _to("Pass 3\n"); + _to("Pass 3"); + _ts(2); + _ts(1); + _to("\n"); _ln(21); _ts(2); __toffee.res = __toffee.out.join(""); From 3fa0c2aa777e4caa26892845c031476f15bf0c32 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 3 Aug 2012 15:57:10 -0300 Subject: [PATCH 040/163] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 18d39f5..2b80632 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,21 @@ With nested code, indentation is inferred. #} ``` +### Commenting out a block of code + +In toffee mode, you can comment out a region with `{##` and `##}`. + +```html +
    + I don't want to output this anymore... + {## +

    An ode to Ruby on Rails

    +

    #{partial 'ode.toffee'}

    + ##} +
    +``` + + ### Switching to toffee mode without indenting By default, when you enter `{: ... :}`, the Toffee compiler assumes you're entering an indented region, From 23846adcf316739a48ff39e836de3bc2bef59369 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 3 Aug 2012 16:24:38 -0300 Subject: [PATCH 041/163] Update README.md --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 2b80632..465fe8d 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The `#{}` syntax is powerful, so be responsible.

    ``` -Including other files is possible thanks to the function `partial`. This in both Express and the browser. +Including other files is possible thanks to the function `partial`. This works in both Express and the browser. ```html

    @@ -39,7 +39,7 @@ Including other files is possible thanks to the function `partial`. This in both ``` But the greatest pleasure arises when you enter -`coffee mode`. Note the `{# ... #}` region. +`coffee mode`. Note the `{# ... #}` region, where you can write multiple lines of CoffeeScript. ```html

    @@ -51,7 +51,7 @@ But the greatest pleasure arises when you enter

    ``` -Further, inside `coffee mode`, you can switch back to `toffee mode` with `{: ... :}`. It's endlessly nestable. +Against all odds, inside `coffee mode`, you can switch back to `toffee mode` with `{: ... :}`. It's endlessly nestable. ```html
    @@ -69,7 +69,9 @@ Further, inside `coffee mode`, you can switch back to `toffee mode` with `{: ... ``` This bracket and nesting syntax avoids a lot of large, ugly regions, such -as EJS's unsavory and unethical `<% } %>`. Compare: +as EJS's unethical `<% } %>`. It's been wrong for thousands of years +to have control markers surrounded by other control +markers, and it is still wrong. Witness: EJS, verbose and weak. ``` @@ -85,7 +87,7 @@ TOFFEE, so elegant and proud. #} ``` -Or, using the built-in `print`: +Or, using Toffee's `print`: ```html {# for supply in supplies @@ -96,7 +98,7 @@ Or, using the built-in `print`: These are slightly different, as `print` outputs raw text, while `#{}` used in toffee mode safely escapes for HTML. This escaping is customizable. More on that below. -With nested code, indentation is inferred. +With nested code, indentation of your CoffeeScript is magically maintained. ```html {# @@ -236,7 +238,7 @@ ECO TOFFEE ```html {# - if @projects.length + if projects.length for project in @projects if project.is_active {:

    #{project.name} | #{project.description}

    From 0801588c79abe51b58ca89ebbf52c36d97443ad2 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 3 Aug 2012 16:28:15 -0300 Subject: [PATCH 042/163] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 465fe8d..3421494 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The `#{}` syntax is powerful, so be responsible. ```html

    - You have #{(f for f in friends when f.gender is "f").length} female friends. + You have #{(limb for limb in limbs when limb.hasHand()).length} arms worth keeping.

    ``` From 5bcd4a87fca24f5487e4565336db716ba48758ff Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 3 Aug 2012 16:30:51 -0300 Subject: [PATCH 043/163] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 3421494..b2231cb 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,6 @@ With nested code, indentation of your CoffeeScript is magically maintained. You know, #{name} would make a great designated driver. And she only lives #{profile.distance}km away. {# - profile.cars.sort (a,b) -> b.speed - a.speed if profile.cars.length {: And wow, she drives a #{profile.cars[0].model} :} else {: But, alas, she has no wheels. :} #} From 17777ee5d08fc35159fd7da831757c1ec13f8aac Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 3 Aug 2012 16:38:48 -0300 Subject: [PATCH 044/163] Update README.md --- README.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b2231cb..5f3fbf6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Table of Contents * [3. Common Questions](#section_3) * [4. Installation & Usage](#section_4) -## 1. Language Basics +## Language Basics Printing variables in Toffee is easy. Just use CoffeeScript's #{} syntax: ```html @@ -155,7 +155,7 @@ The above is identical to: Well, it's not exactly identical. Let's talk about escaping. -## 2. Escaping +## Escaping In your CoffeeScript, the `print` function lets you print the raw value of a variable: @@ -214,7 +214,7 @@ Turning off autoescaping entirely: * If you set `autoEscape: false` when creating the engine, the default will be raw across your project. (See more on that below under Express 3.x settings.) * Alternatively, you could pass the var `escape: (x) -> x` to turn off escaping for a given template. -## 3. Common Questions +## Common Questions #### How does it compare to eco? @@ -351,7 +351,7 @@ ERROR In the above 2 cases, note that the leading whitespaces before the `if` and `else` are different, which is a CoffeeScript error. -## 4 Installation & Usage +## Installation & Usage ``` npm install -g toffee @@ -408,6 +408,7 @@ command-line You can compile an entire project of .toffee files easily. ``` +npm install -g toffee (if you haven't yet) toffee --help ``` @@ -432,12 +433,3 @@ To make sure you didn't break something > coffee tests/run_cases.coffee ``` -I'm also very interested in someone building a Sublime/Textmate package for Toffee. - -todo -====== -- continue to add to unit tests -- finish a few command line options - - stdout - - coffee output isntead of js, if requested - - file-by-file output with root dir as param From 0a4ce3384264cd5fe11ae2522b4e7ad39ed9eb94 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Tue, 7 Aug 2012 16:22:53 -0400 Subject: [PATCH 045/163] fixed: error pretty print bug --- lib/errorHandler.js | 22 +++++++--------------- package.json | 2 +- src/errorHandler.coffee | 20 +++++++------------- 3 files changed, 15 insertions(+), 29 deletions(-) diff --git a/lib/errorHandler.js b/lib/errorHandler.js index f487a60..e51bf27 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -145,11 +145,7 @@ var cerr, count, header, i, item, res, _i, _len, _ref, _ref1; cerr = this.getConvertedError(); - if (cerr.type === errorTypes.RUNTIME) { - header = cerr.message; - } else { - header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; - } + header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message; res = "ERROR\n=====\n" + header; if ((_ref = cerr.stack) != null ? _ref.length : void 0) { res += "\n\nSTACK\n=====\n"; @@ -184,11 +180,7 @@ var cerr, count, extra, header, i, item, j, line, padding, padding_len, res, _i, _j, _len, _ref, _ref1, _ref2, _ref3, _ref4; cerr = this.getConvertedError(); res = ""; - if (cerr.type === 234432) { - header = cerr.message; - } else { - header = "" + cerr.dir_name + "/" + cerr.file + ": " + cerr.message + ""; - } + header = "" + cerr.dir_name + "/" + cerr.file + ": " + (_ppEscape(cerr.message)) + ""; res += "
    \n \n
    " + header + "
    \n \n
    \n \n
    "; if ((_ref = cerr.stack) != null ? _ref.length : void 0) { res += "
    "; @@ -222,7 +214,7 @@ } return _results; })()).join(""); - if ((cerr.line_range[0] <= (_ref4 = i + 1) && _ref4 < cerr.line_range[1])) { + if (((cerr.line_range[0] - 1) <= (_ref4 = i) && _ref4 < cerr.line_range[1])) { extra = ""; } else { extra = ""; @@ -234,10 +226,10 @@ }; toffeeError.prototype._lineRangeToPhrase = function(lrange) { - if (lrange[0] >= lrange[1] - 1) { + if (lrange[0] === lrange[1]) { return "on line " + lrange[0]; } else { - return "between lines " + lrange[0] + " and " + (lrange[1] - 1); + return "between lines " + lrange[0] + " and " + lrange[1]; } }; @@ -265,8 +257,8 @@ } prev = ol.slice(0, lineno).join("\n"); next = ol.slice(lineno).join("\n"); - prev_matches = prev.match(/_ln[ ]*\([ ]*([0-9]+)/g); - next_matches = next.match(/_ln[ ]*\([ ]*([0-9]+)/g); + prev_matches = prev.match(/_ln[ ]*\(?[ ]*([0-9]+)/g); + next_matches = next.match(/_ln[ ]*\(?[ ]*([0-9]+)/g); res = [1, tl.length]; if (prev_matches != null ? prev_matches.length : void 0) { res[0] = parseInt(prev_matches[prev_matches.length - 1].match(/[0-9]+/)[0]); diff --git a/package.json b/package.json index e6d04d8..6e25041 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.33", + "version": "0.0.34", "directories": { "lib": "./lib" }, diff --git a/src/errorHandler.coffee b/src/errorHandler.coffee index 6ba24d6..fbe503a 100644 --- a/src/errorHandler.coffee +++ b/src/errorHandler.coffee @@ -116,10 +116,7 @@ class toffeeError returns a TEXT only blob explaining the error ### cerr = @getConvertedError() - if cerr.type is errorTypes.RUNTIME - header = cerr.message - else - header = "#{cerr.dir_name}/#{cerr.file}: #{cerr.message}" + header = "#{cerr.dir_name}/#{cerr.file}: #{cerr.message}" res = """ ERROR ===== @@ -152,10 +149,7 @@ class toffeeError ### cerr = @getConvertedError() res = "" - if cerr.type is 234432#errorTypes.RUNTIME - header = cerr.message - else - header = "#{cerr.dir_name}/#{cerr.file}: #{cerr.message}" + header = "#{cerr.dir_name}/#{cerr.file}: #{_ppEscape cerr.message}" res += """
    \n
    #{header}
    @@ -182,7 +176,7 @@ class toffeeError line = _ppEscape @toffeeSrcLines[i] padding_len = 5 - ("#{i+1}").length padding = (" " for j in [0...padding_len]).join "" - if cerr.line_range[0] <= (i+1) < cerr.line_range[1] + if (cerr.line_range[0] - 1) <= (i) < cerr.line_range[1] extra = "" else extra = "" @@ -194,10 +188,10 @@ class toffeeError res _lineRangeToPhrase: (lrange) -> - if lrange[0] >= lrange[1] - 1 + if lrange[0] is lrange[1] "on line #{lrange[0]}" else - "between lines #{lrange[0]} and #{lrange[1] - 1}" + "between lines #{lrange[0]} and #{lrange[1]}" _extractOffensiveLineNo: (msg, rxx) -> m = msg.match rxx @@ -218,8 +212,8 @@ class toffeeError prev = ol[0...lineno].join "\n" next = ol[lineno...].join "\n" - prev_matches = prev.match /_ln[ ]*\([ ]*([0-9]+)/g - next_matches = next.match /_ln[ ]*\([ ]*([0-9]+)/g + prev_matches = prev.match /_ln[ ]*\(?[ ]*([0-9]+)/g + next_matches = next.match /_ln[ ]*\(?[ ]*([0-9]+)/g res = [1,tl.length] if prev_matches?.length From f0698d9bd168f264f68b30d74bc9aa062c5e9687 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 8 Aug 2012 11:55:54 -0400 Subject: [PATCH 046/163] removed need for -{: token --- README.md | 4 +- lib/toffee_lang.js | 50 ++++++------ lib/view.js | 51 ++++++------ package.json | 2 +- src/toffee.jison | 15 ++-- src/view.coffee | 25 +++--- test/cases/include_order/input.toffee | 2 +- test/cases/include_techniques/input.toffee | 4 +- test/cases/indent_attack/input.toffee | 45 +++++++++-- test/cases/indent_attack/output.toffee | 3 +- test/cases/lambda_fns/input.toffee | 4 +- test/cases/special_cases/input.toffee | 2 +- .../express3/public/javascripts/test_cases.js | 79 +++++++++++++++---- test/express3/views/index.toffee | 3 +- 14 files changed, 188 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index 5f3fbf6..9c5bc4a 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,9 @@ In toffee mode, you can comment out a region with `{##` and `##}`. ``` -### Switching to toffee mode without indenting +### Toffee is smart about indenting. + +You can indent your `{# #}` region however, you want, and By default, when you enter `{: ... :}`, the Toffee compiler assumes you're entering an indented region, probably because of a loop or conditional. diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index 3a60a76..11f943b 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -2,9 +2,9 @@ var toffee_lang = (function(){ var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffee_comment":8,"START_TOFFEE_COMMENT":9,"toffee_commented_region":10,"END_TOFFEE_COMMENT":11,"START_INDENTED_TOFFEE":12,"START_COFFEE":13,"END_COFFEE":14,"START_TOFFEE":15,"END_TOFFEE":16,"CODE":17,"coffee_zone":18,"coffee_code":19,"flip_to_toffee":20,"code":21,"$accept":0,"$end":1}, -terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_INDENTED_TOFFEE",13:"START_COFFEE",14:"END_COFFEE",15:"START_TOFFEE",16:"END_TOFFEE",17:"CODE"}, -productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,2],[10,0],[7,3],[18,1],[18,3],[18,2],[18,0],[20,3],[20,3],[6,1],[19,1],[21,1],[21,2]], +symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffee_comment":8,"START_TOFFEE_COMMENT":9,"toffee_commented_region":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"END_COFFEE":13,"START_TOFFEE":14,"END_TOFFEE":15,"CODE":16,"coffee_zone":17,"coffee_code":18,"flip_to_toffee":19,"code":20,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_COFFEE",13:"END_COFFEE",14:"START_TOFFEE",15:"END_TOFFEE",16:"CODE"}, +productions_: [0,[3,2],[4,1],[4,3],[4,2],[4,3],[4,2],[4,0],[8,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,0],[7,3],[17,1],[17,3],[17,2],[17,0],[19,3],[6,1],[18,1],[20,1],[20,2]], performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { var $0 = $$.length - 1; @@ -23,37 +23,35 @@ case 6: this.$ = $$[$0]; break; case 7: this.$ = []; break; -case 16: this.$ = ["COFFEE_ZONE", $$[$0-1]]; +case 15: this.$ = ["COFFEE_ZONE", $$[$0-1]]; break; -case 17: this.$ = [$$[$0]]; +case 16: this.$ = [$$[$0]]; break; -case 18: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); +case 17: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-2],$$[$0-1]); break; -case 19: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); +case 18: this.$ = $$[$0]; $$[$0].splice(0,0,$$[$0-1]); break; -case 20: this.$ = []; +case 19: this.$ = []; break; -case 21: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; +case 20: this.$ = ["TOFFEE_ZONE", $$[$0-1]]; break; -case 22: this.$ = ["INDENTED_TOFFEE_ZONE", $$[$0-1]]; +case 21: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; break; -case 23: this.$ = ["TOFFEE", $$[$0][0], $$[$0][1] ]; +case 22: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; break; -case 24: this.$ = ["COFFEE", $$[$0][0], $$[$0][1] ]; -break; -case 25: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; +case 23: var ln = yylineno + 1 - $$[$0].split("\n").length + 1; this.$ = [$$[$0], ln]; break; -case 26: var c = $$[$0-1][0] + $$[$0]; +case 24: var c = $$[$0-1][0] + $$[$0]; var ln = yylineno + 1 - c.split("\n").length + 1; this.$ = [c, ln]; break; } }, -table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],17:[1,9],21:6},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],13:[1,7],16:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{5:[2,23],9:[2,23],13:[2,23],16:[2,23],17:[1,15]},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:16,19:17,20:18,21:19},{10:22,11:[2,15],12:[2,15],13:[2,15],14:[2,15],15:[2,15],16:[2,15],17:[2,15]},{5:[2,25],9:[2,25],12:[2,25],13:[2,25],14:[2,25],15:[2,25],16:[2,25],17:[2,25]},{1:[2,1]},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:24,5:[2,7],6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{5:[2,4],16:[2,4]},{5:[2,6],16:[2,6]},{5:[2,26],9:[2,26],12:[2,26],13:[2,26],14:[2,26],15:[2,26],16:[2,26],17:[2,26]},{14:[1,25]},{12:[1,21],14:[2,17],15:[1,20],20:26},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:27,19:17,20:18,21:19},{12:[2,24],14:[2,24],15:[2,24],17:[1,15]},{4:28,6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{4:29,6:3,7:4,8:5,9:[1,8],13:[1,7],16:[2,7],17:[1,9],21:6},{11:[1,30],12:[1,31],13:[1,32],14:[1,33],15:[1,34],16:[1,35],17:[1,36]},{5:[2,3],16:[2,3]},{5:[2,5],16:[2,5]},{5:[2,16],9:[2,16],13:[2,16],16:[2,16],17:[2,16]},{12:[1,21],14:[2,20],15:[1,20],17:[1,9],18:37,19:17,20:18,21:19},{14:[2,19]},{16:[1,38]},{16:[1,39]},{5:[2,8],9:[2,8],13:[2,8],16:[2,8],17:[2,8]},{11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[2,9],17:[2,9]},{11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[2,10],17:[2,10]},{11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],17:[2,11]},{11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],17:[2,12]},{11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],17:[2,13]},{11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],17:[2,14]},{14:[2,18]},{12:[2,21],14:[2,21],15:[2,21],17:[2,21]},{12:[2,22],14:[2,22],15:[2,22],17:[2,22]}], -defaultActions: {10:[2,1],27:[2,19],37:[2,18]}, +table: [{3:1,4:2,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],16:[1,9],20:6},{1:[3]},{5:[1,10]},{5:[2,2],7:11,8:12,9:[1,8],12:[1,7],15:[2,2]},{4:13,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{4:14,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{5:[2,21],9:[2,21],12:[2,21],15:[2,21],16:[1,15]},{13:[2,19],14:[1,20],16:[1,9],17:16,18:17,19:18,20:19},{10:21,11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14]},{5:[2,23],9:[2,23],12:[2,23],13:[2,23],14:[2,23],15:[2,23],16:[2,23]},{1:[2,1]},{4:22,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{4:23,5:[2,7],6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{5:[2,4],15:[2,4]},{5:[2,6],15:[2,6]},{5:[2,24],9:[2,24],12:[2,24],13:[2,24],14:[2,24],15:[2,24],16:[2,24]},{13:[1,24]},{13:[2,16],14:[1,20],19:25},{13:[2,19],14:[1,20],16:[1,9],17:26,18:17,19:18,20:19},{13:[2,22],14:[2,22],16:[1,15]},{4:27,6:3,7:4,8:5,9:[1,8],12:[1,7],15:[2,7],16:[1,9],20:6},{11:[1,28],12:[1,29],13:[1,30],14:[1,31],15:[1,32],16:[1,33]},{5:[2,3],15:[2,3]},{5:[2,5],15:[2,5]},{5:[2,15],9:[2,15],12:[2,15],15:[2,15],16:[2,15]},{13:[2,19],14:[1,20],16:[1,9],17:34,18:17,19:18,20:19},{13:[2,18]},{15:[1,35]},{5:[2,8],9:[2,8],12:[2,8],15:[2,8],16:[2,8]},{11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[2,9]},{11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[2,10]},{11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11]},{11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12]},{11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13]},{13:[2,17]},{13:[2,20],14:[2,20],16:[2,20]}], +defaultActions: {10:[2,1],26:[2,18],34:[2,17]}, parseError: function parseError(str, hash) { throw new Error(str); }, @@ -380,24 +378,22 @@ case 0:return 9; break; case 1:return 11; break; -case 2:return 16; -break; -case 3:return 12; +case 2:return 15; break; -case 4:return 13; +case 3:return 14; break; -case 5:return 14; +case 4:return 12; break; -case 6:return 15; +case 5:return 13; break; -case 7:return 17; +case 6:return 16; break; -case 8:return 5; +case 7:return 5; break; } }; -lexer.rules = [/^\{##/,/^##\}/,/^:\}/,/^\{:/,/^\{#/,/^#\}/,/^[\-][\t\r\n ]*\{:/,/^[^{}#\\:\-]+|[\\{}#:\-]/,/^$/]; -lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8],"inclusive":true}}; +lexer.rules = [/^\{##/,/^##\}/,/^:\}/,/^\{:/,/^\{#/,/^#\}/,/^[^{}#\\:\-]+|[\\{}#:\-]/,/^$/]; +lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7],"inclusive":true}}; return lexer;})() parser.lexer = lexer; return parser; diff --git a/lib/view.js b/lib/view.js index 6dd7431..aa0f302 100644 --- a/lib/view.js +++ b/lib/view.js @@ -122,7 +122,7 @@ */ var item, _i, _len, _ref2, _ref3, _results; - if ((_ref2 = obj[0]) === "INDENTED_TOFFEE_ZONE" || _ref2 === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { + if ((_ref2 = obj[0]) === "TOFFEE_ZONE" || _ref2 === "COFFEE_ZONE") { _ref3 = obj[1]; _results = []; for (_i = 0, _len = _ref3.length; _i < _len; _i++) { @@ -231,7 +231,7 @@ d = Date.now(); res = this._coffeeHeaders(); try { - res += this._toCoffeeRecurse(tobj, TAB_SPACES, 0)[0]; + res += this._toCoffeeRecurse(tobj, TAB_SPACES, 0, {})[0]; res += this._coffeeFooters(); this.coffeeScript = res; } catch (e) { @@ -276,26 +276,20 @@ return false; }; - view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline) { - var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; + view.prototype._toCoffeeRecurse = function(obj, indent_level, indent_baseline, state_carry) { + var c, chunk, delta, i, i_delta, ind, interp, item, lbreak, line, lineno, lines, part, res, s, t_int, temp_indent_level, zone_baseline, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref2, _ref3, _ref4, _ref5; res = ""; i_delta = 0; switch (obj[0]) { - case "INDENTED_TOFFEE_ZONE": - indent_level += TAB_SPACES; + case "TOFFEE_ZONE": + if (state_carry.last_coffee_ends_with_newline === false) { + indent_level += TAB_SPACES; + } + res += "\n" + (this._space(indent_level)) + "_ts " + states.TOFFEE; _ref2 = obj[1]; for (_i = 0, _len = _ref2.length; _i < _len; _i++) { item = _ref2[_i]; - _ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref3[0], delta = _ref3[1]; - res += s; - } - break; - case "TOFFEE_ZONE": - res += "\n" + (this._space(indent_level)) + "_ts " + states.TOFFEE; - _ref4 = obj[1]; - for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { - item = _ref4[_j]; - _ref5 = this._toCoffeeRecurse(item, indent_level, indent_baseline), s = _ref5[0], delta = _ref5[1]; + _ref3 = this._toCoffeeRecurse(item, indent_level, indent_baseline, state_carry), s = _ref3[0], delta = _ref3[1]; res += s; } break; @@ -303,10 +297,10 @@ res += "\n" + (this._space(indent_level)) + "_ts " + states.COFFEE; zone_baseline = this._getZoneBaseline(obj[1]); temp_indent_level = indent_level; - _ref6 = obj[1]; - for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) { - item = _ref6[_k]; - _ref7 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline), s = _ref7[0], delta = _ref7[1]; + _ref4 = obj[1]; + for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) { + item = _ref4[_j]; + _ref5 = this._toCoffeeRecurse(item, temp_indent_level, zone_baseline, state_carry), s = _ref5[0], delta = _ref5[1]; res += s; temp_indent_level = indent_level + delta; } @@ -322,8 +316,8 @@ this.error = new toffeeError(this, errorTypes.STR_INTERPOLATE, e); throw e; } - for (_l = 0, _len3 = t_int.length; _l < _len3; _l++) { - part = t_int[_l]; + for (_k = 0, _len2 = t_int.length; _k < _len2; _k++) { + part = t_int[_k]; if (part[0] === "TOKENS") { res += this._printLineNo(lineno, ind); interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); @@ -338,7 +332,7 @@ lineno += part[1].split("\n").length - 1; } else { lines = part[1].split("\n"); - for (i = _m = 0, _len4 = lines.length; _m < _len4; i = ++_m) { + for (i = _l = 0, _len3 = lines.length; _l < _len3; i = ++_l) { line = lines[i]; res += this._printLineNo(lineno, ind); lbreak = i !== lines.length - 1 ? "\n" : ""; @@ -359,6 +353,7 @@ c = obj[1]; res += "\n" + (this._reindent(c, indent_level, indent_baseline)); i_delta = this._getIndentationDelta(c, indent_baseline); + state_carry.last_coffee_ends_with_newline = this._doesEndWithNewline(c); break; default: throw "Bad parsing. " + obj + " not handled."; @@ -396,6 +391,16 @@ return res; }; + view.prototype._doesEndWithNewline = function(s) { + var parts; + parts = s.split("\n"); + if ((parts.length > 1) && parts[parts.length - 1].match(/^[\t ]*$/)) { + return true; + } else { + return false; + } + }; + view.prototype._escapeForStr = function(s) { /* escapes a string so it can make it into coffeescript diff --git a/package.json b/package.json index 6e25041..e65c379 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "An Express 3.x and 2.x templating language based on CoffeeScript with slicker tokens and syntax. Built with love at OkCupid.", - "version": "0.0.34", + "version": "0.0.35", "directories": { "lib": "./lib" }, diff --git a/src/toffee.jison b/src/toffee.jison index ca93769..e9d0f86 100644 --- a/src/toffee.jison +++ b/src/toffee.jison @@ -10,10 +10,9 @@ "{##" return 'START_TOFFEE_COMMENT'; "##}" return 'END_TOFFEE_COMMENT'; ":}" return 'END_TOFFEE'; -"{:" return 'START_INDENTED_TOFFEE'; +"{:" return 'START_TOFFEE'; "{#" return 'START_COFFEE'; "#}" return 'END_COFFEE'; -[\-][\t\r\n ]*"{:" return 'START_TOFFEE'; [^{}#\\:\-]+|[\\{}#:\-] return 'CODE'; <> return 'EOF'; @@ -31,17 +30,17 @@ starter toffee_zone : - toffee_code { $$ = [$1]; } + toffee_code { $$ = [$1]; } | - toffee_code flip_to_coffee toffee_zone { $$ = $3; $3.splice(0,0,$1,$2); } + toffee_code flip_to_coffee toffee_zone { $$ = $3; $3.splice(0,0,$1,$2); } | - flip_to_coffee toffee_zone { $$ = $2; $2.splice(0,0,$1); } + flip_to_coffee toffee_zone { $$ = $2; $2.splice(0,0,$1); } | toffee_code flip_to_toffee_comment toffee_zone { $$ = $3; $3.splice(0,0,$1); } | flip_to_toffee_comment toffee_zone { $$ = $2; } | - { $$ = []; } + { $$ = []; } ; flip_to_toffee_comment @@ -51,8 +50,6 @@ flip_to_toffee_comment toffee_commented_region : - toffee_commented_region START_INDENTED_TOFFEE - | toffee_commented_region START_COFFEE | toffee_commented_region END_COFFEE @@ -84,8 +81,6 @@ coffee_zone flip_to_toffee : START_TOFFEE toffee_zone END_TOFFEE { $$ = ["TOFFEE_ZONE", $2]; } - | - START_INDENTED_TOFFEE toffee_zone END_TOFFEE { $$ = ["INDENTED_TOFFEE_ZONE", $2]; } ; diff --git a/src/view.coffee b/src/view.coffee index ecb280a..38187b5 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -170,7 +170,7 @@ class view ### replaces tabs with spaces in their coffee regions ### - if obj[0] in ["INDENTED_TOFFEE_ZONE", "TOFFEE_ZONE", "COFFEE_ZONE"] + if obj[0] in ["TOFFEE_ZONE", "COFFEE_ZONE"] @_cleanTabs item for item in obj[1] else if obj[0] is "COFFEE" obj[1] = obj[1].replace /\t/g, @_tabAsSpaces() @@ -247,7 +247,7 @@ class view d = Date.now() res = @_coffeeHeaders() try - res += @_toCoffeeRecurse(tobj, TAB_SPACES, 0)[0] + res += @_toCoffeeRecurse(tobj, TAB_SPACES, 0, {})[0] res += @_coffeeFooters() @coffeeScript = res catch e @@ -283,7 +283,7 @@ class view return false - _toCoffeeRecurse: (obj, indent_level, indent_baseline) -> + _toCoffeeRecurse: (obj, indent_level, indent_baseline, state_carry) -> # returns [res, indent_baseline_delta] # indent_level = # of spaces to add to each coffeescript section # indent_baseline = # of chars to strip from each line inside {# #} @@ -291,22 +291,19 @@ class view res = "" i_delta = 0 switch obj[0] - when "INDENTED_TOFFEE_ZONE" - indent_level += TAB_SPACES - for item in obj[1] - [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline - res += s when "TOFFEE_ZONE" + if state_carry.last_coffee_ends_with_newline is false + indent_level += TAB_SPACES res += "\n#{@_space indent_level}_ts #{states.TOFFEE}" for item in obj[1] - [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline + [s, delta] = @_toCoffeeRecurse item, indent_level, indent_baseline, state_carry res += s when "COFFEE_ZONE" res += "\n#{@_space indent_level}_ts #{states.COFFEE}" zone_baseline = @_getZoneBaseline obj[1] temp_indent_level = indent_level for item in obj[1] - [s, delta] = @_toCoffeeRecurse item, temp_indent_level, zone_baseline + [s, delta] = @_toCoffeeRecurse item, temp_indent_level, zone_baseline, state_carry res += s temp_indent_level = indent_level + delta when "TOFFEE" @@ -346,6 +343,7 @@ class view c = obj[1] res += "\n#{@_reindent c, indent_level, indent_baseline}" i_delta = @_getIndentationDelta c, indent_baseline + state_carry.last_coffee_ends_with_newline = @_doesEndWithNewline c else throw "Bad parsing. #{obj} not handled." return ["",0] @@ -372,6 +370,13 @@ class view if follow.length then res += "+ \'#{follow}\'" res + _doesEndWithNewline: (s) -> + parts = s.split "\n" + if (parts.length > 1) and parts[parts.length - 1].match /^[\t ]*$/ + return true + else + return false + _escapeForStr: (s) -> ### escapes a string so it can make it into coffeescript diff --git a/test/cases/include_order/input.toffee b/test/cases/include_order/input.toffee index 663c0be..76d5abf 100644 --- a/test/cases/include_order/input.toffee +++ b/test/cases/include_order/input.toffee @@ -1,6 +1,6 @@ {# say_hi = -> - -{:hi:} + {:hi:} #}1 2 #{partial "child.toffee", say_hi: say_hi} diff --git a/test/cases/include_techniques/input.toffee b/test/cases/include_techniques/input.toffee index 61cb308..63b1a9b 100644 --- a/test/cases/include_techniques/input.toffee +++ b/test/cases/include_techniques/input.toffee @@ -2,6 +2,6 @@ #{partial "message.toffee", from: "Max & Sam"} {# print partial "message.toffee", from: "Christian" - -{:#{partial "message.toffee", from: "Jennie"}:} - print partial "message.toffee", sender: "The enemy" + {:#{ partial "message.toffee", from: "Jennie"}:} + print partial "message.toffee", sender: "The enemy" #} \ No newline at end of file diff --git a/test/cases/indent_attack/input.toffee b/test/cases/indent_attack/input.toffee index f63c1bc..d552e88 100644 --- a/test/cases/indent_attack/input.toffee +++ b/test/cases/indent_attack/input.toffee @@ -51,21 +51,52 @@ print 'Pass7' else print 'Fail' - {:Fail8:} - -{:Pass8:} + {:Fail8:} + {:Pass8:} #} {# - -{:...passed with flying colors.:} + {:...passed with flying colors.:} +#}{## +{# + if true and 10 is 10 + {: + Pass9 + :} + print "Pass10" + if 11 is 12 + print "Fail" + if 12 is 13 {: + Fail + :} + else + {: + Pass11 + :} + else if 11 is 12 + {: + Fail + :} #} +##}

    {# - x = 10 + x = 20 if x > 1 - for i in [0...x] - {:
    #{i}{# - if i is 3 {: (my favorite number) :} + for i in [12...x] + square = 16 + {:Pass#{i}{# + if i is square {:(a perfect square):} #}:} #} + {# + x = 20 + if x > 1 + for i in [12...x] + square = 16 + {:Pass#{i}{# + if i is square {:(a perfect square):} + #}:} + #}

    \ No newline at end of file diff --git a/test/cases/indent_attack/output.toffee b/test/cases/indent_attack/output.toffee index eb0dc63..5da2813 100644 --- a/test/cases/indent_attack/output.toffee +++ b/test/cases/indent_attack/output.toffee @@ -11,5 +11,6 @@ Pass7Pass8 ...passed with flying colors.

    -
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9 + Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19 + Pass20

    \ No newline at end of file diff --git a/test/cases/lambda_fns/input.toffee b/test/cases/lambda_fns/input.toffee index a3b4087..d827176 100644 --- a/test/cases/lambda_fns/input.toffee +++ b/test/cases/lambda_fns/input.toffee @@ -2,9 +2,9 @@ print_it = (msg) -> {:#{msg}:} print_it_twice = (msg) -> - -{:#{msg}:} + {:#{msg}:} m = msg - -{:#{m}:} + {:#{m}:} echo_it = (msg) -> v = msg diff --git a/test/cases/special_cases/input.toffee b/test/cases/special_cases/input.toffee index 429d51c..563d8a2 100644 --- a/test/cases/special_cases/input.toffee +++ b/test/cases/special_cases/input.toffee @@ -4,7 +4,7 @@ ##} {# - -{:"PASSED":} + {:"PASSED":} #} {## diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index cfb9c98..6901fee 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -174,6 +174,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); count = 0; for (i = _i = 0; _i < 2; i = ++_i) { + _ts(1); _ts(1); _ln(3); _to("" + (escape(count++))); @@ -1197,6 +1198,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { for (_i = 0, _len = _ref.length; _i < _len; _i++) { project = _ref[_i]; _ts(1); + _ts(1); _ln(8); _to("\n"); _ln(9); @@ -1214,6 +1216,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(2); } } else { + _ts(1); _ts(1); _ln(12); _to(" No projects "); @@ -2341,6 +2344,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(1); _ts(2); if (countdown === 0) { + _ts(1); _ts(1); _ln(2); _to("blastoff!"); @@ -2754,7 +2758,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { }; tmpl.pub = function(locals) { - var i, x, _i, _l, _ln, _t, _to, _ts; + var i, square, x, _i, _j, _l, _ln, _t, _to, _ts; _l = locals; _t = _l.__toffee = { out: [] @@ -2824,6 +2828,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (1 === 1) { if (2 === 2) { if (3 === 3) { + _ts(1); _ts(1); _ln(5); _to("Pass1"); @@ -2834,11 +2839,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (1 === 1) { if (2 === 3) { if (3 === 3) { + _ts(1); _ts(1); _ln(9); _to("Fail"); _ts(2); } else { + _ts(1); _ts(1); _ln(11); _to("Fail"); @@ -2847,6 +2854,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } else { if (2 === 2) { if (3 === 3) { + _ts(1); _ts(1); _ln(14); _to("Pass2"); @@ -2868,6 +2876,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (1 === 1) { if (2 === 2) { if (3 === 3) { + _ts(1); _ts(1); _ln(21); _to("Pass3"); @@ -2878,11 +2887,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (1 === 1) { if (2 === 3) { if (3 === 3) { + _ts(1); _ts(1); _ln(25); _to("Fail"); _ts(2); } else { + _ts(1); _ts(1); _ln(27); _to("Fail"); @@ -2891,6 +2902,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } else { if (2 === 2) { if (3 === 3) { + _ts(1); _ts(1); _ln(30); _to("Pass4"); @@ -2912,6 +2924,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (10 === 10) { if (20 === 20) { if (30 === 30) { + _ts(1); _ts(1); _ln(37); _to("Pass5"); @@ -2922,11 +2935,13 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { if (10 === 10) { if (20 === 30) { if (30 === 30) { + _ts(1); _ts(1); _ln(41); _to("Fail"); _ts(2); } else { + _ts(1); _ts(1); _ln(43); _to("Fail"); @@ -2935,6 +2950,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } else { if (20 === 20) { if (30 === 30) { + _ts(1); _ts(1); _ln(46); _to("Pass6"); @@ -2956,6 +2972,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { } else { print('Fail'); _ts(1); + _ts(1); _ln(54); _to("Fail8"); _ts(2); @@ -2979,35 +2996,65 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _to("...passed with flying colors."); _ts(2); _ts(1); - _ln(61); + _ln(82); _to("\n"); - _ln(62); + _ln(83); _to("

    \n"); - _ln(63); + _ln(84); _to(" "); _ts(2); _ts(2); - x = 10; + x = 20; if (x > 1) { - for (i = _i = 0; 0 <= x ? _i < x : _i > x; i = 0 <= x ? ++_i : --_i) { + for (i = _i = 12; 12 <= x ? _i < x : _i > x; i = 12 <= x ? ++_i : --_i) { + square = 16; _ts(1); - _ln(67); - _to("
    "); + _ts(1); + _ln(89); + _to("Pass"); _to("" + (i != null ? escape(i) : '')); _ts(2); _ts(2); - if (i === 3) { + if (i === square) { + _ts(1); _ts(1); - _ln(68); - _to(" (my favorite number) "); + _ln(90); + _to("(a perfect square)"); _ts(2); } } } _ts(1); - _ln(70); + _ln(92); _to("\n"); - _ln(71); + _ln(93); + _to(" "); + _ts(2); + _ts(2); + x = 20; + if (x > 1) { + for (i = _j = 12; 12 <= x ? _j < x : _j > x; i = 12 <= x ? ++_j : --_j) { + square = 16; + } + _ts(1); + _ts(1); + _ln(98); + _to("Pass"); + _to("" + (i != null ? escape(i) : '')); + _ts(2); + _ts(2); + if (i === square) { + _ts(1); + _ts(1); + _ln(99); + _to("(a perfect square)"); + _ts(2); + } + } + _ts(1); + _ln(101); + _to("\n"); + _ln(102); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3117,8 +3164,10 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ln(13); _to("

    \n"); _ln(14); - _to("
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9\n"); + _to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"); _ln(15); + _to(" Pass20\n"); + _ln(16); _to("

    "); _ts(2); __toffee.res = __toffee.out.join(""); @@ -3212,6 +3261,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { for (_i = 0, _len = supplies.length; _i < _len; _i++) { supply = supplies[_i]; _ts(1); + _ts(1); _to("
  • "); _to("" + (supply != null ? escape(supply) : '')); _to("
  • "); @@ -3390,6 +3440,7 @@ toffee.__inlineInclude = function(path, locals, parent_locals) { _ts(1); _ts(2); print_it = function(msg) { + _ts(1); _ts(1); _ln(2); _to("" + (msg != null ? escape(msg) : '')); diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index a68d0a1..cb75d1b 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -278,7 +278,8 @@ Pass7Pass8 ...passed with flying colors.

    -
    0
    1
    2
    3 (my favorite number)
    4
    5
    6
    7
    8
    9 + Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19 + Pass20

    '; - z = 'click&clack'; - w = [ - 1, 2, { - "place": "The Dreadfort" - } - ]; - _ts(1); - _ln(6); - _to("

    \n"); - _ln(7); - _to(" default x = "); - _to("" + (x != null ? escape(x) : '')); - _to("\n"); - _ln(8); - _to(" default y = "); - _to("" + (y != null ? escape(y) : '')); - _to("\n"); - _ln(9); - _to(" default z = "); - _to("" + (z != null ? escape(z) : '')); - _to("\n"); - _ln(10); - _to(" default w = "); - _to("" + (w != null ? escape(w) : '')); - _to("\n"); - _ln(11); - _to("

    \n"); - _ln(12); - _to("

    \n"); - _ln(13); - _to(" raw x = "); - _to("" + (raw(x))); - _to("\n"); - _ln(14); - _to(" raw y = "); - _to("" + (raw(y))); - _to("\n"); - _ln(15); - _to(" raw z = "); - _to("" + (raw(z))); - _to("\n"); - _ln(16); - _to(" raw w = "); - _to("" + (raw(w))); - _to("\n"); - _ln(17); - _to("

    \n"); - _ln(18); - _to("\n"); - _ln(24); - _to("

    \n"); - _ln(25); - _ts(2); - _ts(2); - print(" raw printed x = " + x + "\n"); - print(" raw printed y = " + y + "\n"); - print(" raw printed z = " + z + "\n"); - print(" raw printed w = " + w); - _ts(1); - _ln(30); - _to("\n"); - _ln(31); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/custom_escape/output.toffee"] = { - bundlePath: "/custom_escape/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("

    \n"); - _ln(2); - _to(" default x = [\"Hello world\"]\n"); - _ln(3); - _to(" default y = [

    ]\n"); - _ln(4); - _to(" default z = [click&clack]\n"); - _ln(5); - _to(" default w = [1,2,[object Object]]\n"); - _ln(6); - _to("

    \n"); - _ln(7); - _to("

    \n"); - _ln(8); - _to(" raw x = \"Hello world\"\n"); - _ln(9); - _to(" raw y =

    \n"); - _ln(10); - _to(" raw z = click&clack\n"); - _ln(11); - _to(" raw w = 1,2,[object Object]\n"); - _ln(12); - _to("

    \n"); - _ln(13); - _to("\n"); - _ln(19); - _to("

    \n"); - _ln(20); - _to(" raw printed x = \"Hello world\"\n"); - _ln(21); - _to(" raw printed y =

    \n"); - _ln(22); - _to(" raw printed z = click&clack\n"); - _ln(23); - _to(" raw printed w = 1,2,[object Object]\n"); - _ln(24); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/eco_compare/input.toffee"] = { - bundlePath: "/eco_compare/input.toffee" - }; - - tmpl.pub = function(__locals) { - var f, friends, project, _i, _len, _ln, _ref, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - this.projects = [ - { - url: "http://localhost:3000", - name: "okcupid", - description: "A site for singles" - }, { - url: "http://localhost:3001", - name: "tallygram", - description: "A site for anyone" - } - ]; - if (this.projects.length) { - _ref = this.projects; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - project = _ref[_i]; - _ts(1); - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _to(" "); - _to("" + (escape(project.name))); - _to("\n"); - _ln(10); - _to("

    "); - _to("" + (escape(project.description))); - _to("

    \n"); - _ln(11); - _to(" "); - _ts(2); - } - } else { - _ts(1); - _ts(1); - _ln(12); - _to(" No projects "); - _ts(2); - } - friends = [ - { - gender: "f", - name: "Jennie" - }, { - gender: "f", - name: "Rachel" - }, { - gender: "m", - name: "Petar" - }, { - gender: "f", - name: "Marissa" - } - ]; - _ts(1); - _ln(20); - _to("\n"); - _ln(21); - _to("\n"); - _ln(22); - _to("You have "); - _to("" + (escape(((function() { - var _j, _len1, _results; - _results = []; - for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { - f = friends[_j]; - if (f.gender === "f") _results.push(f); - } - return _results; - })()).length))); - _to(" female friends."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/eco_compare/output.toffee"] = { - bundlePath: "/eco_compare/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to(" okcupid\n"); - _ln(3); - _to("

    A site for singles

    \n"); - _ln(4); - _to(" \n"); - _ln(5); - _to(" tallygram\n"); - _ln(6); - _to("

    A site for anyone

    \n"); - _ln(7); - _to(" \n"); - _ln(8); - _to("\n"); - _ln(9); - _to("You have 3 female friends."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/escape/input.toffee"] = { - bundlePath: "/escape/input.toffee" - }; - - tmpl.pub = function(__locals) { - var w, x, y, z, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - x = '"Hello world"'; - y = '
    '; - z = 'click&clack'; - w = [ - 1, 2, { - "place": "The Dreadfort" - } - ]; - _ts(1); - _ln(6); - _to("

    \n"); - _ln(7); - _to(" default x = "); - _to("" + (x != null ? escape(x) : '')); - _to("\n"); - _ln(8); - _to(" default y = "); - _to("" + (y != null ? escape(y) : '')); - _to("\n"); - _ln(9); - _to(" default z = "); - _to("" + (z != null ? escape(z) : '')); - _to("\n"); - _ln(10); - _to(" default w = "); - _to("" + (w != null ? escape(w) : '')); - _to("\n"); - _ln(11); - _to(" default r = "); - _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); - _to("\n"); - _ln(12); - _to(" default w.foo = "); - _to("" + (escape(w.foo))); - _to("\n"); - _ln(13); - _to("

    \n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to(" raw x = "); - _to("" + (raw(x))); - _to("\n"); - _ln(16); - _to(" raw y = "); - _to("" + (raw(y))); - _to("\n"); - _ln(17); - _to(" raw z = "); - _to("" + (raw(z))); - _to("\n"); - _ln(18); - _to(" raw w = "); - _to("" + (raw(w))); - _to("\n"); - _ln(19); - _to("

    \n"); - _ln(20); - _to("\n"); - _ln(26); - _to("

    \n"); - _ln(27); - _ts(2); - _ts(2); - print(" raw printed x = " + x + "\n"); - print(" raw printed y = " + y + "\n"); - print(" raw printed z = " + z + "\n"); - print(" raw printed w = " + w); - _ts(1); - _ln(32); - _to("\n"); - _ln(33); - _to("

    \n"); - _ln(34); - _to("

    \n"); - _ln(35); - _ts(2); - _ts(2); - print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); - print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); - print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); - print(" json printed w = " + (raw(raw(raw(raw(json(w))))))); - _ts(1); - _ln(40); - _to("\n"); - _ln(41); - _to("

    \n"); - _ln(42); - _to("

    \n"); - _ln(43); - _ts(2); - _ts(2); - print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); - print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); - print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); - print(" html printed longhand w = " + (__toffee.html(w))); - _ts(1); - _ln(48); - _to("\n"); - _ln(49); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/escape/output.toffee"] = { - bundlePath: "/escape/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("

    \n"); - _ln(2); - _to(" default x = "Hello world"\n"); - _ln(3); - _to(" default y = <hr />\n"); - _ln(4); - _to(" default z = click&clack\n"); - _ln(5); - _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - _ln(6); - _to(" default r = \n"); - _ln(7); - _to(" default w.foo = \n"); - _ln(8); - _to("

    \n"); - _ln(9); - _to("

    \n"); - _ln(10); - _to(" raw x = \"Hello world\"\n"); - _ln(11); - _to(" raw y =


    \n"); - _ln(12); - _to(" raw z = click&clack\n"); - _ln(13); - _to(" raw w = 1,2,[object Object]\n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to("\n"); - _ln(21); - _to("

    \n"); - _ln(22); - _to(" raw printed x = \"Hello world\"\n"); - _ln(23); - _to(" raw printed y =


    \n"); - _ln(24); - _to(" raw printed z = click&clack\n"); - _ln(25); - _to(" raw printed w = 1,2,[object Object]\n"); - _ln(26); - _to("

    \n"); - _ln(27); - _to("

    \n"); - _ln(28); - _to(" json printed x = \"\\\"Hello world\\\"\"\n"); - _ln(29); - _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); - _ln(30); - _to(" json printed z = \"click\\u0026clack\"\n"); - _ln(31); - _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); - _ln(32); - _to("

    \n"); - _ln(33); - _to("

    \n"); - _ln(34); - _to(" html printed longhand x = "Hello world"\n"); - _ln(35); - _to(" html printed longhand y = <hr />\n"); - _ln(36); - _to(" html printed longhand z = click&clack\n"); - _ln(37); - _to(" html printed longhand w = 1,2,[object Object]\n"); - _ln(38); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/input.toffee"] = { - bundlePath: "/hello_world/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); - _to(", world."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/output.toffee"] = { - bundlePath: "/hello_world/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hello, world."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/hello_world/temp.toffee"] = { - bundlePath: "/hello_world/temp.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("a\n"); - _ln(2); - _to("b\n"); - _ln(3); - _to("c\n"); - _ln(4); - _to("" + (escape(passed_fn(100)))); - _to("\n"); - _ln(5); - _to("d\n"); - _ln(6); - _to("e\n"); - _ln(7); - _to("f"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/child.toffee"] = { - bundlePath: "/include_order/child.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("a\n"); - _ln(2); - _ts(2); - _ts(2); - say_hi(); - _ts(1); - _ln(4); - _to("\n"); - _ln(5); - _to("b"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/input.toffee"] = { - bundlePath: "/include_order/input.toffee" - }; - - tmpl.pub = function(__locals) { - var say_hi, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - say_hi = function() { - _ts(1); - _ts(1); - _ln(3); - _to("hi"); - return _ts(2); - }; - _ts(1); - _ln(4); - _to("1\n"); - _ln(5); - _to("2\n"); - _ln(6); - _to("" + (partial("child.toffee", { - say_hi: say_hi - }))); - _to("\n"); - _ln(7); - _to("3\n"); - _ln(8); - _to("4"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_order/output.toffee"] = { - bundlePath: "/include_order/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("1\n"); - _ln(2); - _to("2\n"); - _ln(3); - _to("hia\n"); - _ln(4); - _to("\n"); - _ln(5); - _to("b\n"); - _ln(6); - _to("3\n"); - _ln(7); - _to("4"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_recursion/input.toffee"] = { - bundlePath: "/include_recursion/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - if (countdown === 0) { - _ts(1); - _ts(1); - _ln(2); - _to("blastoff!"); - _ts(2); - } else { - print("" + countdown + "..." + (partial('input.toffee', { - countdown: countdown - 1 - }))); - } - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_recursion/output.toffee"] = { - bundlePath: "/include_recursion/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/input.toffee"] = { - bundlePath: "/include_techniques/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (partial("message.toffee", { - from: "Chris " - }))); - _to("\n"); - _ln(2); - _to("" + (partial("message.toffee", { - from: "Max & Sam" - }))); - _to("\n"); - _ln(3); - _ts(2); - _ts(2); - print(partial("message.toffee", { - from: "Christian" - })); - _ts(1); - _ts(1); - _ln(5); - _to("" + (partial("message.toffee", { - from: "Jennie" - }))); - _ts(2); - print(partial("message.toffee", { - sender: "The enemy" - })); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/message.toffee"] = { - bundlePath: "/include_techniques/message.toffee" - }; - - tmpl.pub = function(__locals) { - var from, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - from = from || "Unknown"; - _ts(1); - _ln(3); - _to("From: "); - _to("" + (from != null ? escape(from) : '')); - _to(" \n"); - _ln(4); - _to("Msg: Hello, world\n"); - _ln(5); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/include_techniques/output.toffee"] = { - bundlePath: "/include_techniques/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("From: Chris <ccoyne77@gmail> \n"); - _ln(2); - _to("Msg: Hello, world\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("From: Max & Sam \n"); - _ln(5); - _to("Msg: Hello, world\n"); - _ln(6); - _to("\n"); - _ln(7); - _to("From: Christian \n"); - _ln(8); - _to("Msg: Hello, world\n"); - _ln(9); - _to("From: Jennie \n"); - _ln(10); - _to("Msg: Hello, world\n"); - _ln(11); - _to("From: Unknown \n"); - _ln(12); - _to("Msg: Hello, world\n"); - _ln(13); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/indent_attack/input.toffee"] = { - bundlePath: "/indent_attack/input.toffee" - }; - - tmpl.pub = function(__locals) { - var i, square, x, _i, _j, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
    \n"); - _ln(2); - _to(" "); - _ts(2); - _ts(2); - if (1 === 1) { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(5); - _to("Pass1"); - _ts(2); - } - } - } - if (1 === 1) { - if (2 === 3) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(9); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ts(1); - _ln(11); - _to("Fail"); - _ts(2); - } - } else { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(14); - _to("Pass2"); - _ts(2); - } - } - } - } - _ts(1); - _ln(15); - _to("\n"); - _ln(16); - _to("
    \n"); - _ln(17); - _to("\n"); - _ln(18); - _ts(2); - _ts(2); - if (1 === 1) { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(21); - _to("Pass3"); - _ts(2); - } - } - } - if (1 === 1) { - if (2 === 3) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(25); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ts(1); - _ln(27); - _to("Fail"); - _ts(2); - } - } else { - if (2 === 2) { - if (3 === 3) { - _ts(1); - _ts(1); - _ln(30); - _to("Pass4"); - _ts(2); - } - } - } - } - _ts(1); - _ln(31); - _to("\n"); - _ln(32); - _to("
    \n"); - _ln(33); - _to("\n"); - _ln(34); - _ts(2); - _ts(2); - if (10 === 10) { - if (20 === 20) { - if (30 === 30) { - _ts(1); - _ts(1); - _ln(37); - _to("Pass5"); - _ts(2); - } - } - } - if (10 === 10) { - if (20 === 30) { - if (30 === 30) { - _ts(1); - _ts(1); - _ln(41); - _to("Fail"); - _ts(2); - } else { - _ts(1); - _ts(1); - _ln(43); - _to("Fail"); - _ts(2); - } - } else { - if (20 === 20) { - if (30 === 30) { - _ts(1); - _ts(1); - _ln(46); - _to("Pass6"); - _ts(2); - } - } - } - } - _ts(1); - _ln(47); - _to("\n"); - _ln(48); - _to("\n"); - _ln(49); - _ts(2); - _ts(2); - if (99 === 99) { - print('Pass7'); - } else { - print('Fail'); - _ts(1); - _ts(1); - _ln(54); - _to("Fail8"); - _ts(2); - } - _ts(1); - _ts(1); - _ln(55); - _to("Pass8"); - _ts(2); - _ts(1); - _ln(56); - _to("\n"); - _ln(57); - _to("\n"); - _ln(58); - _ts(2); - _ts(2); - _ts(1); - _ts(1); - _ln(60); - _to("...passed with flying colors."); - _ts(2); - _ts(1); - _ln(82); - _to("\n"); - _ln(83); - _to("

    \n"); - _ln(84); - _to(" "); - _ts(2); - _ts(2); - x = 20; - if (x > 1) { - for (i = _i = 12; 12 <= x ? _i < x : _i > x; i = 12 <= x ? ++_i : --_i) { - square = 16; - _ts(1); - _ts(1); - _ln(89); - _to("Pass"); - _to("" + (i != null ? escape(i) : '')); - _ts(2); - _ts(2); - if (i === square) { - _ts(1); - _ts(1); - _ln(90); - _to("(a perfect square)"); - _ts(2); - } - } - } - _ts(1); - _ln(92); - _to("\n"); - _ln(93); - _to(" "); - _ts(2); - _ts(2); - x = 20; - if (x > 1) { - for (i = _j = 12; 12 <= x ? _j < x : _j > x; i = 12 <= x ? ++_j : --_j) { - square = 16; - } - _ts(1); - _ts(1); - _ln(98); - _to("Pass"); - _to("" + (i != null ? escape(i) : '')); - _ts(2); - _ts(2); - if (i === square) { - _ts(1); - _ts(1); - _ln(99); - _to("(a perfect square)"); - _ts(2); - } - } - _ts(1); - _ln(101); - _to("\n"); - _ln(102); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/indent_attack/output.toffee"] = { - bundlePath: "/indent_attack/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
    \n"); - _ln(2); - _to(" Pass1Pass2\n"); - _ln(3); - _to("
    \n"); - _ln(4); - _to("\n"); - _ln(5); - _to("Pass3Pass4\n"); - _ln(6); - _to("
    \n"); - _ln(7); - _to("\n"); - _ln(8); - _to("Pass5Pass6\n"); - _ln(9); - _to("\n"); - _ln(10); - _to("Pass7Pass8\n"); - _ln(11); - _to("\n"); - _ln(12); - _to("...passed with flying colors.\n"); - _ln(13); - _to("

    \n"); - _ln(14); - _to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"); - _ln(15); - _to(" Pass20\n"); - _ln(16); - _to("

    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/junk/input.toffee"] = { - bundlePath: "/junk/input.toffee" - }; - - tmpl.pub = function(__locals) { - var supplies, supply, _i, _len, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - supplies = ["broom", "mop", "vacuum"]; - _ts(1); - _ln(3); - _to("
      \n"); - _ln(4); - _to(" "); - _ts(2); - _ts(2); - for (_i = 0, _len = supplies.length; _i < _len; _i++) { - supply = supplies[_i]; - _ts(1); - _ts(1); - _to("
    • "); - _to("" + (supply != null ? escape(supply) : '')); - _to("
    • "); - _ts(2); - } - _ts(1); - _to("\n"); - _ln(5); - _to("
    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/junk/output.toffee"] = { - bundlePath: "/junk/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("
      \n"); - _ln(2); - _to("
    • broom
    • mop
    • vacuum
    • \n"); - _ln(3); - _to("
    "); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/lambda_fns/input.toffee"] = { - bundlePath: "/lambda_fns/input.toffee" - }; - - tmpl.pub = function(__locals) { - var echo_it, print_it, print_it_twice, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - print_it = function(msg) { - _ts(1); - _ts(1); - _ln(2); - _to("" + (msg != null ? escape(msg) : '')); - return _ts(2); - }; - print_it_twice = function(msg) { - var m; - _ts(1); - _ts(1); - _ln(5); - _to("" + (msg != null ? escape(msg) : '')); - _ts(2); - m = msg; - _ts(1); - _ts(1); - _ln(7); - _to("" + (m != null ? escape(m) : '')); - return _ts(2); - }; - echo_it = function(msg) { - var v; - v = msg; - return v; - }; - print_it("Pass"); - print_it_twice("Pass"); - print(echo_it("Pass")); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/lambda_fns/output.toffee"] = { - bundlePath: "/lambda_fns/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("PassPassPassPass"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = { - bundlePath: "/multiline_interpolation/foo.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); - _to(" "); - _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = { - bundlePath: "/multiline_interpolation/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (escape("Hello, " + "world"))); - _ln(4); - _to("\n"); - _ln(5); - _to("
    \n"); - _ln(6); - _to("" + (partial("foo.toffee", { - a: "Goodbye" + ',', - b: "world" - }))); - _ln(10); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = { - bundlePath: "/multiline_interpolation/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hello, world\n"); - _ln(2); - _to("
    \n"); - _ln(3); - _to("Goodbye, world"); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/plaintext/input.toffee"] = { - bundlePath: "/plaintext/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hi there."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/plaintext/output.toffee"] = { - bundlePath: "/plaintext/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("Hi there."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = { - bundlePath: "/snippets/foo/bar/body.toffee" - }; - - tmpl.pub = function(__locals) { - var msg, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - msg = msg || "Unknown message"; - print(msg); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/foo/message.toffee"] = { - bundlePath: "/snippets/foo/message.toffee" - }; - - tmpl.pub = function(__locals) { - var from, msg, _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(2); - from = from || "Unknown sender"; - msg = msg || "Unknown message."; - print("From: " + from + "\n" + (snippet('./bar/body.toffee', { - msg: msg - }))); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/input.toffee"] = { - bundlePath: "/snippets/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("" + (partial("./foo/message.toffee"))); - _to("\n"); - _ln(2); - _to("" + (escape(snippet("./foo/message.toffee")))); - _to("\n"); - _ln(3); - _to("" + (partial("./foo/message.toffee", { - from: "Sam" - }))); - _to("\n"); - _ln(4); - _to("" + (escape(snippet("./foo/message.toffee", { - from: "Max" - })))); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/snippets/output.toffee"] = { - bundlePath: "/snippets/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("From: Preloaded sender\n"); - _ln(2); - _to("Preloaded message.\n"); - _ln(3); - _to("From: Unknown sender\n"); - _ln(4); - _to("Unknown message.\n"); - _ln(5); - _to("From: Sam\n"); - _ln(6); - _to("Preloaded message.\n"); - _ln(7); - _to("From: Max\n"); - _ln(8); - _to("Unknown message."); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/special_cases/input.toffee"] = { - bundlePath: "/special_cases/input.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(5); - _to("\n"); - _ln(6); - _ts(2); - _ts(2); - _ts(1); - _ts(1); - _ln(7); - _to('"' + "PASSED" + '"'); - _ts(2); - _ts(1); - _ln(8); - _to("\n"); - _ln(9); - _ts(2); - _ts(1); - _ln(13); - _to("\n"); - _ln(14); - _to("

    \n"); - _ln(15); - _to(" "); - _to("" + (print("" + 'click & clack' + ""))); - _to("\n"); - _ln(16); - _to("

    \n"); - _ln(17); - _ts(2); - _ts(1); - _ln(21); - _to("\n"); - _ln(22); - _to("A backslash is a \\\n"); - _ln(23); - _to(""); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); - -(function() { - var tmpl; - - tmpl = toffee.templates["/special_cases/output.toffee"] = { - bundlePath: "/special_cases/output.toffee" - }; - - tmpl.pub = function(__locals) { - var _ln, _to, _ts; - _to = function(x) { - return __locals.__toffee.out.push(x); - }; - _ln = function(x) { - return __locals.__toffee.lineno = x; - }; - _ts = function(x) { - return __locals.__toffee.state = x; - }; - toffee.__augmentLocals(__locals); - with (__locals) {; - - __toffee.out = []; - _ts(1); - _ts(1); - _ln(1); - _to("\n"); - _ln(2); - _to('"' + "PASSED\"\n"); - _ln(3); - _to("\n"); - _ln(4); - _to("

    \n"); - _ln(5); - _to(" click & clack\n"); - _ln(6); - _to("

    \n"); - _ln(7); - _to("\n"); - _ln(8); - _to("A backslash is a \\\n"); - _ln(9); - _to(""); - _ts(2); - __toffee.res = __toffee.out.join(""); - return __toffee.res; - return } /* closing JS 'with' */ ; - }; - - if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { - return tmpl.pub(__toffee_run_input); - } - -}).call(this); +var toffee;if(!(typeof toffee!=="undefined"&&toffee!==null))toffee={};if(!toffee.templates)toffee.templates={};toffee.states={TOFFEE:1,COFFEE:2};toffee.__json=function(locals,o){if(!(o!=null)){return"null"}else{return""+JSON.stringify(o).replace(//g,"\\u003E").replace(/&/g,"\\u0026")}};toffee.__raw=function(locals,o){return o};toffee.__html=function(locals,o){return(""+o).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};toffee.__escape=function(locals,o){if(!(locals.__toffee.autoEscape!=null)||locals.__toffee.autoEscape){if(o===void 0)return"";if(o!=null&&typeof o==="object")return locals.json(o);return locals.html(o)}return o};toffee.__augmentLocals=function(locals,bundle_path){var _l,_t;_l=locals;_t=_l.__toffee={out:[]};if(!(_l.print!=null)){_l.print=function(o){return toffee.__print(_l,o)}}if(!(_l.json!=null)){_l.json=function(o){return toffee.__json(_l,o)}}if(!(_l.raw!=null)){_l.raw=function(o){return toffee.__raw(_l,o)}}if(!(_l.html!=null)){_l.html=function(o){return toffee.__html(_l,o)}}if(!(_l.escape!=null)){_l.escape=function(o){return toffee.__escape(_l,o)}}if(!(_l.partial!=null)){_l.partial=function(path,vars){return toffee.__partial(toffee.templates[""+bundle_path],_l,path,vars)}}if(!(_l.snippet!=null)){_l.snippet=function(path,vars){return toffee.__snippet(toffee.templates[""+bundle_path],_l,path,vars)}}_t.print=_l.print;_t.json=_l.json;_t.raw=_l.raw;_t.html=_l.html;_t.escape=_l.escape;_t.partial=_l.partial;return _t.snippet=_l.snippet};toffee.__print=function(locals,o){if(locals.__toffee.state===toffee.states.COFFEE){locals.__toffee.out.push(o);return""}else{return""+o}};toffee.__normalize=function(path){var np,part,parts,_i,_len;if(!(path!=null)||path==="/"){return path}else{parts=path.split("/");np=[];if(parts[0])np.push("");for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(part===".."){if(np.length>1){np.pop()}else{np.push(part)}}else{if(part!==".")np.push(part)}}path=np.join("/");if(!path)path="/";return path}};toffee.__partial=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__snippet=function(parent_tmpl,parent_locals,path,vars){path=toffee.__normalize(parent_tmpl.bundlePath+"/../"+path);vars=vars!=null?vars:{};vars.__toffee=vars.__toffee||{};vars.__toffee.noInheritance=true;return toffee.__inlineInclude(path,vars,parent_locals)};toffee.__inlineInclude=function(path,locals,parent_locals){var k,options,v;options=locals||{};options.__toffee=options.__toffee||{};if(!options.__toffee.noInheritance){for(k in parent_locals){v=parent_locals[k];if(!((locals!=null?locals[k]:void 0)!=null)){if(!(k==="print"||k==="partial"||k==="snippet"||k==="layout"||k==="__toffee")){options[k]=v}}}}if(!toffee.templates[path]){return"Inline toffee include: Could not find "+path}else{return toffee.templates[path].pub(options)}} +; + +; +(function(){var tmpl;tmpl=toffee.templates["/big_file/input.toffee"]={bundlePath:"/big_file/input.toffee"};tmpl.pub=function(__locals){var count,i,_i,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);count=0;for(i=_i=0;_i<2;i=++_i){_ts(1);_ts(1);_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...");_ts(1);_to(" ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("... ");_to(""+escape(count++));_to("...");_ts(2);_ts(2);count+=1;print(" "+count+"...")}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/big_file/output.toffee"]={bundlePath:"/big_file/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/big_file/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/comments/input.toffee"]={bundlePath:"/comments/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/comments/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to("Pass 1\n");_ts(2);_ts(1);_to("\n");_to("Pass 2\n");_ts(2);_ts(2);_ts(1);_to("\n");_to("Pass 3");_ts(2);_ts(1);_to("\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/comments/output.toffee"]={bundlePath:"/comments/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/comments/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to("Pass 1\n");_to("\n");_to("Pass 2\n");_to("\n");_to("Pass 3\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"};tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/custom_escape/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);x='"Hello world"';y="
    ";z="click&clack";w=[1,2,{place:"The Dreadfort"}];_ts(1);_to("

    \n");_to(" default x = ");_to(""+(x!=null?escape(x):""));_to("\n");_to(" default y = ");_to(""+(y!=null?escape(y):""));_to("\n");_to(" default z = ");_to(""+(z!=null?escape(z):""));_to("\n");_to(" default w = ");_to(""+(w!=null?escape(w):""));_to("\n");_to("

    \n");_to("

    \n");_to(" raw x = ");_to(""+raw(x));_to("\n");_to(" raw y = ");_to(""+raw(y));_to("\n");_to(" raw z = ");_to(""+raw(z));_to("\n");_to(" raw w = ");_to(""+raw(w));_to("\n");_to("

    \n");_to("\n");_to("

    \n");_ts(2);_ts(2);print(" raw printed x = "+x+"\n");print(" raw printed y = "+y+"\n");print(" raw printed z = "+z+"\n");print(" raw printed w = "+w);_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/custom_escape/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("

    \n");_to(' default x = ["Hello world"]\n');_to(" default y = [

    ]\n");_to(" default z = [click&clack]\n");_to(" default w = [1,2,[object Object]]\n");_to("

    \n");_to("

    \n");_to(' raw x = "Hello world"\n');_to(" raw y =

    \n");_to(" raw z = click&clack\n");_to(" raw w = 1,2,[object Object]\n");_to("

    \n");_to("\n");_to("

    \n");_to(' raw printed x = "Hello world"\n');_to(" raw printed y =

    \n");_to(" raw printed z = click&clack\n");_to(" raw printed w = 1,2,[object Object]\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"};tmpl.pub=function(__locals){var f,friends,project,_i,_len,_ln,_ref,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/eco_compare/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}];if(this.projects.length){_ref=this.projects;for(_i=0,_len=_ref.length;_i<_len;_i++){project=_ref[_i];_ts(1);_ts(1);_to("\n");_to(" ");_to(""+escape(project.name));_to("\n");_to("

    ");_to(""+escape(project.description));_to("

    \n");_to(" ");_ts(2)}}else{_ts(1);_ts(1);_to(" No projects ");_ts(2)}friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}];_ts(1);_to("\n");_to("\n");_to("You have ");_to(""+escape(function(){var _j,_len1,_results;_results=[];for(_j=0,_len1=friends.length;_j<_len1;_j++){f=friends[_j];if(f.gender==="f")_results.push(f)}return _results}().length));_to(" female friends.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/eco_compare/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to(' okcupid\n');_to("

    A site for singles

    \n");_to(" \n");_to(' tallygram\n');_to("

    A site for anyone

    \n");_to(" \n");_to("\n");_to("You have 3 female friends.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"};tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/escape/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);x='"Hello world"';y="
    ";z="click&clack";w=[1,2,{place:"The Dreadfort"}];_ts(1);_to("

    \n");_to(" default x = ");_to(""+(x!=null?escape(x):""));_to("\n");_to(" default y = ");_to(""+(y!=null?escape(y):""));_to("\n");_to(" default z = ");_to(""+(z!=null?escape(z):""));_to("\n");_to(" default w = ");_to(""+(w!=null?escape(w):""));_to("\n");_to(" default r = ");_to(""+(typeof r!=="undefined"&&r!==null?escape(r):""));_to("\n");_to(" default w.foo = ");_to(""+escape(w.foo));_to("\n");_to("

    \n");_to("

    \n");_to(" raw x = ");_to(""+raw(x));_to("\n");_to(" raw y = ");_to(""+raw(y));_to("\n");_to(" raw z = ");_to(""+raw(z));_to("\n");_to(" raw w = ");_to(""+raw(w));_to("\n");_to("

    \n");_to("\n");_to("

    \n");_ts(2);_ts(2);print(" raw printed x = "+x+"\n");print(" raw printed y = "+y+"\n");print(" raw printed z = "+z+"\n");print(" raw printed w = "+w);_ts(1);_to("\n");_to("

    \n");_to("

    \n");_ts(2);_ts(2);print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n");print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n");print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n");print(" json printed w = "+raw(raw(raw(raw(json(w))))));_ts(1);_to("\n");_to("

    \n");_to("

    \n");_ts(2);_ts(2);print(" html printed longhand x = "+__toffee.html(x)+"\n");print(" html printed longhand y = "+__toffee.html(y)+"\n");print(" html printed longhand z = "+__toffee.html(z)+"\n");print(" html printed longhand w = "+__toffee.html(w));_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/escape/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("

    \n");_to(" default x = "Hello world"\n");_to(" default y = <hr />\n");_to(" default z = click&clack\n");_to(' default w = [1,2,{"place":"The Dreadfort"}]\n');_to(" default r = \n");_to(" default w.foo = \n");_to("

    \n");_to("

    \n");_to(' raw x = "Hello world"\n');_to(" raw y =


    \n");_to(" raw z = click&clack\n");_to(" raw w = 1,2,[object Object]\n");_to("

    \n");_to("\n");_to("

    \n");_to(' raw printed x = "Hello world"\n');_to(" raw printed y =


    \n");_to(" raw printed z = click&clack\n");_to(" raw printed w = 1,2,[object Object]\n");_to("

    \n");_to("

    \n");_to(' json printed x = "\\"Hello world\\""\n');_to(' json printed y = "\\u003Chr /\\u003E"\n');_to(' json printed z = "click\\u0026clack"\n');_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n');_to("

    \n");_to("

    \n");_to(" html printed longhand x = "Hello world"\n");_to(" html printed longhand y = <hr />\n");_to(" html printed longhand z = click&clack\n");_to(" html printed longhand w = 1,2,[object Object]\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+(typeof greeting!=="undefined"&&greeting!==null?escape(greeting):""));_to(", world.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hello, world.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/temp.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("a\n");_to("b\n");_to("c\n");_to(""+escape(passed_fn(100)));_to("\n");_to("d\n");_to("e\n");_to("f");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/child.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("a\n");_ts(2);_ts(2);say_hi();_ts(1);_to("\n");_to("b");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"};tmpl.pub=function(__locals){var say_hi,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);say_hi=function(){_ts(1);_ts(1);_to("hi");return _ts(2)};_ts(1);_to("1\n");_to("2\n");_to(""+partial("child.toffee",{say_hi:say_hi}));_to("\n");_to("3\n");_to("4");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("1\n");_to("2\n");_to("hia\n");_to("\n");_to("b\n");_to("3\n");_to("4");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_recursion/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);if(countdown===0){_ts(1);_ts(1);_to("blastoff!");_ts(2)}else{print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1}))}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_recursion/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("10...9...8...7...6...5...4...3...2...1...blastoff!");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+partial("message.toffee",{from:"Chris "}));_to("\n");_to(""+partial("message.toffee",{from:"Max & Sam"}));_to("\n");_ts(2);_ts(2);print(partial("message.toffee",{from:"Christian"}));_ts(1);_ts(1);_to(""+partial("message.toffee",{from:"Jennie"}));_ts(2);print(partial("message.toffee",{sender:"The enemy"}));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"};tmpl.pub=function(__locals){var from,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/message.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);from=from||"Unknown";_ts(1);_to("From: ");_to(""+(from!=null?escape(from):""));_to(" \n");_to("Msg: Hello, world\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("From: Chris <ccoyne77@gmail> \n");_to("Msg: Hello, world\n");_to("\n");_to("From: Max & Sam \n");_to("Msg: Hello, world\n");_to("\n");_to("From: Christian \n");_to("Msg: Hello, world\n");_to("From: Jennie \n");_to("Msg: Hello, world\n");_to("From: Unknown \n");_to("Msg: Hello, world\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"};tmpl.pub=function(__locals){var i,square,x,_i,_j,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/indent_attack/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
    \n");_to(" ");_ts(2);_ts(2);if(1===1){if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass1");_ts(2)}}}if(1===1){if(2===3){if(3===3){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass2");_ts(2)}}}}_ts(1);_to("\n");_to("
    \n");_to("\n");_ts(2);_ts(2);if(1===1){if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass3");_ts(2)}}}if(1===1){if(2===3){if(3===3){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass4");_ts(2)}}}}_ts(1);_to("\n");_to("
    \n");_to("\n");_ts(2);_ts(2);if(10===10){if(20===20){if(30===30){_ts(1);_ts(1);_to("Pass5");_ts(2)}}}if(10===10){if(20===30){if(30===30){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(20===20){if(30===30){_ts(1);_ts(1);_to("Pass6");_ts(2)}}}}_ts(1);_to("\n");_to("\n");_ts(2);_ts(2);if(99===99){print("Pass7")}else{print("Fail");_ts(1);_ts(1);_to("Fail8");_ts(2)}_ts(1);_ts(1);_to("Pass8");_ts(2);_ts(1);_to("\n");_to("\n");_ts(2);_ts(2);_ts(1);_ts(1);_to("...passed with flying colors.");_ts(2);_ts(1);_to("\n");_to("

    \n");_to(" ");_ts(2);_ts(2);x=20;if(x>1){for(i=_i=12;12<=x?_ix;i=12<=x?++_i:--_i){square=16;_ts(1);_ts(1);_to("Pass");_to(""+(i!=null?escape(i):""));_ts(2);_ts(2);if(i===square){_ts(1);_ts(1);_to("(a perfect square)");_ts(2)}}}_ts(1);_to("\n");_to(" ");_ts(2);_ts(2);x=20;if(x>1){for(i=_j=12;12<=x?_jx;i=12<=x?++_j:--_j){square=16}_ts(1);_ts(1);_to("Pass");_to(""+(i!=null?escape(i):""));_ts(2);_ts(2);if(i===square){_ts(1);_ts(1);_to("(a perfect square)");_ts(2)}}_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/indent_attack/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
    \n");_to(" Pass1Pass2\n");_to("
    \n");_to("\n");_to("Pass3Pass4\n");_to("
    \n");_to("\n");_to("Pass5Pass6\n");_to("\n");_to("Pass7Pass8\n");_to("\n");_to("...passed with flying colors.\n");_to("

    \n");_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n");_to(" Pass20\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"};tmpl.pub=function(__locals){var supplies,supply,_i,_len,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/junk/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);supplies=["broom","mop","vacuum"];_ts(1);_to("
      \n");_to(" ");_ts(2);_ts(2);for(_i=0,_len=supplies.length;_i<_len;_i++){supply=supplies[_i];_ts(1);_ts(1);_to("
    • ");_to(""+(supply!=null?escape(supply):""));_to("
    • ");_ts(2)}_ts(1);_to("\n");_to("
    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/junk/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
      \n");_to("
    • broom
    • mop
    • vacuum
    • \n");_to("
    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"};tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);print_it=function(msg){_ts(1);_ts(1);_to(""+(msg!=null?escape(msg):""));return _ts(2)};print_it_twice=function(msg){var m;_ts(1);_ts(1);_to(""+(msg!=null?escape(msg):""));_ts(2);m=msg;_ts(1);_ts(1);_to(""+(m!=null?escape(m):""));return _ts(2)};echo_it=function(msg){var v;v=msg;return v};print_it("Pass");print_it_twice("Pass");print(echo_it("Pass"));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("PassPassPassPass");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+(typeof a!=="undefined"&&a!==null?escape(a):""));_to(" ");_to(""+(typeof b!=="undefined"&&b!==null?escape(b):""));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+escape("Hello, "+"world"));_to("\n");_to("
    \n");_to(""+partial("foo.toffee",{a:"Goodbye"+",",b:"world"}));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hello, world\n");_to("
    \n");_to("Goodbye, world");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/plaintext/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hi there.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/plaintext/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hi there.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"};tmpl.pub=function(__locals){var msg,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/foo/bar/body.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);msg=msg||"Unknown message";print(msg);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"};tmpl.pub=function(__locals){var from,msg,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/foo/message.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);from=from||"Unknown sender";msg=msg||"Unknown message.";print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg}));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+partial("./foo/message.toffee"));_to("\n");_to(""+escape(snippet("./foo/message.toffee")));_to("\n");_to(""+partial("./foo/message.toffee",{from:"Sam"}));_to("\n");_to(""+escape(snippet("./foo/message.toffee",{from:"Max"})));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("From: Preloaded sender\n");_to("Preloaded message.\n");_to("From: Unknown sender\n");_to("Unknown message.\n");_to("From: Sam\n");_to("Preloaded message.\n");_to("From: Max\n");_to("Unknown message.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/special_cases/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_ts(2);_ts(2);_ts(1);_ts(1);_to('"'+"PASSED"+'"');_ts(2);_ts(1);_to("\n");_ts(2);_ts(1);_to("\n");_to("

    \n");_to(" ");_to(""+print(""+"click & clack"+""));_to("\n");_to("

    \n");_ts(2);_ts(1);_to("\n");_to("A backslash is a \\\n");_to("");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +; +(function(){var tmpl;tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/special_cases/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to('"'+'PASSED"\n');_to("\n");_to("

    \n");_to(" click & clack\n");_to("

    \n");_to("\n");_to("A backslash is a \\\n");_to("");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) \ No newline at end of file diff --git a/test/run_cases.coffee b/test/run_cases.coffee index 9b6a520..102b704 100644 --- a/test/run_cases.coffee +++ b/test/run_cases.coffee @@ -2,12 +2,20 @@ fs = require 'fs' path = require 'path' -e = new engine({ +regular_engine = new engine({ verbose: false prettyPrintErrors: false }) -run_case_dir = (dir, cb) -> +minimized_engine = new engine({ + verbose: false + prettyPrintErrors: false + minimize: true +}) + +# --------------------------------------------------------------- + +run_case_dir = (eng, dir, cb) -> expected = fs.readFileSync "#{dir}/output.toffee", "utf8" if path.existsSync "#{dir}/vars.js" vars = fs.readFileSync "#{dir}/vars.js", "utf8" @@ -15,7 +23,7 @@ run_case_dir = (dir, cb) -> else vars = {} d = Date.now() - e.run "#{dir}/input.toffee", vars, (err, res) -> + eng.run "#{dir}/input.toffee", vars, (err, res) -> time_ms = Date.now() - d if err cb err, time_ms @@ -27,12 +35,12 @@ run_case_dir = (dir, cb) -> else cb null, time_ms -run_all_case_dirs = (cb) -> +run_all_case_dirs = (eng, cb) -> time_ms = 0 case_dirs = fs.readdirSync "#{__dirname}/cases/" countdown = case_dirs.length for dir in case_dirs - run_case_dir "#{__dirname}/cases/#{dir}", (err, ms) -> + run_case_dir eng, "#{__dirname}/cases/#{dir}", (err, ms) -> countdown-- time_ms += ms if err @@ -41,20 +49,27 @@ run_all_case_dirs = (cb) -> if countdown is 0 cb null, time_ms, case_dirs.length -run_all_case_dirs (err, time, tests_run) -> - - console.log "SUCCESS for #{tests_run} cold tests in #{time}ms" - +run_multiple_runs = (eng, num_runs, cb) -> times = [] - speed_runs = 20 - countdown = speed_runs + countdown = num_runs total_time = 0 total_tests = 0 - for i in [0...speed_runs] - run_all_case_dirs (err, time, tests_run) -> + for i in [0...num_runs] + run_all_case_dirs regular_engine, (err, time, tests_run) -> countdown-- total_time += time total_tests += tests_run if countdown is 0 - console.log "SUCCESS for #{total_tests} hot tests in #{total_time}ms. #{total_time / total_tests}ms/test" - process.exit 0 \ No newline at end of file + cb null, total_time, total_tests + +# ---------------------------------------------------------------- + +run_all_case_dirs regular_engine, (err, time, tests_run) -> + console.log "Regular Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + run_multiple_runs regular_engine, 30, (err, time, tests_run) -> + console.log "Regular Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + run_all_case_dirs minimized_engine, (err, time, tests_run) -> + console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + run_multiple_runs minimized_engine, 30, (err, time, tests_run) -> + console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" + process.exit 0 \ No newline at end of file From 192ee279fc9f45377ca580d90dd9845f67dac714 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Thu, 16 Aug 2012 17:00:44 -0400 Subject: [PATCH 059/163] uglifyJS support for minimized output for browsers --- Cakefile | 15 +- lib/command_line.js | 2 +- src/command_line.coffee | 2 +- .../express3/public/javascripts/test_cases.js | 1 - test/express3/views/index.toffee | 267 ++++++++++++------ 5 files changed, 199 insertions(+), 88 deletions(-) diff --git a/Cakefile b/Cakefile index 185591a..8e9d3c5 100644 --- a/Cakefile +++ b/Cakefile @@ -82,16 +82,23 @@ generateExpressTest = (cb) -> \n\n\n
    #{dir}\#{partial '../../cases/#{dir}/input.toffee', #{vars}}#{expected_output} #{expected_output}\#{partial '../../cases/#{dir}/input.toffee', #{vars}}
    big_file#{partial '../../cases/big_file/input.toffee', {}}0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324... 0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324...#{partial '../../cases/big_file/input.toffee', {}}
    comments#{partial '../../cases/comments/input.toffee', { - "greeting": "Hello" -}} + Pass 1 Pass 2 @@ -47,14 +50,25 @@ Pass 2 Pass 3 #{partial '../../cases/comments/input.toffee', { + "greeting": "Hello" +}}
    eco_compare#{partial '../../cases/eco_compare/input.toffee', {}} + okcupid

    A site for singles

    @@ -77,12 +89,21 @@ Pass 3 You have 3 female friends.
    #{partial '../../cases/eco_compare/input.toffee', {}}
    escape#{partial '../../cases/escape/input.toffee', {}}

    +

    default x = "Hello world" default y = <hr /> default z = click&clack @@ -134,12 +153,21 @@ You have 3 female friends.

    #{partial '../../cases/escape/input.toffee', {}}
    hello_world#{partial '../../cases/hello_world/input.toffee', { + Hello, world.#{partial '../../cases/hello_world/input.toffee', { "greeting": "Hello" }} Hello, world.
    include_order#{partial '../../cases/include_order/input.toffee', { - "greeting": "Hello" -}}1 + 1 2 hia @@ -186,14 +217,25 @@ b 3 4 #{partial '../../cases/include_order/input.toffee', { + "greeting": "Hello" +}}
    include_recursion#{partial '../../cases/include_recursion/input.toffee', { + 10...9...8...7...6...5...4...3...2...1...blastoff!#{partial '../../cases/include_recursion/input.toffee', { "countdown" : 10 }} 10...9...8...7...6...5...4...3...2...1...blastoff!
    include_techniques#{partial '../../cases/include_techniques/input.toffee', { -}}From: Chris <ccoyne77@gmail> + From: Chris <ccoyne77@gmail> Msg: Hello, world From: Max & Sam @@ -245,13 +291,23 @@ From: Unknown Msg: Hello, world #{partial '../../cases/include_techniques/input.toffee', { +}}
    indent_attack#{partial '../../cases/indent_attack/input.toffee', { -}}
    +

    Pass1Pass2
    @@ -282,13 +335,23 @@ Pass7Pass8 Pass20

    #{partial '../../cases/indent_attack/input.toffee', { +}}
    junk#{partial '../../cases/junk/input.toffee', {}}
      +
    • broom
    • mop
    • vacuum
    #{partial '../../cases/junk/input.toffee', {}}
    lambda_fns#{partial '../../cases/lambda_fns/input.toffee', {}}PassPassPassPass PassPassPassPass#{partial '../../cases/lambda_fns/input.toffee', {}}
    multiline_interpolation#{partial '../../cases/multiline_interpolation/input.toffee', {}}Hello, world + Hello, world
    Goodbye, world
    #{partial '../../cases/multiline_interpolation/input.toffee', {}}
    plaintext#{partial '../../cases/plaintext/input.toffee', {}}Hi there. Hi there.#{partial '../../cases/plaintext/input.toffee', {}}
    snippets#{partial '../../cases/snippets/input.toffee', { - "from": "Preloaded sender", - "msg" : "Preloaded message." -}}From: Preloaded sender + From: Preloaded sender Preloaded message. From: Unknown sender Unknown message. @@ -397,15 +483,27 @@ Preloaded message. From: Max Unknown message. #{partial '../../cases/snippets/input.toffee', { + "from": "Preloaded sender", + "msg" : "Preloaded message." +}}
    special_cases#{partial '../../cases/special_cases/input.toffee', {}} + "PASSED"

    @@ -430,12 +526,21 @@ A backslash is a \ var passed = "\"passed\"";

    #{partial '../../cases/special_cases/input.toffee', {}}
    ";z="click&clack";w=[1,2,{place:"The Dreadfort"}];_ts(1);_to("

    \n");_to(" default x = ");_to(""+(x!=null?escape(x):""));_to("\n");_to(" default y = ");_to(""+(y!=null?escape(y):""));_to("\n");_to(" default z = ");_to(""+(z!=null?escape(z):""));_to("\n");_to(" default w = ");_to(""+(w!=null?escape(w):""));_to("\n");_to("

    \n");_to("

    \n");_to(" raw x = ");_to(""+raw(x));_to("\n");_to(" raw y = ");_to(""+raw(y));_to("\n");_to(" raw z = ");_to(""+raw(z));_to("\n");_to(" raw w = ");_to(""+raw(w));_to("\n");_to("

    \n");_to("\n");_to("

    \n");_ts(2);_ts(2);print(" raw printed x = "+x+"\n");print(" raw printed y = "+y+"\n");print(" raw printed z = "+z+"\n");print(" raw printed w = "+w);_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/custom_escape/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("

    \n");_to(' default x = ["Hello world"]\n');_to(" default y = [

    ]\n");_to(" default z = [click&clack]\n");_to(" default w = [1,2,[object Object]]\n");_to("

    \n");_to("

    \n");_to(' raw x = "Hello world"\n');_to(" raw y =

    \n");_to(" raw z = click&clack\n");_to(" raw w = 1,2,[object Object]\n");_to("

    \n");_to("\n");_to("

    \n");_to(' raw printed x = "Hello world"\n');_to(" raw printed y =

    \n");_to(" raw printed z = click&clack\n");_to(" raw printed w = 1,2,[object Object]\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(' default x = ["Hello world"]\n'),_to(" default y = [

    ]\n"),_to(" default z = [click&clack]\n"),_to(" default w = [1,2,[object Object]]\n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =

    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =

    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"};tmpl.pub=function(__locals){var f,friends,project,_i,_len,_ln,_ref,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/eco_compare/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}];if(this.projects.length){_ref=this.projects;for(_i=0,_len=_ref.length;_i<_len;_i++){project=_ref[_i];_ts(1);_ts(1);_to("\n");_to(" ");_to(""+escape(project.name));_to("\n");_to("

    ");_to(""+escape(project.description));_to("

    \n");_to(" ");_ts(2)}}else{_ts(1);_ts(1);_to(" No projects ");_ts(2)}friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}];_ts(1);_to("\n");_to("\n");_to("You have ");_to(""+escape(function(){var _j,_len1,_results;_results=[];for(_j=0,_len1=friends.length;_j<_len1;_j++){f=friends[_j];if(f.gender==="f")_results.push(f)}return _results}().length));_to(" female friends.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.pub=function(__locals){var f,friends,project,_i,_len,_ln,_ref,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/input.toffee");with(__locals){__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}];if(this.projects.length){_ref=this.projects;for(_i=0,_len=_ref.length;_i<_len;_i++)project=_ref[_i],_ts(1),_ts(1),_to("\n"),_to(' '),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2)}else _ts(1),_ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var e,t,n;n=[];for(e=0,t=friends.length;eokcupid\n');_to("

    A site for singles

    \n");_to(" \n");_to(' tallygram\n');_to("

    A site for anyone

    \n");_to(" \n");_to("\n");_to("You have 3 female friends.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"};tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/escape/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);x='"Hello world"';y="
    ";z="click&clack";w=[1,2,{place:"The Dreadfort"}];_ts(1);_to("

    \n");_to(" default x = ");_to(""+(x!=null?escape(x):""));_to("\n");_to(" default y = ");_to(""+(y!=null?escape(y):""));_to("\n");_to(" default z = ");_to(""+(z!=null?escape(z):""));_to("\n");_to(" default w = ");_to(""+(w!=null?escape(w):""));_to("\n");_to(" default r = ");_to(""+(typeof r!=="undefined"&&r!==null?escape(r):""));_to("\n");_to(" default w.foo = ");_to(""+escape(w.foo));_to("\n");_to("

    \n");_to("

    \n");_to(" raw x = ");_to(""+raw(x));_to("\n");_to(" raw y = ");_to(""+raw(y));_to("\n");_to(" raw z = ");_to(""+raw(z));_to("\n");_to(" raw w = ");_to(""+raw(w));_to("\n");_to("

    \n");_to("\n");_to("

    \n");_ts(2);_ts(2);print(" raw printed x = "+x+"\n");print(" raw printed y = "+y+"\n");print(" raw printed z = "+z+"\n");print(" raw printed w = "+w);_ts(1);_to("\n");_to("

    \n");_to("

    \n");_ts(2);_ts(2);print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n");print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n");print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n");print(" json printed w = "+raw(raw(raw(raw(json(w))))));_ts(1);_to("\n");_to("

    \n");_to("

    \n");_ts(2);_ts(2);print(" html printed longhand x = "+__toffee.html(x)+"\n");print(" html printed longhand y = "+__toffee.html(y)+"\n");print(" html printed longhand z = "+__toffee.html(z)+"\n");print(" html printed longhand w = "+__toffee.html(w));_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.pub=function(__locals){var w,x,y,z,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/escape/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(x!=null?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(y!=null?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(z!=null?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(w!=null?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+(typeof r!="undefined"&&r!==null?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/escape/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("

    \n");_to(" default x = "Hello world"\n");_to(" default y = <hr />\n");_to(" default z = click&clack\n");_to(' default w = [1,2,{"place":"The Dreadfort"}]\n');_to(" default r = \n");_to(" default w.foo = \n");_to("

    \n");_to("

    \n");_to(' raw x = "Hello world"\n');_to(" raw y =


    \n");_to(" raw z = click&clack\n");_to(" raw w = 1,2,[object Object]\n");_to("

    \n");_to("\n");_to("

    \n");_to(' raw printed x = "Hello world"\n');_to(" raw printed y =


    \n");_to(" raw printed z = click&clack\n");_to(" raw printed w = 1,2,[object Object]\n");_to("

    \n");_to("

    \n");_to(' json printed x = "\\"Hello world\\""\n');_to(' json printed y = "\\u003Chr /\\u003E"\n');_to(' json printed z = "click\\u0026clack"\n');_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n');_to("

    \n");_to("

    \n");_to(" html printed longhand x = "Hello world"\n");_to(" html printed longhand y = <hr />\n");_to(" html printed longhand z = click&clack\n");_to(" html printed longhand w = 1,2,[object Object]\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/escape/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+(typeof greeting!=="undefined"&&greeting!==null?escape(greeting):""));_to(", world.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof greeting!="undefined"&&greeting!==null?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hello, world.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/hello_world/temp.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("a\n");_to("b\n");_to("c\n");_to(""+escape(passed_fn(100)));_to("\n");_to("d\n");_to("e\n");_to("f");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/temp.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/child.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("a\n");_ts(2);_ts(2);say_hi();_ts(1);_to("\n");_to("b");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_order/child.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"};tmpl.pub=function(__locals){var say_hi,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);say_hi=function(){_ts(1);_ts(1);_to("hi");return _ts(2)};_ts(1);_to("1\n");_to("2\n");_to(""+partial("child.toffee",{say_hi:say_hi}));_to("\n");_to("3\n");_to("4");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.pub=function(__locals){var say_hi,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_order/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_order/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("1\n");_to("2\n");_to("hia\n");_to("\n");_to("b\n");_to("3\n");_to("4");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_order/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_recursion/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);if(countdown===0){_ts(1);_ts(1);_to("blastoff!");_ts(2)}else{print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1}))}__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),countdown===0?(_ts(1),_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_recursion/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("10...9...8...7...6...5...4...3...2...1...blastoff!");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+partial("message.toffee",{from:"Chris "}));_to("\n");_to(""+partial("message.toffee",{from:"Max & Sam"}));_to("\n");_ts(2);_ts(2);print(partial("message.toffee",{from:"Christian"}));_ts(1);_ts(1);_to(""+partial("message.toffee",{from:"Jennie"}));_ts(2);print(partial("message.toffee",{sender:"The enemy"}));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"};tmpl.pub=function(__locals){var from,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/message.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);from=from||"Unknown";_ts(1);_to("From: ");_to(""+(from!=null?escape(from):""));_to(" \n");_to("Msg: Hello, world\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.pub=function(__locals){var from,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/message.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(from!=null?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/include_techniques/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("From: Chris <ccoyne77@gmail> \n");_to("Msg: Hello, world\n");_to("\n");_to("From: Max & Sam \n");_to("Msg: Hello, world\n");_to("\n");_to("From: Christian \n");_to("Msg: Hello, world\n");_to("From: Jennie \n");_to("Msg: Hello, world\n");_to("From: Unknown \n");_to("Msg: Hello, world\n");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"};tmpl.pub=function(__locals){var i,square,x,_i,_j,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/indent_attack/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
    \n");_to(" ");_ts(2);_ts(2);if(1===1){if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass1");_ts(2)}}}if(1===1){if(2===3){if(3===3){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass2");_ts(2)}}}}_ts(1);_to("\n");_to("
    \n");_to("\n");_ts(2);_ts(2);if(1===1){if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass3");_ts(2)}}}if(1===1){if(2===3){if(3===3){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(2===2){if(3===3){_ts(1);_ts(1);_to("Pass4");_ts(2)}}}}_ts(1);_to("\n");_to("
    \n");_to("\n");_ts(2);_ts(2);if(10===10){if(20===20){if(30===30){_ts(1);_ts(1);_to("Pass5");_ts(2)}}}if(10===10){if(20===30){if(30===30){_ts(1);_ts(1);_to("Fail");_ts(2)}else{_ts(1);_ts(1);_to("Fail");_ts(2)}}else{if(20===20){if(30===30){_ts(1);_ts(1);_to("Pass6");_ts(2)}}}}_ts(1);_to("\n");_to("\n");_ts(2);_ts(2);if(99===99){print("Pass7")}else{print("Fail");_ts(1);_ts(1);_to("Fail8");_ts(2)}_ts(1);_ts(1);_to("Pass8");_ts(2);_ts(1);_to("\n");_to("\n");_ts(2);_ts(2);_ts(1);_ts(1);_to("...passed with flying colors.");_ts(2);_ts(1);_to("\n");_to("

    \n");_to(" ");_ts(2);_ts(2);x=20;if(x>1){for(i=_i=12;12<=x?_ix;i=12<=x?++_i:--_i){square=16;_ts(1);_ts(1);_to("Pass");_to(""+(i!=null?escape(i):""));_ts(2);_ts(2);if(i===square){_ts(1);_ts(1);_to("(a perfect square)");_ts(2)}}}_ts(1);_to("\n");_to(" ");_ts(2);_ts(2);x=20;if(x>1){for(i=_j=12;12<=x?_jx;i=12<=x?++_j:--_j){square=16}_ts(1);_ts(1);_to("Pass");_to(""+(i!=null?escape(i):""));_ts(2);_ts(2);if(i===square){_ts(1);_ts(1);_to("(a perfect square)");_ts(2)}}_ts(1);_to("\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.pub=function(__locals){var i,square,x,_i,_j,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/indent_attack/input.toffee");with(__locals){__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass1"),_ts(2),_ts(1),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass3"),_ts(2),_ts(1),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass5"),_ts(2),_ts(1),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=20;if(x>1)for(i=_i=12;12<=x?_ix;i=12<=x?++_i:--_i)square=16,_ts(1),_ts(1),_to("Pass"),_to(""+(i!=null?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2));_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),x=20;if(x>1){for(i=_j=12;12<=x?_jx;i=12<=x?++_j:--_j)square=16;_ts(1),_ts(1),_to("Pass"),_to(""+(i!=null?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2))}return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/indent_attack/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
    \n");_to(" Pass1Pass2\n");_to("
    \n");_to("\n");_to("Pass3Pass4\n");_to("
    \n");_to("\n");_to("Pass5Pass6\n");_to("\n");_to("Pass7Pass8\n");_to("\n");_to("...passed with flying colors.\n");_to("

    \n");_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n");_to(" Pass20\n");_to("

    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/indent_attack/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"),_to(" Pass20\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"};tmpl.pub=function(__locals){var supplies,supply,_i,_len,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/junk/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);supplies=["broom","mop","vacuum"];_ts(1);_to("
      \n");_to(" ");_ts(2);_ts(2);for(_i=0,_len=supplies.length;_i<_len;_i++){supply=supplies[_i];_ts(1);_ts(1);_to("
    • ");_to(""+(supply!=null?escape(supply):""));_to("
    • ");_ts(2)}_ts(1);_to("\n");_to("
    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.pub=function(__locals){var supplies,supply,_i,_len,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/input.toffee");with(__locals){__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2);for(_i=0,_len=supplies.length;_i<_len;_i++)supply=supplies[_i],_ts(1),_ts(1),_to("
    • "),_to(""+(supply!=null?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res}};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/junk/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("
      \n");_to("
    • broom
    • mop
    • vacuum
    • \n");_to("
    ");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"};tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);print_it=function(msg){_ts(1);_ts(1);_to(""+(msg!=null?escape(msg):""));return _ts(2)};print_it_twice=function(msg){var m;_ts(1);_ts(1);_to(""+(msg!=null?escape(msg):""));_ts(2);m=msg;_ts(1);_ts(1);_to(""+(m!=null?escape(m):""));return _ts(2)};echo_it=function(msg){var v;v=msg;return v};print_it("Pass");print_it_twice("Pass");print(echo_it("Pass"));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(e){return _ts(1),_ts(1),_to(""+(e!=null?escape(e):"")),_ts(2)},print_it_twice=function(e){var t;return _ts(1),_ts(1),_to(""+(e!=null?escape(e):"")),_ts(2),t=e,_ts(1),_ts(1),_to(""+(t!=null?escape(t):"")),_ts(2)},echo_it=function(e){var t;return t=e,t},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("PassPassPassPass");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+(typeof a!=="undefined"&&a!==null?escape(a):""));_to(" ");_to(""+(typeof b!=="undefined"&&b!==null?escape(b):""));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+(typeof a!="undefined"&&a!==null?escape(a):"")),_to(" "),_to(""+(typeof b!="undefined"&&b!==null?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+escape("Hello, "+"world"));_to("\n");_to("
    \n");_to(""+partial("foo.toffee",{a:"Goodbye"+",",b:"world"}));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye,",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hello, world\n");_to("
    \n");_to("Goodbye, world");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/plaintext/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hi there.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/plaintext/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("Hi there.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"};tmpl.pub=function(__locals){var msg,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/foo/bar/body.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);msg=msg||"Unknown message";print(msg);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"},tmpl.pub=function(__locals){var msg,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/bar/body.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),msg=msg||"Unknown message",print(msg),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"};tmpl.pub=function(__locals){var from,msg,_ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/foo/message.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(2);from=from||"Unknown sender";msg=msg||"Unknown message.";print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg}));__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"},tmpl.pub=function(__locals){var from,msg,_ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/message.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown sender",msg=msg||"Unknown message.",print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg})),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to(""+partial("./foo/message.toffee"));_to("\n");_to(""+escape(snippet("./foo/message.toffee")));_to("\n");_to(""+partial("./foo/message.toffee",{from:"Sam"}));_to("\n");_to(""+escape(snippet("./foo/message.toffee",{from:"Max"})));_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("./foo/message.toffee")),_to("\n"),_to(""+escape(snippet("./foo/message.toffee"))),_to("\n"),_to(""+partial("./foo/message.toffee",{from:"Sam"})),_to("\n"),_to(""+escape(snippet("./foo/message.toffee",{from:"Max"}))),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/snippets/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("From: Preloaded sender\n");_to("Preloaded message.\n");_to("From: Unknown sender\n");_to("Unknown message.\n");_to("From: Sam\n");_to("Preloaded message.\n");_to("From: Max\n");_to("Unknown message.");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Preloaded sender\n"),_to("Preloaded message.\n"),_to("From: Unknown sender\n"),_to("Unknown message.\n"),_to("From: Sam\n"),_to("Preloaded message.\n"),_to("From: Max\n"),_to("Unknown message."),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/special_cases/input.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_ts(2);_ts(2);_ts(1);_ts(1);_to('"'+"PASSED"+'"');_ts(2);_ts(1);_to("\n");_ts(2);_ts(1);_to("\n");_to("

    \n");_to(" ");_to(""+print(""+"click & clack"+""));_to("\n");_to("

    \n");_ts(2);_ts(1);_to("\n");_to("A backslash is a \\\n");_to("");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) +(function(){var tmpl;tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/special_cases/input.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_to(""+print("click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) ; -(function(){var tmpl;tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"};tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(x){return __locals.__toffee.out.push(x)};_ln=function(x){return __locals.__toffee.lineno=x};_ts=function(x){return __locals.__toffee.state=x};toffee.__augmentLocals(__locals,"/special_cases/output.toffee");with(__locals){__toffee.out=[];_ts(1);_ts(1);_to("\n");_to('"'+'PASSED"\n');_to("\n");_to("

    \n");_to(" click & clack\n");_to("

    \n");_to("\n");_to("A backslash is a \\\n");_to("");_ts(2);__toffee.res=__toffee.out.join("");return __toffee.res;return true}};if(typeof __toffee_run_input!=="undefined"&&__toffee_run_input!==null){return tmpl.pub(__toffee_run_input)}}).call(this) \ No newline at end of file +(function(){var tmpl;tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.pub=function(__locals){var _ln,_to,_ts;_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/special_cases/output.toffee");with(__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),__toffee.res};if(typeof __toffee_run_input!="undefined"&&__toffee_run_input!==null)return tmpl.pub(__toffee_run_input)}).call(this) \ No newline at end of file diff --git a/test/run_cases.coffee b/test/run_cases.coffee index 102b704..67651fc 100644 --- a/test/run_cases.coffee +++ b/test/run_cases.coffee @@ -17,7 +17,8 @@ minimized_engine = new engine({ run_case_dir = (eng, dir, cb) -> expected = fs.readFileSync "#{dir}/output.toffee", "utf8" - if path.existsSync "#{dir}/vars.js" + existsSync = if path.existsSync? then path.existsSync else fs.existsSync + if existsSync "#{dir}/vars.js" vars = fs.readFileSync "#{dir}/vars.js", "utf8" vars = eval "(#{vars})" else From 038adad097ff45c0f2d09931ef0ecee5bdf538fb Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 5 Sep 2012 15:38:18 -0400 Subject: [PATCH 064/163] toffee.js added, which defines headers if you want to include them separately from templates in the browser --- toffee.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 toffee.js diff --git a/toffee.js b/toffee.js new file mode 100644 index 0000000..99d6cbf --- /dev/null +++ b/toffee.js @@ -0,0 +1 @@ +var toffee;if(typeof toffee=="undefined"||toffee===null)toffee={};toffee.templates||(toffee.templates={}),toffee.states={TOFFEE:1,COFFEE:2},toffee.__json=function(e,t){return t==null?"null":""+JSON.stringify(t).replace(//g,"\\u003E").replace(/&/g,"\\u0026")},toffee.__raw=function(e,t){return t},toffee.__html=function(e,t){return(""+t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},toffee.__escape=function(e,t){return e.__toffee.autoEscape==null||e.__toffee.autoEscape?t===void 0?"":t!=null&&typeof t=="object"?e.json(t):e.html(t):t},toffee.__augmentLocals=function(e,t){var n,r;return n=e,r=n.__toffee={out:[]},n.print==null&&(n.print=function(e){return toffee.__print(n,e)}),n.json==null&&(n.json=function(e){return toffee.__json(n,e)}),n.raw==null&&(n.raw=function(e){return toffee.__raw(n,e)}),n.html==null&&(n.html=function(e){return toffee.__html(n,e)}),n.escape==null&&(n.escape=function(e){return toffee.__escape(n,e)}),n.partial==null&&(n.partial=function(e,r){return toffee.__partial(toffee.templates[""+t],n,e,r)}),n.snippet==null&&(n.snippet=function(e,r){return toffee.__snippet(toffee.templates[""+t],n,e,r)}),r.print=n.print,r.json=n.json,r.raw=n.raw,r.html=n.html,r.escape=n.escape,r.partial=n.partial,r.snippet=n.snippet},toffee.__print=function(e,t){return e.__toffee.state===toffee.states.COFFEE?(e.__toffee.out.push(t),""):""+t},toffee.__normalize=function(e){var t,n,r,i,s;if(e==null||e==="/")return e;r=e.split("/"),t=[],r[0]&&t.push("");for(i=0,s=r.length;i1?t.pop():t.push(n):n!=="."&&t.push(n);return e=t.join("/"),e||(e="/"),e},toffee.__partial=function(e,t,n,r){return n=toffee.__normalize(e.bundlePath+"/../"+n),toffee.__inlineInclude(n,r,t)},toffee.__snippet=function(e,t,n,r){return n=toffee.__normalize(e.bundlePath+"/../"+n),r=r!=null?r:{},r.__toffee=r.__toffee||{},r.__toffee.noInheritance=!0,toffee.__inlineInclude(n,r,t)},toffee.__inlineInclude=function(e,t,n){var r,i,s;i=t||{},i.__toffee=i.__toffee||{};if(!i.__toffee.noInheritance)for(r in n)s=n[r],(t!=null?t[r]:void 0)==null&&r!=="print"&&r!=="partial"&&r!=="snippet"&&r!=="layout"&&r!=="__toffee"&&(i[r]=s);return toffee.templates[e]?toffee.templates[e].pub(i):"Inline toffee include: Could not find "+e} \ No newline at end of file From 3c0eb36312356075a96cc855831a8109450f9914 Mon Sep 17 00:00:00 2001 From: "ccoyne77@gmail.com" Date: Wed, 5 Sep 2012 15:39:23 -0400 Subject: [PATCH 065/163] more browser compile options --- Cakefile | 27 +++++++++----- lib/command_line.js | 24 +++++++++---- package.json | 2 +- src/command_line.coffee | 35 +++++++++++++------ .../express3/public/javascripts/test_cases.js | 2 -- test/express3/public/javascripts/toffee.js | 1 + test/express3/views/index.toffee | 1 + 7 files changed, 64 insertions(+), 28 deletions(-) create mode 100644 test/express3/public/javascripts/toffee.js diff --git a/Cakefile b/Cakefile index 8e9d3c5..6384da8 100644 --- a/Cakefile +++ b/Cakefile @@ -1,7 +1,8 @@ -{spawn, exec} = require 'child_process' -fs = require 'fs' -jison = require 'jison' -path = require 'path' +{spawn, exec} = require 'child_process' +fs = require 'fs' +jison = require 'jison' +path = require 'path' +{getCommonHeadersJs} = require './lib/view' task 'build', 'build the whole jam', (cb) -> console.log "Building" @@ -11,9 +12,10 @@ task 'build', 'build the whole jam', (cb) -> buildParser -> runCoffee ['-c', '-o', 'lib/'].concat(files), -> runCoffee ['-c', 'index.coffee'], -> - generateExpressTest -> - console.log "Done building." - cb() if typeof cb is 'function' + buildCommonHeaders -> + generateExpressTest -> + console.log "Done building." + cb() if typeof cb is 'function' runCoffee = (args, cb) -> proc = spawn 'coffee', args @@ -40,23 +42,32 @@ buildParser = (cb) -> fs.writeFileSync "./lib/#{file_name}", source cb() +buildCommonHeaders = (cb) -> + headers = getCommonHeadersJs true, true + fs.writeFileSync "./toffee.js", headers, "utf8" + cb() + generateExpressTest = (cb) -> # generate the JS file bundling all the tests - proc = spawn 'coffee', ['./src/command_line.coffee', '-m', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn 'coffee', ['./src/command_line.coffee', '-n', '-m', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> process.exit(1) if status isnt 0 cb() if typeof cb is 'function' + headers = getCommonHeadersJs true, true + fs.writeFileSync "./test/express3/public/javascripts/toffee.js", headers, "utf8" + # generate an index page that tests them all test_page = """ Test Toffee in the browser + - - - - - """ - - case_dirs = fs.readdirSync "./test/cases/" - - for dir,i in case_dirs - if dir isnt "custom_escape" # a special case since this isn't actually JSON - expected_output = fs.readFileSync "./test/cases/#{dir}/output.toffee", "utf8" - if path.existsSync "./test/cases/#{dir}/vars.js" - vars = fs.readFileSync "./test/cases/#{dir}/vars.js", "utf8" - else - vars = "{}" - rid = i - test_page += """ - \n\n\n - - - - - - - - - - - \n\n\n - """ - - test_page += """ -
    FILEEXPECTED OUTPUTSERVER RENDERBROWSER RENDER
    #{dir}#{expected_output}\#{partial '../../cases/#{dir}/input.toffee', #{vars}}
    - - - """ - fs.writeFileSync "./test/express3/views/index.toffee", test_page, "utf8" \ No newline at end of file diff --git a/README.md b/README.md index 2838547..aaac64c 100644 --- a/README.md +++ b/README.md @@ -408,13 +408,12 @@ Also, I'm likely to accept good pull requests. If you'd like to edit code for this project, note that you should always edit the `.coffee` files, as the `.js` files are generated automatically by building. -To build +To build and test your changes + ``` > cake build +> cake test ``` -To make sure you didn't break something -``` -> coffee tests/run_cases.coffee -``` + diff --git a/package.json b/package.json index 8711420..b53cf31 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "mkdirp": "*" }, "devDependencies": { - "jison" : "*" + "jison" : "*", + "zombie": "*", + "assert": "*" }, "repository": { "type": "git", diff --git a/test/express3/app.coffee b/test/express3/app.coffee index 32370c7..5f3ec68 100644 --- a/test/express3/app.coffee +++ b/test/express3/app.coffee @@ -1,32 +1,40 @@ -express = require 'express' -routes = require './routes' -http = require 'http' -toffee = require 'toffee' - -app = express() - - -app.configure -> - - toffee.expressEngine.verbose = true - #toffee.expressEngine.autoEscape = false - toffee.expressEngine.prettyPrintErrors = false - - app.set 'port', process.env.PORT or 3033 - app.set 'views', __dirname + '/views' - app.set 'view engine', 'toffee' - app.use express.favicon() - app.use express.logger 'dev' - app.use express.bodyParser() - app.use express.methodOverride() - app.use app.router - app.use express.static __dirname + '/public' - -app.configure 'development', -> - app.use express.errorHandler() - -app.get '/', routes.index - -http.createServer(app).listen app.get('port'), -> - console.log "Express server listening on port #{app.get('port')}" \ No newline at end of file +run = (cb) -> + express = require 'express' + routes = require './routes' + http = require 'http' + toffee = require 'toffee' + + app = express() + + + app.configure -> + + toffee.expressEngine.verbose = not module.parent + toffee.expressEngine.prettyPrintErrors = false + + app.set 'port', process.env.PORT or 3033 + app.set 'views', __dirname + '/views' + app.set 'view engine', 'toffee' + app.use express.favicon() + app.use express.logger 'dev' + app.use express.bodyParser() + app.use express.methodOverride() + app.use app.router + app.use express.static __dirname + '/public' + + app.configure 'development', -> + app.use express.errorHandler() + + app.get '/', routes.index + + http.createServer(app).listen app.get('port'), -> + console.log "Express server listening on port #{app.get('port')}" + if cb? then cb() + + +if not module.parent + run() + +else + exports.run = (cb) -> run cb \ No newline at end of file diff --git a/test/express3/public/javascripts/jquery-1.9.0.min.js b/test/express3/public/javascripts/jquery-1.9.0.min.js new file mode 100644 index 0000000..50d1b22 --- /dev/null +++ b/test/express3/public/javascripts/jquery-1.9.0.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */(function(e,t){"use strict";function n(e){var t=e.length,n=st.type(e);return st.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return st.each(e.match(lt)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(st.acceptData(e)){var o,a,s=st.expando,u="string"==typeof n,l=e.nodeType,c=l?st.cache:e,f=l?e[s]:e[s]&&s;if(f&&c[f]&&(i||c[f].data)||!u||r!==t)return f||(l?e[s]=f=K.pop()||st.guid++:f=s),c[f]||(c[f]={},l||(c[f].toJSON=st.noop)),("object"==typeof n||"function"==typeof n)&&(i?c[f]=st.extend(c[f],n):c[f].data=st.extend(c[f].data,n)),o=c[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[st.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[st.camelCase(n)])):a=o,a}}function o(e,t,n){if(st.acceptData(e)){var r,i,o,a=e.nodeType,u=a?st.cache:e,l=a?e[st.expando]:st.expando;if(u[l]){if(t&&(r=n?u[l]:u[l].data)){st.isArray(t)?t=t.concat(st.map(t,st.camelCase)):t in r?t=[t]:(t=st.camelCase(t),t=t in r?[t]:t.split(" "));for(i=0,o=t.length;o>i;i++)delete r[t[i]];if(!(n?s:st.isEmptyObject)(r))return}(n||(delete u[l].data,s(u[l])))&&(a?st.cleanData([e],!0):st.support.deleteExpando||u!=u.window?delete u[l]:u[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Nt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:wt.test(r)?st.parseJSON(r):r}catch(o){}st.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!st.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function l(){return!1}function c(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function f(e,t,n){if(t=t||0,st.isFunction(t))return st.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return st.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=st.grep(e,function(e){return 1===e.nodeType});if(Wt.test(t))return st.filter(t,r,!n);t=st.filter(t,r)}return st.grep(e,function(e){return st.inArray(e,t)>=0===n})}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function h(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function g(e){var t=nn.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)st._data(n,"globalEval",!t||st._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&&st.hasData(e)){var n,r,i,o=st._data(e),a=st._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)st.event.add(t,n,s[n][r])}a.data&&(a.data=st.extend({},a.data))}}function v(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!st.support.noCloneEvent&&t[st.expando]){r=st._data(t);for(i in r.events)st.removeEvent(t,i,r.handle);t.removeAttribute(st.expando)}"script"===n&&t.text!==e.text?(h(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),st.support.html5Clone&&e.innerHTML&&!st.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Zt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,i,o=0,a=e.getElementsByTagName!==t?e.getElementsByTagName(n||"*"):e.querySelectorAll!==t?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||st.nodeName(i,n)?a.push(i):st.merge(a,b(i,n));return n===t||n&&st.nodeName(e,n)?st.merge([e],a):a}function x(e){Zt.test(e.type)&&(e.defaultChecked=e.checked)}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Nn.length;i--;)if(t=Nn[i]+n,t in e)return t;return r}function w(e,t){return e=t||e,"none"===st.css(e,"display")||!st.contains(e.ownerDocument,e)}function N(e,t){for(var n,r=[],i=0,o=e.length;o>i;i++)n=e[i],n.style&&(r[i]=st._data(n,"olddisplay"),t?(r[i]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&w(n)&&(r[i]=st._data(n,"olddisplay",S(n.nodeName)))):r[i]||w(n)||st._data(n,"olddisplay",st.css(n,"display")));for(i=0;o>i;i++)n=e[i],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?r[i]||"":"none"));return e}function C(e,t,n){var r=mn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=st.css(e,n+wn[o],!0,i)),r?("content"===n&&(a-=st.css(e,"padding"+wn[o],!0,i)),"margin"!==n&&(a-=st.css(e,"border"+wn[o]+"Width",!0,i))):(a+=st.css(e,"padding"+wn[o],!0,i),"padding"!==n&&(a+=st.css(e,"border"+wn[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=ln(e),a=st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=un(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=a&&(st.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(a?"border":"content"),r,o)+"px"}function S(e){var t=V,n=bn[e];return n||(n=A(e,t),"none"!==n&&n||(cn=(cn||st(" +
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" custom x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" custom y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" custom z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" custom w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/custom_escape/input.toffee"]={bundlePath:"/custom_escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/custom_escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" custom x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" custom y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" custom z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" custom w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/custom_escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" custom x = Helloworldscriptvarx100script\n"),_to(" custom y = td\n"),_to(" custom z = clickclack\n"),_to(" custom w = 12objectObject\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/custom_escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" custom x = Helloworldscriptvarx100script\n"),_to(" custom y = td\n"),_to(" custom z = clickclack\n"),_to(" custom w = 12objectObject\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var f,friends,project,__repress,_i,_len,_ln,_ref,_ref1,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}],this.projects.length)for(_ref1=this.projects,_i=0,_len=_ref1.length;_len>_i;_i++)project=_ref1[_i],_ts(1),_ts(1),_to("\n"),_to(' '),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2);else _ts(1),_ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var e,t,_;for(_=[],e=0,t=friends.length;t>e;e++)f=friends[e],"f"===f.gender&&_.push(f);return _}().length)),_to(" female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var f,friends,project,__repress,_i,_len,_ln,_ref,_ref1,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}],this.projects.length)for(_ref1=this.projects,_i=0,_len=_ref1.length;_i<_len;_i++)project=_ref1[_i],_ts(1),_ts(1),_to("\n"),_to(" "),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2);else _ts(1),_ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var e,t,_;for(_=[],e=0,t=friends.length;eokcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+("undefined"!=typeof r&&null!==r?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var v,w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],v=["\u2028","\u2029"],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+("undefined"!=typeof r&&null!==r?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to(" default v = "),_to(""+(null!=v?escape(v):"")),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))+"\n"),print(" json printed v = "+raw(raw(raw(raw(json(v)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    \n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to(' default v = ["\\u2028","\\u2029"]\n'),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to(' json printed v = ["\\u2028","\\u2029"]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    \n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/temp.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/temp.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/child.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/child.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var say_hi,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var say_hi,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),0===countdown?(_ts(1),_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),0===countdown?(_ts(1),_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(null!=from?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(null!=from?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var i,square,x,__repress,_i,_j,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/indent_attack/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass1"),_ts(2),_ts(1),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass3"),_ts(2),_ts(1),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass5"),_ts(2),_ts(1),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=20,x>1)for(i=_i=12;x>=12?x>_i:_i>x;i=x>=12?++_i:--_i)square=16,_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2));if(_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),x=20,x>1){for(i=_j=12;x>=12?x>_j:_j>x;i=x>=12?++_j:--_j)square=16;_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2))}return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var i,square,x,__repress,_i,_j,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/indent_attack/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass1"),_ts(2),_ts(1),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass3"),_ts(2),_ts(1),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass5"),_ts(2),_ts(1),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=20,x>1)for(i=_i=12;12<=x?_ix;i=12<=x?++_i:--_i)square=16,_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2));if(_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),x=20,x>1){for(i=_j=12;12<=x?_jx;i=12<=x?++_j:--_j)square=16;_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2))}return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/indent_attack/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"),_to(" Pass20\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/indent_attack/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"),_to(" Pass20\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var supplies,supply,__repress,_i,_len,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/junk/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2),_i=0,_len=supplies.length;_len>_i;_i++)supply=supplies[_i],_ts(1),_ts(1),_to("
    • "),_to(""+(null!=supply?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var supplies,supply,__repress,_i,_len,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/junk/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2),_i=0,_len=supplies.length;_i<_len;_i++)supply=supplies[_i],_ts(1),_ts(1),_to("
    • "),_to(""+(null!=supply?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(t){return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2)},print_it_twice=function(t){var _;return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2),_=t,_ts(1),_ts(1),_to(""+(null!=_?escape(_):"")),_ts(2)},echo_it=function(t){var _;return _=t},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(t){return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2)},print_it_twice=function(t){var _;return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2),_=t,_ts(1),_ts(1),_to(""+(null!=_?escape(_):"")),_ts(2)},echo_it=function(t){var _;return _=t},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof a&&null!==a?escape(a):"")),_to(" "),_to(""+("undefined"!=typeof b&&null!==b?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof a&&null!==a?escape(a):"")),_to(" "),_to(""+("undefined"!=typeof b&&null!==b?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye,",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, "+"world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye"+",",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const1.toffee"]={bundlePath:"/passback/const1.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const1.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx1",passback.vy="vy1",passback.x="oh shit",passback.y="oh noze",_ts(1),_to("\n"),_to("This should output (1)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const1.toffee"]={bundlePath:"/passback/const1.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const1.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx1",passback.vy="vy1",passback.x="oh shit",passback.y="oh noze",_ts(1),_to("\n"),_to("This should output (1)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const2.toffee"]={bundlePath:"/passback/const2.toffee"},tmpl.render=tmpl.pub=function(__locals){var vx,vy,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const2.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vz="vz2",vx="Should not set.",vy="Should not set.",_ts(1),_to("\n"),_to("This should not output (2)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const2.toffee"]={bundlePath:"/passback/const2.toffee"},tmpl.render=tmpl.pub=function(__locals){var vx,vy,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const2.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vz="vz2",vx="Should not set.",vy="Should not set.",_ts(1),_to("\n"),_to("This should not output (2)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const3.toffee"]={bundlePath:"/passback/const3.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const3.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx3",passback.vy="vy3",_ts(1),_to("\n"),_to("This should not output (3)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const3.toffee"]={bundlePath:"/passback/const3.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const3.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx3",passback.vy="vy3",_ts(1),_to("\n"),_to("This should not output (3)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const4.toffee"]={bundlePath:"/passback/const4.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const4.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4",passback.vy="vy4",partial("./const4_sub.toffee"),_ts(1),_to("\n"),_to("This should not output (4)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const4.toffee"]={bundlePath:"/passback/const4.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const4.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4",passback.vy="vy4",partial("./const4_sub.toffee"),_ts(1),_to("\n"),_to("This should not output (4)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const4_sub.toffee"]={bundlePath:"/passback/const4_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const4_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4_sub",passback.vy="vy4_sub",_ts(1),_to("\n"),_to("This should not output (4_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const4_sub.toffee"]={bundlePath:"/passback/const4_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const4_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4_sub",passback.vy="vy4_sub",_ts(1),_to("\n"),_to("This should not output (4_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const5.toffee"]={bundlePath:"/passback/const5.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const5.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5",passback.vy="vy5",print(load("./const5_sub.toffee")),passback.vx=vx,passback.vy=vy,_ts(1),_to("\n"),_to("This should not output (5)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const5.toffee"]={bundlePath:"/passback/const5.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const5.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5",passback.vy="vy5",print(load("./const5_sub.toffee")),passback.vx=vx,passback.vy=vy,_ts(1),_to("\n"),_to("This should not output (5)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/const5_sub.toffee"]={bundlePath:"/passback/const5_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const5_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5_sub",passback.vy="vy5_sub",_ts(1),_to("\n"),_to("This should not output (5_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/const5_sub.toffee"]={bundlePath:"/passback/const5_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const5_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5_sub",passback.vy="vy5_sub",_ts(1),_to("\n"),_to("This should not output (5_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/input.toffee"]={bundlePath:"/passback/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+partial("./const1.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const2.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const3.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const4.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const5.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/input.toffee"]={bundlePath:"/passback/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+partial("./const1.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const2.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const3.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const4.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const5.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/passback/output.toffee"]={bundlePath:"/passback/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = vx0,,\n"),_to("\n"),_to("This should output (1).\n"),_to("vx,vy,vz = vx1,vy1,\n"),_to("\n"),_to("vx,vy,vz = vx1,vy1,vz2\n"),_to("\n"),_to("vx,vy,vz = vx3,vy3,vz2\n"),_to("\n"),_to("vx,vy,vz = vx4,vy4,vz2\n"),_to("\n"),_to("vx,vy,vz = vx5_sub,vy5_sub,vz2"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/passback/output.toffee"]={bundlePath:"/passback/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = vx0,,\n"),_to("\n"),_to("This should output (1).\n"),_to("vx,vy,vz = vx1,vy1,\n"),_to("\n"),_to("vx,vy,vz = vx1,vy1,vz2\n"),_to("\n"),_to("vx,vy,vz = vx3,vy3,vz2\n"),_to("\n"),_to("vx,vy,vz = vx4,vy4,vz2\n"),_to("\n"),_to("vx,vy,vz = vx5_sub,vy5_sub,vz2"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/post_process/buncha_junk.toffee"]={bundlePath:"/post_process/buncha_junk.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/buncha_junk.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/post_process/buncha_junk.toffee"]={bundlePath:"/post_process/buncha_junk.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/buncha_junk.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/post_process/input.toffee"]={bundlePath:"/post_process/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var clean,reverse,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world. \n"),_to(""+partial("./signature.toffee")),_to("\n"),_ts(2),_ts(2),reverse=function(e){var t;return function(){var _,o;for(o=[],_=e.length-1;_>=0;_+=-1)t=e[_],o.push(t);return o}().join("")},clean=function(e){var t;return function(){var _,o,n;for(n=[],_=0,o=e.length;o>_;_++)t=e[_],t.match(/[a-z\-]/gi)&&n.push(t);return n}().join("")},_ts(1),_to("\n"),_to(""+partial("./buncha_junk.toffee",{postProcess:function(e){return reverse(clean(e))}})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/post_process/input.toffee"]={bundlePath:"/post_process/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var clean,reverse,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world. \n"),_to(""+partial("./signature.toffee")),_to("\n"),_ts(2),_ts(2),reverse=function(e){var t;return function(){var _,o;for(o=[],_=e.length-1;_>=0;_+=-1)t=e[_],o.push(t);return o}().join("")},clean=function(e){var t;return function(){var _,o,n;for(n=[],_=0,o=e.length;_\n"),_to(" "),_to(""+print("click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); +(function(){var tmpl;if(tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"'+'PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_to(""+print(""+"click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); ; -(function(){var tmpl;return tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input?tmpl.pub(__toffee_run_input):void 0}).call(this); \ No newline at end of file +(function(){var tmpl;if(tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"'+'PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); \ No newline at end of file diff --git a/test/express3/public/javascripts/toffee.js b/test/express3/public/javascripts/toffee.js index 73ffca5..964dbde 100644 --- a/test/express3/public/javascripts/toffee.js +++ b/test/express3/public/javascripts/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); } }; diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 03b71ba..07fa3e8 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -135,6 +135,7 @@ You have 3 female friends.
    #{partial '../../cases/escape/input.toffee', {}}
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],_ts(1),_to("

    \n"),_to(" custom x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" custom y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" custom z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" custom w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/custom_escape/input.toffee"] = { + bundlePath: "/custom_escape/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var w, x, y, z, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/custom_escape/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + x = '"Hello world"'; + y = '
    '; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + _ts(1); + _ln(6); + _to("

    \n"); + _ln(7); + _to(" custom x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _ln(8); + _to(" custom y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _ln(9); + _to(" custom z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _ln(10); + _to(" custom w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _ln(11); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/custom_escape/output.toffee"]={bundlePath:"/custom_escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/custom_escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" custom x = Helloworldscriptvarx100script\n"),_to(" custom y = td\n"),_to(" custom z = clickclack\n"),_to(" custom w = 12objectObject\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/custom_escape/output.toffee"] = { + bundlePath: "/custom_escape/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/custom_escape/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("

    \n"); + _ln(2); + _to(" custom x = Helloworldscriptvarx100script\n"); + _ln(3); + _to(" custom y = td\n"); + _ln(4); + _to(" custom z = clickclack\n"); + _ln(5); + _to(" custom w = 12objectObject\n"); + _ln(6); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/eco_compare/input.toffee"]={bundlePath:"/eco_compare/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var f,friends,project,__repress,_i,_len,_ln,_ref,_ref1,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(2),this.projects=[{url:"http://localhost:3000",name:"okcupid",description:"A site for singles"},{url:"http://localhost:3001",name:"tallygram",description:"A site for anyone"}],this.projects.length)for(_ref1=this.projects,_i=0,_len=_ref1.length;_i<_len;_i++)project=_ref1[_i],_ts(1),_ts(1),_to("\n"),_to(" "),_to(""+escape(project.name)),_to("\n"),_to("

    "),_to(""+escape(project.description)),_to("

    \n"),_to(" "),_ts(2);else _ts(1),_ts(1),_to(" No projects "),_ts(2);return friends=[{gender:"f",name:"Jennie"},{gender:"f",name:"Rachel"},{gender:"m",name:"Petar"},{gender:"f",name:"Marissa"}],_ts(1),_to("\n"),_to("\n"),_to("You have "),_to(""+escape(function(){var e,t,_;for(_=[],e=0,t=friends.length;e"); + _to("" + (escape(project.name))); + _to("\n"); + _ln(10); + _to("

    "); + _to("" + (escape(project.description))); + _to("

    \n"); + _ln(11); + _to(" "); + _ts(2); + } + } else { + _ts(1); + _ts(1); + _ln(12); + _to(" No projects "); + _ts(2); + } + friends = [ + { + gender: "f", + name: "Jennie" + }, { + gender: "f", + name: "Rachel" + }, { + gender: "m", + name: "Petar" + }, { + gender: "f", + name: "Marissa" + } + ]; + _ts(1); + _ln(20); + _to("\n"); + _ln(21); + _to("\n"); + _ln(22); + _to("You have "); + _to("" + (escape(((function() { + var _j, _len1, _results; + _results = []; + for (_j = 0, _len1 = friends.length; _j < _len1; _j++) { + f = friends[_j]; + if (f.gender === "f") { + _results.push(f); + } + } + return _results; + })()).length))); + _to(" female friends."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/eco_compare/output.toffee"]={bundlePath:"/eco_compare/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/eco_compare/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to(' okcupid\n'),_to("

    A site for singles

    \n"),_to(" \n"),_to(' tallygram\n'),_to("

    A site for anyone

    \n"),_to(" \n"),_to("\n"),_to("You have 3 female friends."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/eco_compare/output.toffee"] = { + bundlePath: "/eco_compare/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/eco_compare/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to(" okcupid\n"); + _ln(3); + _to("

    A site for singles

    \n"); + _ln(4); + _to(" \n"); + _ln(5); + _to(" tallygram\n"); + _ln(6); + _to("

    A site for anyone

    \n"); + _ln(7); + _to(" \n"); + _ln(8); + _to("\n"); + _ln(9); + _to("You have 3 female friends."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/escape/input.toffee"]={bundlePath:"/escape/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var v,w,x,y,z,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),x='"Hello world"',y="
    ",z="click&clack",w=[1,2,{place:"The Dreadfort"}],v=["\u2028","\u2029"],_ts(1),_to("

    \n"),_to(" default x = "),_to(""+(null!=x?escape(x):"")),_to("\n"),_to(" default y = "),_to(""+(null!=y?escape(y):"")),_to("\n"),_to(" default z = "),_to(""+(null!=z?escape(z):"")),_to("\n"),_to(" default w = "),_to(""+(null!=w?escape(w):"")),_to("\n"),_to(" default r = "),_to(""+("undefined"!=typeof r&&null!==r?escape(r):"")),_to("\n"),_to(" default w.foo = "),_to(""+escape(w.foo)),_to("\n"),_to(" default v = "),_to(""+(null!=v?escape(v):"")),_to("\n"),_to("

    \n"),_to("

    \n"),_to(" raw x = "),_to(""+raw(x)),_to("\n"),_to(" raw y = "),_to(""+raw(y)),_to("\n"),_to(" raw z = "),_to(""+raw(z)),_to("\n"),_to(" raw w = "),_to(""+raw(w)),_to("\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_ts(2),_ts(2),print(" raw printed x = "+x+"\n"),print(" raw printed y = "+y+"\n"),print(" raw printed z = "+z+"\n"),print(" raw printed w = "+w),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" json printed x = "+raw(raw(raw(raw(json(x)))))+"\n"),print(" json printed y = "+raw(raw(raw(raw(json(y)))))+"\n"),print(" json printed z = "+raw(raw(raw(raw(json(z)))))+"\n"),print(" json printed w = "+raw(raw(raw(raw(json(w)))))+"\n"),print(" json printed v = "+raw(raw(raw(raw(json(v)))))),_ts(1),_to("\n"),_to("

    \n"),_to("

    \n"),_ts(2),_ts(2),print(" html printed longhand x = "+__toffee.html(x)+"\n"),print(" html printed longhand y = "+__toffee.html(y)+"\n"),print(" html printed longhand z = "+__toffee.html(z)+"\n"),print(" html printed longhand w = "+__toffee.html(w)),_ts(1),_to("\n"),_to("

    \n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/escape/input.toffee"] = { + bundlePath: "/escape/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var dir, v, w, x, y, z, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/escape/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + x = '"Hello world"'; + y = '
    '; + z = 'click&clack'; + w = [ + 1, 2, { + "place": "The Dreadfort" + } + ]; + v = ["\u2028", "\u2029"]; + dir = ["hi\u{202e}there"]; + _ts(1); + _ln(8); + _to("

    \n"); + _ln(9); + _to(" default x = "); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _ln(10); + _to(" default y = "); + _to("" + (y != null ? escape(y) : '')); + _to("\n"); + _ln(11); + _to(" default z = "); + _to("" + (z != null ? escape(z) : '')); + _to("\n"); + _ln(12); + _to(" default w = "); + _to("" + (w != null ? escape(w) : '')); + _to("\n"); + _ln(13); + _to(" default r = "); + _to("" + (typeof r !== "undefined" && r !== null ? escape(r) : '')); + _to("eol\n"); + _ln(14); + _to(" default w.foo = "); + _to("" + (escape(w.foo))); + _to("eol\n"); + _ln(15); + _to(" default v = "); + _to("" + (v != null ? escape(v) : '')); + _to("\n"); + _ln(16); + _to(" default dir = "); + _to("" + (dir != null ? escape(dir) : '')); + _to("\n"); + _ln(17); + _to(" default dir0 = "); + _to("" + (escape(dir[0]))); + _to("\n"); + _ln(18); + _to("

    \n"); + _ln(19); + _to("

    \n"); + _ln(20); + _to(" raw x = "); + _to("" + (raw(x))); + _to("\n"); + _ln(21); + _to(" raw y = "); + _to("" + (raw(y))); + _to("\n"); + _ln(22); + _to(" raw z = "); + _to("" + (raw(z))); + _to("\n"); + _ln(23); + _to(" raw w = "); + _to("" + (raw(w))); + _to("\n"); + _ln(24); + _to("

    \n"); + _ln(25); + _to("\n"); + _ln(32); + _to("

    \n"); + _ln(33); + _ts(2); + _ts(2); + print(" raw printed x = " + x + "\n"); + print(" raw printed y = " + y + "\n"); + print(" raw printed z = " + z + "\n"); + print(" raw printed w = " + w); + _ts(1); + _ln(38); + _to("\n"); + _ln(39); + _to("

    \n"); + _ln(40); + _to("

    \n"); + _ln(41); + _ts(2); + _ts(2); + print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); + print(" json printed y = " + (raw(raw(raw(raw(json(y)))))) + "\n"); + print(" json printed z = " + (raw(raw(raw(raw(json(z)))))) + "\n"); + print(" json printed w = " + (raw(raw(raw(raw(json(w)))))) + "\n"); + print(" json printed v = " + (raw(raw(raw(raw(json(v))))))); + _ts(1); + _ln(47); + _to("\n"); + _ln(48); + _to("

    \n"); + _ln(49); + _to("

    \n"); + _ln(50); + _ts(2); + _ts(2); + print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); + print(" html printed longhand y = " + (__toffee.html(y)) + "\n"); + print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); + print(" html printed longhand w = " + (__toffee.html(w))); + _ts(1); + _ln(55); + _to("\n"); + _ln(56); + _to("

    \n"); + _ln(57); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/escape/output.toffee"]={bundlePath:"/escape/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/escape/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("

    \n"),_to(" default x = "Hello world"\n"),_to(" default y = <hr />\n"),_to(" default z = click&clack\n"),_to(' default w = [1,2,{"place":"The Dreadfort"}]\n'),_to(" default r = \n"),_to(" default w.foo = \n"),_to(' default v = ["\\u2028","\\u2029"]\n'),_to("

    \n"),_to("

    \n"),_to(' raw x = "Hello world"\n'),_to(" raw y =


    \n"),_to(" raw z = click&clack\n"),_to(" raw w = 1,2,[object Object]\n"),_to("

    \n"),_to("\n"),_to("

    \n"),_to(' raw printed x = "Hello world"\n'),_to(" raw printed y =


    \n"),_to(" raw printed z = click&clack\n"),_to(" raw printed w = 1,2,[object Object]\n"),_to("

    \n"),_to("

    \n"),_to(' json printed x = "\\"Hello world\\""\n'),_to(' json printed y = "\\u003Chr /\\u003E"\n'),_to(' json printed z = "click\\u0026clack"\n'),_to(' json printed w = [1,2,{"place":"The Dreadfort"}]\n'),_to(' json printed v = ["\\u2028","\\u2029"]\n'),_to("

    \n"),_to("

    \n"),_to(" html printed longhand x = "Hello world"\n"),_to(" html printed longhand y = <hr />\n"),_to(" html printed longhand z = click&clack\n"),_to(" html printed longhand w = 1,2,[object Object]\n"),_to("

    \n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/escape/output.toffee"] = { + bundlePath: "/escape/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/escape/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("

    \n"); + _ln(2); + _to(" default x = "Hello world"\n"); + _ln(3); + _to(" default y = <hr />\n"); + _ln(4); + _to(" default z = click&clack\n"); + _ln(5); + _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(6); + _to(" default r = eol\n"); + _ln(7); + _to(" default w.foo = eol\n"); + _ln(8); + _to(" default v = [\"\\u2028\",\"\\u2029\"]\n"); + _ln(9); + _to(" default dir = [\"hi\\u202ethere\"]\n"); + _ln(10); + _to(" default dir0 = hithere\n"); + _ln(11); + _to("

    \n"); + _ln(12); + _to("

    \n"); + _ln(13); + _to(" raw x = \"Hello world\"\n"); + _ln(14); + _to(" raw y =


    \n"); + _ln(15); + _to(" raw z = click&clack\n"); + _ln(16); + _to(" raw w = 1,2,[object Object]\n"); + _ln(17); + _to("

    \n"); + _ln(18); + _to("\n"); + _ln(25); + _to("

    \n"); + _ln(26); + _to(" raw printed x = \"Hello world\"\n"); + _ln(27); + _to(" raw printed y =


    \n"); + _ln(28); + _to(" raw printed z = click&clack\n"); + _ln(29); + _to(" raw printed w = 1,2,[object Object]\n"); + _ln(30); + _to("

    \n"); + _ln(31); + _to("

    \n"); + _ln(32); + _to(" json printed x = \"\\\"Hello world\\\"\"\n"); + _ln(33); + _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); + _ln(34); + _to(" json printed z = \"click\\u0026clack\"\n"); + _ln(35); + _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _ln(36); + _to(" json printed v = [\"\\u2028\",\"\\u2029\"]\n"); + _ln(37); + _to("

    \n"); + _ln(38); + _to("

    \n"); + _ln(39); + _to(" html printed longhand x = "Hello world"\n"); + _ln(40); + _to(" html printed longhand y = <hr />\n"); + _ln(41); + _to(" html printed longhand z = click&clack\n"); + _ln(42); + _to(" html printed longhand w = 1,2,[object Object]\n"); + _ln(43); + _to("

    \n"); + _ln(44); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/input.toffee"]={bundlePath:"/hello_world/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/input.toffee"] = { + bundlePath: "/hello_world/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/hello_world/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("" + (typeof greeting !== "undefined" && greeting !== null ? escape(greeting) : '')); + _to(", world."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/output.toffee"]={bundlePath:"/hello_world/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/output.toffee"] = { + bundlePath: "/hello_world/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/hello_world/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("Hello, world."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/hello_world/temp.toffee"]={bundlePath:"/hello_world/temp.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/hello_world/temp.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_to("b\n"),_to("c\n"),_to(""+escape(passed_fn(100))),_to("\n"),_to("d\n"),_to("e\n"),_to("f"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/hello_world/temp.toffee"] = { + bundlePath: "/hello_world/temp.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/hello_world/temp.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("a\n"); + _ln(2); + _to("b\n"); + _ln(3); + _to("c\n"); + _ln(4); + _to("" + (escape(passed_fn(100)))); + _to("\n"); + _ln(5); + _to("d\n"); + _ln(6); + _to("e\n"); + _ln(7); + _to("f"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_order/child.toffee"]={bundlePath:"/include_order/child.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/child.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("a\n"),_ts(2),_ts(2),say_hi(),_ts(1),_to("\n"),_to("b"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/child.toffee"] = { + bundlePath: "/include_order/child.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_order/child.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("a\n"); + _ln(2); + _ts(2); + _ts(2); + say_hi(); + _ts(1); + _ln(4); + _to("\n"); + _ln(5); + _to("b"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_order/input.toffee"]={bundlePath:"/include_order/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var say_hi,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),say_hi=function(){return _ts(1),_ts(1),_to("hi"),_ts(2)},_ts(1),_to("1\n"),_to("2\n"),_to(""+partial("child.toffee",{say_hi:say_hi})),_to("\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/input.toffee"] = { + bundlePath: "/include_order/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var say_hi, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_order/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + say_hi = function() { + _ts(1); + _ts(1); + _ln(3); + _to("hi"); + return _ts(2); + }; + _ts(1); + _ln(4); + _to("1\n"); + _ln(5); + _to("2\n"); + _ln(6); + _to("" + (partial("child.toffee", { + say_hi: say_hi + }))); + _to("\n"); + _ln(7); + _to("3\n"); + _ln(8); + _to("4"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_order/output.toffee"]={bundlePath:"/include_order/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/include_order/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("1\n"),_to("2\n"),_to("hia\n"),_to("\n"),_to("b\n"),_to("3\n"),_to("4"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_order/output.toffee"] = { + bundlePath: "/include_order/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_order/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("1\n"); + _ln(2); + _to("2\n"); + _ln(3); + _to("hia\n"); + _ln(4); + _to("\n"); + _ln(5); + _to("b\n"); + _ln(6); + _to("3\n"); + _ln(7); + _to("4"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_recursion/input.toffee"]={bundlePath:"/include_recursion/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),0===countdown?(_ts(1),_ts(1),_to("blastoff!"),_ts(2)):print(""+countdown+"..."+partial("input.toffee",{countdown:countdown-1})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_recursion/input.toffee"] = { + bundlePath: "/include_recursion/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_recursion/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + if (countdown === 0) { + _ts(1); + _ts(1); + _ln(2); + _to("blastoff!"); + _ts(2); + } else { + print("" + countdown + "..." + (partial('input.toffee', { + countdown: countdown - 1 + }))); + } + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_recursion/output.toffee"]={bundlePath:"/include_recursion/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_recursion/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("10...9...8...7...6...5...4...3...2...1...blastoff!"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_recursion/output.toffee"] = { + bundlePath: "/include_recursion/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_recursion/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("10...9...8...7...6...5...4...3...2...1...blastoff!"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/input.toffee"]={bundlePath:"/include_techniques/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Chris "})),_to("\n"),_to(""+partial("message.toffee",{from:"Max & Sam"})),_to("\n"),_ts(2),_ts(2),print(partial("message.toffee",{from:"Christian"})),_ts(1),_ts(1),_to(""+partial("message.toffee",{from:"Jennie"})),_ts(2),print(partial("message.toffee",{sender:"The enemy"})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/input.toffee"] = { + bundlePath: "/include_techniques/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_techniques/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("" + (partial("message.toffee", { + from: "Chris " + }))); + _to("\n"); + _ln(2); + _to("" + (partial("message.toffee", { + from: "Max & Sam" + }))); + _to("\n"); + _ln(3); + _ts(2); + _ts(2); + print(partial("message.toffee", { + from: "Christian" + })); + _ts(1); + _ts(1); + _ln(5); + _to("" + (partial("message.toffee", { + from: "Jennie" + }))); + _ts(2); + print(partial("message.toffee", { + sender: "The enemy" + })); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/message.toffee"]={bundlePath:"/include_techniques/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown",_ts(1),_to("From: "),_to(""+(null!=from?escape(from):"")),_to(" \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/message.toffee"] = { + bundlePath: "/include_techniques/message.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var from, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_techniques/message.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + from = from || "Unknown"; + _ts(1); + _ln(3); + _to("From: "); + _to("" + (from != null ? escape(from) : '')); + _to(" \n"); + _ln(4); + _to("Msg: Hello, world\n"); + _ln(5); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/include_techniques/output.toffee"]={bundlePath:"/include_techniques/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/include_techniques/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Chris <ccoyne77@gmail> \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Max & Sam \n"),_to("Msg: Hello, world\n"),_to("\n"),_to("From: Christian \n"),_to("Msg: Hello, world\n"),_to("From: Jennie \n"),_to("Msg: Hello, world\n"),_to("From: Unknown \n"),_to("Msg: Hello, world\n"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/include_techniques/output.toffee"] = { + bundlePath: "/include_techniques/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/include_techniques/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("From: Chris <ccoyne77@gmail> \n"); + _ln(2); + _to("Msg: Hello, world\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("From: Max & Sam \n"); + _ln(5); + _to("Msg: Hello, world\n"); + _ln(6); + _to("\n"); + _ln(7); + _to("From: Christian \n"); + _ln(8); + _to("Msg: Hello, world\n"); + _ln(9); + _to("From: Jennie \n"); + _ln(10); + _to("Msg: Hello, world\n"); + _ln(11); + _to("From: Unknown \n"); + _ln(12); + _to("Msg: Hello, world\n"); + _ln(13); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/indent_attack/input.toffee"]={bundlePath:"/indent_attack/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var i,square,x,__repress,_i,_j,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/indent_attack/input.toffee"),__locals){if(__toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" "),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass1"),_ts(2),_ts(1),_ts(1),_to("Pass2"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass3"),_ts(2),_ts(1),_ts(1),_to("Pass4"),_ts(2),_ts(1),_to("\n"),_to("
    \n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("Pass5"),_ts(2),_ts(1),_ts(1),_to("Pass6"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),print("Pass7"),_ts(1),_ts(1),_to("Pass8"),_ts(2),_ts(1),_to("\n"),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to("...passed with flying colors."),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_ts(2),_ts(2),x=20,x>1)for(i=_i=12;12<=x?_ix;i=12<=x?++_i:--_i)square=16,_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2));if(_ts(1),_to("\n"),_to(" "),_ts(2),_ts(2),x=20,x>1){for(i=_j=12;12<=x?_jx;i=12<=x?++_j:--_j)square=16;_ts(1),_ts(1),_to("Pass"),_to(""+(null!=i?escape(i):"")),_ts(2),_ts(2),i===square&&(_ts(1),_ts(1),_to("(a perfect square)"),_ts(2))}return _ts(1),_to("\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/indent_attack/input.toffee"] = { + bundlePath: "/indent_attack/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var i, square, x, __repress, _i, _j, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/indent_attack/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("
    \n"); + _ln(2); + _to(" "); + _ts(2); + _ts(2); + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(5); + _to("Pass1"); + _ts(2); + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(9); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _ts(1); + _ln(11); + _to("Fail"); + _ts(2); + } + } else { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(14); + _to("Pass2"); + _ts(2); + } + } + } + } + _ts(1); + _ln(15); + _to("\n"); + _ln(16); + _to("
    \n"); + _ln(17); + _to("\n"); + _ln(18); + _ts(2); + _ts(2); + if (1 === 1) { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(21); + _to("Pass3"); + _ts(2); + } + } + } + if (1 === 1) { + if (2 === 3) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(25); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _ts(1); + _ln(27); + _to("Fail"); + _ts(2); + } + } else { + if (2 === 2) { + if (3 === 3) { + _ts(1); + _ts(1); + _ln(30); + _to("Pass4"); + _ts(2); + } + } + } + } + _ts(1); + _ln(31); + _to("\n"); + _ln(32); + _to("
    \n"); + _ln(33); + _to("\n"); + _ln(34); + _ts(2); + _ts(2); + if (10 === 10) { + if (20 === 20) { + if (30 === 30) { + _ts(1); + _ts(1); + _ln(37); + _to("Pass5"); + _ts(2); + } + } + } + if (10 === 10) { + if (20 === 30) { + if (30 === 30) { + _ts(1); + _ts(1); + _ln(41); + _to("Fail"); + _ts(2); + } else { + _ts(1); + _ts(1); + _ln(43); + _to("Fail"); + _ts(2); + } + } else { + if (20 === 20) { + if (30 === 30) { + _ts(1); + _ts(1); + _ln(46); + _to("Pass6"); + _ts(2); + } + } + } + } + _ts(1); + _ln(47); + _to("\n"); + _ln(48); + _to("\n"); + _ln(49); + _ts(2); + _ts(2); + if (99 === 99) { + print('Pass7'); + } else { + print('Fail'); + _ts(1); + _ts(1); + _ln(54); + _to("Fail8"); + _ts(2); + } + _ts(1); + _ts(1); + _ln(55); + _to("Pass8"); + _ts(2); + _ts(1); + _ln(56); + _to("\n"); + _ln(57); + _to("\n"); + _ln(58); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _ln(60); + _to("...passed with flying colors."); + _ts(2); + _ts(1); + _ln(82); + _to("\n"); + _ln(83); + _to("

    \n"); + _ln(84); + _to(" "); + _ts(2); + _ts(2); + x = 20; + if (x > 1) { + for (i = _i = 12; 12 <= x ? _i < x : _i > x; i = 12 <= x ? ++_i : --_i) { + square = 16; + _ts(1); + _ts(1); + _ln(89); + _to("Pass"); + _to("" + (i != null ? escape(i) : '')); + _ts(2); + _ts(2); + if (i === square) { + _ts(1); + _ts(1); + _ln(90); + _to("(a perfect square)"); + _ts(2); + } + } + } + _ts(1); + _ln(92); + _to("\n"); + _ln(93); + _to(" "); + _ts(2); + _ts(2); + x = 20; + if (x > 1) { + for (i = _j = 12; 12 <= x ? _j < x : _j > x; i = 12 <= x ? ++_j : --_j) { + square = 16; + } + _ts(1); + _ts(1); + _ln(98); + _to("Pass"); + _to("" + (i != null ? escape(i) : '')); + _ts(2); + _ts(2); + if (i === square) { + _ts(1); + _ts(1); + _ln(99); + _to("(a perfect square)"); + _ts(2); + } + } + _ts(1); + _ln(101); + _to("\n"); + _ln(102); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/indent_attack/output.toffee"]={bundlePath:"/indent_attack/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/indent_attack/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
    \n"),_to(" Pass1Pass2\n"),_to("
    \n"),_to("\n"),_to("Pass3Pass4\n"),_to("
    \n"),_to("\n"),_to("Pass5Pass6\n"),_to("\n"),_to("Pass7Pass8\n"),_to("\n"),_to("...passed with flying colors.\n"),_to("

    \n"),_to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"),_to(" Pass20\n"),_to("

    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/indent_attack/output.toffee"] = { + bundlePath: "/indent_attack/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/indent_attack/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("
    \n"); + _ln(2); + _to(" Pass1Pass2\n"); + _ln(3); + _to("
    \n"); + _ln(4); + _to("\n"); + _ln(5); + _to("Pass3Pass4\n"); + _ln(6); + _to("
    \n"); + _ln(7); + _to("\n"); + _ln(8); + _to("Pass5Pass6\n"); + _ln(9); + _to("\n"); + _ln(10); + _to("Pass7Pass8\n"); + _ln(11); + _to("\n"); + _ln(12); + _to("...passed with flying colors.\n"); + _ln(13); + _to("

    \n"); + _ln(14); + _to(" Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19\n"); + _ln(15); + _to(" Pass20\n"); + _ln(16); + _to("

    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/junk/input.toffee"]={bundlePath:"/junk/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var supplies,supply,__repress,_i,_len,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/junk/input.toffee"),__locals){for(__toffee.out=[],_ts(1),_ts(2),supplies=["broom","mop","vacuum"],_ts(1),_to("
      \n"),_to(" "),_ts(2),_ts(2),_i=0,_len=supplies.length;_i<_len;_i++)supply=supplies[_i],_ts(1),_ts(1),_to("
    • "),_to(""+(null!=supply?escape(supply):"")),_to("
    • "),_ts(2);return _ts(1),_to("\n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res}},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/junk/input.toffee"] = { + bundlePath: "/junk/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var supplies, supply, __repress, _i, _len, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/junk/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + supplies = ["broom", "mop", "vacuum"]; + _ts(1); + _ln(3); + _to("
      \n"); + _ln(4); + _to(" "); + _ts(2); + _ts(2); + for (_i = 0, _len = supplies.length; _i < _len; _i++) { + supply = supplies[_i]; + _ts(1); + _ts(1); + _to("
    • "); + _to("" + (supply != null ? escape(supply) : '')); + _to("
    • "); + _ts(2); + } + _ts(1); + _to("\n"); + _ln(5); + _to("
    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/junk/output.toffee"]={bundlePath:"/junk/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/junk/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("
      \n"),_to("
    • broom
    • mop
    • vacuum
    • \n"),_to("
    "),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/junk/output.toffee"] = { + bundlePath: "/junk/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/junk/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("
      \n"); + _ln(2); + _to("
    • broom
    • mop
    • vacuum
    • \n"); + _ln(3); + _to("
    "); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/lambda_fns/input.toffee"]={bundlePath:"/lambda_fns/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var echo_it,print_it,print_it_twice,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(t){return __locals.__toffee.out.push(t)},_ln=function(t){return __locals.__toffee.lineno=t},_ts=function(t){return __locals.__toffee.state=t},toffee.__augmentLocals(__locals,"/lambda_fns/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),print_it=function(t){return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2)},print_it_twice=function(t){var _;return _ts(1),_ts(1),_to(""+(null!=t?escape(t):"")),_ts(2),_=t,_ts(1),_ts(1),_to(""+(null!=_?escape(_):"")),_ts(2)},echo_it=function(t){var _;return _=t},print_it("Pass"),print_it_twice("Pass"),print(echo_it("Pass")),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/lambda_fns/input.toffee"] = { + bundlePath: "/lambda_fns/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var echo_it, print_it, print_it_twice, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/lambda_fns/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + print_it = function(msg) { + _ts(1); + _ts(1); + _ln(2); + _to("" + (msg != null ? escape(msg) : '')); + return _ts(2); + }; + print_it_twice = function(msg) { + var m; + _ts(1); + _ts(1); + _ln(5); + _to("" + (msg != null ? escape(msg) : '')); + _ts(2); + m = msg; + _ts(1); + _ts(1); + _ln(7); + _to("" + (m != null ? escape(m) : '')); + return _ts(2); + }; + echo_it = function(msg) { + var v; + v = msg; + return v; + }; + print_it("Pass"); + print_it_twice("Pass"); + print(echo_it("Pass")); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/lambda_fns/output.toffee"]={bundlePath:"/lambda_fns/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/lambda_fns/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("PassPassPassPass"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/lambda_fns/output.toffee"] = { + bundlePath: "/lambda_fns/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/lambda_fns/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("PassPassPassPass"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/foo.toffee"]={bundlePath:"/multiline_interpolation/foo.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/foo.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof a&&null!==a?escape(a):"")),_to(" "),_to(""+("undefined"!=typeof b&&null!==b?escape(b):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/foo.toffee"] = { + bundlePath: "/multiline_interpolation/foo.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/multiline_interpolation/foo.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("" + (typeof a !== "undefined" && a !== null ? escape(a) : '')); + _to(" "); + _to("" + (typeof b !== "undefined" && b !== null ? escape(b) : '')); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/input.toffee"]={bundlePath:"/multiline_interpolation/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+escape("Hello, "+"world")),_to("\n"),_to("
    \n"),_to(""+partial("foo.toffee",{a:"Goodbye"+",",b:"world"})),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/input.toffee"] = { + bundlePath: "/multiline_interpolation/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/multiline_interpolation/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("" + (escape("Hello, " + "world"))); + _ln(4); + _to("\n"); + _ln(5); + _to("
    \n"); + _ln(6); + _to("" + (partial("foo.toffee", { + a: "Goodbye" + ',', + b: "world" + }))); + _ln(10); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/multiline_interpolation/output.toffee"]={bundlePath:"/multiline_interpolation/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/multiline_interpolation/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hello, world\n"),_to("
    \n"),_to("Goodbye, world"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/multiline_interpolation/output.toffee"] = { + bundlePath: "/multiline_interpolation/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/multiline_interpolation/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("Hello, world\n"); + _ln(2); + _to("
    \n"); + _ln(3); + _to("Goodbye, world"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const1.toffee"]={bundlePath:"/passback/const1.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const1.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx1",passback.vy="vy1",passback.x="oh shit",passback.y="oh noze",_ts(1),_to("\n"),_to("This should output (1)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const1.toffee"] = { + bundlePath: "/passback/const1.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const1.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vx = "vx1"; + passback.vy = "vy1"; + passback.x = "oh shit"; + passback.y = "oh noze"; + _ts(1); + _ln(6); + _to("\n"); + _ln(7); + _to("This should output (1)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const2.toffee"]={bundlePath:"/passback/const2.toffee"},tmpl.render=tmpl.pub=function(__locals){var vx,vy,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const2.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vz="vz2",vx="Should not set.",vy="Should not set.",_ts(1),_to("\n"),_to("This should not output (2)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const2.toffee"] = { + bundlePath: "/passback/const2.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var vx, vy, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const2.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vz = "vz2"; + vx = "Should not set."; + vy = "Should not set."; + _ts(1); + _ln(5); + _to("\n"); + _ln(6); + _to("This should not output (2)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const3.toffee"]={bundlePath:"/passback/const3.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const3.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx3",passback.vy="vy3",_ts(1),_to("\n"),_to("This should not output (3)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const3.toffee"] = { + bundlePath: "/passback/const3.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const3.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback["vx"] = "vx3"; + passback["vy"] = "vy3"; + _ts(1); + _ln(4); + _to("\n"); + _ln(5); + _to("This should not output (3)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const4.toffee"]={bundlePath:"/passback/const4.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const4.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4",passback.vy="vy4",partial("./const4_sub.toffee"),_ts(1),_to("\n"),_to("This should not output (4)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const4.toffee"] = { + bundlePath: "/passback/const4.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const4.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vx = "vx4"; + passback.vy = "vy4"; + partial("./const4_sub.toffee"); + _ts(1); + _ln(5); + _to("\n"); + _ln(6); + _to("This should not output (4)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const4_sub.toffee"]={bundlePath:"/passback/const4_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const4_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx4_sub",passback.vy="vy4_sub",_ts(1),_to("\n"),_to("This should not output (4_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const4_sub.toffee"] = { + bundlePath: "/passback/const4_sub.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const4_sub.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vx = "vx4_sub"; + passback.vy = "vy4_sub"; + _ts(1); + _ln(4); + _to("\n"); + _ln(5); + _to("This should not output (4_sub)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const5.toffee"]={bundlePath:"/passback/const5.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/const5.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5",passback.vy="vy5",print(load("./const5_sub.toffee")),passback.vx=vx,passback.vy=vy,_ts(1),_to("\n"),_to("This should not output (5)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const5.toffee"] = { + bundlePath: "/passback/const5.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const5.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vx = "vx5"; + passback.vy = "vy5"; + print(load("./const5_sub.toffee")); + passback.vx = vx; + passback.vy = vy; + _ts(1); + _ln(7); + _to("\n"); + _ln(8); + _to("This should not output (5)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/const5_sub.toffee"]={bundlePath:"/passback/const5_sub.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/const5_sub.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),passback.vx="vx5_sub",passback.vy="vy5_sub",_ts(1),_to("\n"),_to("This should not output (5_sub)."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/const5_sub.toffee"] = { + bundlePath: "/passback/const5_sub.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/const5_sub.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + passback.vx = "vx5_sub"; + passback.vy = "vy5_sub"; + _ts(1); + _ln(4); + _to("\n"); + _ln(5); + _to("This should not output (5_sub)."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/input.toffee"]={bundlePath:"/passback/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/passback/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+partial("./const1.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const2.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const3.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const4.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_to("\n"),_to(""+load("./const5.toffee")),_to("\n"),_to("vx,vy,vz = "),_to(""+("undefined"!=typeof vx&&null!==vx?escape(vx):"")),_to(","),_to(""+("undefined"!=typeof vy&&null!==vy?escape(vy):"")),_to(","),_to(""+("undefined"!=typeof vz&&null!==vz?escape(vz):"")),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/input.toffee"] = { + bundlePath: "/passback/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _to("\n"); + _ln(2); + _to("" + (partial("./const1.toffee"))); + _to("\n"); + _ln(3); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _to("\n"); + _ln(4); + _to("" + (load("./const2.toffee"))); + _to("\n"); + _ln(5); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _to("\n"); + _ln(6); + _to("" + (load("./const3.toffee"))); + _to("\n"); + _ln(7); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _to("\n"); + _ln(8); + _to("" + (load("./const4.toffee"))); + _to("\n"); + _ln(9); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _to("\n"); + _ln(10); + _to("" + (load("./const5.toffee"))); + _to("\n"); + _ln(11); + _to("vx,vy,vz = "); + _to("" + (typeof vx !== "undefined" && vx !== null ? escape(vx) : '')); + _to(","); + _to("" + (typeof vy !== "undefined" && vy !== null ? escape(vy) : '')); + _to(","); + _to("" + (typeof vz !== "undefined" && vz !== null ? escape(vz) : '')); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/passback/output.toffee"]={bundlePath:"/passback/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/passback/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("vx,vy,vz = vx0,,\n"),_to("\n"),_to("This should output (1).\n"),_to("vx,vy,vz = vx1,vy1,\n"),_to("\n"),_to("vx,vy,vz = vx1,vy1,vz2\n"),_to("\n"),_to("vx,vy,vz = vx3,vy3,vz2\n"),_to("\n"),_to("vx,vy,vz = vx4,vy4,vz2\n"),_to("\n"),_to("vx,vy,vz = vx5_sub,vy5_sub,vz2"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/passback/output.toffee"] = { + bundlePath: "/passback/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/passback/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("vx,vy,vz = vx0,,\n"); + _ln(2); + _to("\n"); + _ln(3); + _to("This should output (1).\n"); + _ln(4); + _to("vx,vy,vz = vx1,vy1,\n"); + _ln(5); + _to("\n"); + _ln(6); + _to("vx,vy,vz = vx1,vy1,vz2\n"); + _ln(7); + _to("\n"); + _ln(8); + _to("vx,vy,vz = vx3,vy3,vz2\n"); + _ln(9); + _to("\n"); + _ln(10); + _to("vx,vy,vz = vx4,vy4,vz2\n"); + _ln(11); + _to("\n"); + _ln(12); + _to("vx,vy,vz = vx5_sub,vy5_sub,vz2"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/plaintext/input.toffee"]={bundlePath:"/plaintext/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/plaintext/input.toffee"] = { + bundlePath: "/plaintext/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/plaintext/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("Hi there."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/plaintext/output.toffee"]={bundlePath:"/plaintext/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/plaintext/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Hi there."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/plaintext/output.toffee"] = { + bundlePath: "/plaintext/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/plaintext/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("Hi there."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/post_process/buncha_junk.toffee"]={bundlePath:"/post_process/buncha_junk.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/buncha_junk.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/post_process/buncha_junk.toffee"] = { + bundlePath: "/post_process/buncha_junk.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/post_process/buncha_junk.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("T3246h354is345-i3245s345-534a534-h534i543d534d534e534n543-m534e543s543s543ag5e534.543"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/post_process/input.toffee"]={bundlePath:"/post_process/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var clean,reverse,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+("undefined"!=typeof greeting&&null!==greeting?escape(greeting):"")),_to(", world. \n"),_to(""+partial("./signature.toffee")),_to("\n"),_ts(2),_ts(2),reverse=function(e){var t;return function(){var _,o;for(o=[],_=e.length-1;_>=0;_+=-1)t=e[_],o.push(t);return o}().join("")},clean=function(e){var t;return function(){var _,o,n;for(n=[],_=0,o=e.length;_= 0; _i += -1) { + c = s[_i]; + _results.push(c); + } + return _results; + })()).join(""); + }; + clean = function(s) { + var c; + return ((function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = s.length; _i < _len; _i++) { + c = s[_i]; + if (c.match(/[a-z\-]/gi)) { + _results.push(c); + } + } + return _results; + })()).join(""); + }; + _ts(1); + _ln(6); + _to("\n"); + _ln(7); + _to("" + (partial('./buncha_junk.toffee', { + postProcess: function(s) { + return reverse(clean(s)); + } + }))); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/post_process/output.toffee"]={bundlePath:"/post_process/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("This-is-a-hidden-message\n"),_to("\n"),_to(".dlrow leurc ,eybdooG\n"),_to(" .dlrow ,olleH"),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/post_process/output.toffee"] = { + bundlePath: "/post_process/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/post_process/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("This-is-a-hidden-message\n"); + _ln(2); + _to("\n"); + _ln(3); + _to(".dlrow leurc ,eybdooG\n"); + _ln(4); + _to(" .dlrow ,olleH"); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/post_process/signature.toffee"]={bundlePath:"/post_process/signature.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/post_process/signature.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("Goodbye, cruel world."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/post_process/signature.toffee"] = { + bundlePath: "/post_process/signature.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/post_process/signature.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("Goodbye, cruel world."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/render_no_args/input.toffee"]={bundlePath:"/render_no_args/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/render_no_args/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("No arguments passed."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/render_no_args/input.toffee"] = { + bundlePath: "/render_no_args/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/render_no_args/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("No arguments passed."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/render_no_args/output.toffee"]={bundlePath:"/render_no_args/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/render_no_args/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("No arguments passed."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/render_no_args/output.toffee"] = { + bundlePath: "/render_no_args/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/render_no_args/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("No arguments passed."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/snippets/foo/bar/body.toffee"]={bundlePath:"/snippets/foo/bar/body.toffee"},tmpl.render=tmpl.pub=function(__locals){var msg,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/bar/body.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),msg=msg||"Unknown message",print(msg),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/foo/bar/body.toffee"] = { + bundlePath: "/snippets/foo/bar/body.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var msg, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/snippets/foo/bar/body.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + msg = msg || "Unknown message"; + print(msg); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/snippets/foo/message.toffee"]={bundlePath:"/snippets/foo/message.toffee"},tmpl.render=tmpl.pub=function(__locals){var from,msg,__repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/foo/message.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(2),from=from||"Unknown sender",msg=msg||"Unknown message.",print("From: "+from+"\n"+snippet("./bar/body.toffee",{msg:msg})),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/foo/message.toffee"] = { + bundlePath: "/snippets/foo/message.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var from, msg, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/snippets/foo/message.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + from = from || "Unknown sender"; + msg = msg || "Unknown message."; + print("From: " + from + "\n" + (snippet('./bar/body.toffee', { + msg: msg + }))); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/snippets/input.toffee"]={bundlePath:"/snippets/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to(""+partial("./foo/message.toffee")),_to("\n"),_to(""+escape(snippet("./foo/message.toffee"))),_to("\n"),_to(""+partial("./foo/message.toffee",{from:"Sam"})),_to("\n"),_to(""+escape(snippet("./foo/message.toffee",{from:"Max"}))),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/input.toffee"] = { + bundlePath: "/snippets/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/snippets/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("" + (partial("./foo/message.toffee"))); + _to("\n"); + _ln(2); + _to("" + (escape(snippet("./foo/message.toffee")))); + _to("\n"); + _ln(3); + _to("" + (partial("./foo/message.toffee", { + from: "Sam" + }))); + _to("\n"); + _ln(4); + _to("" + (escape(snippet("./foo/message.toffee", { + from: "Max" + })))); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/snippets/output.toffee"]={bundlePath:"/snippets/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(e){return __locals.__toffee.out.push(e)},_ln=function(e){return __locals.__toffee.lineno=e},_ts=function(e){return __locals.__toffee.state=e},toffee.__augmentLocals(__locals,"/snippets/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("From: Preloaded sender\n"),_to("Preloaded message.\n"),_to("From: Unknown sender\n"),_to("Unknown message.\n"),_to("From: Sam\n"),_to("Preloaded message.\n"),_to("From: Max\n"),_to("Unknown message."),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/snippets/output.toffee"] = { + bundlePath: "/snippets/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/snippets/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("From: Preloaded sender\n"); + _ln(2); + _to("Preloaded message.\n"); + _ln(3); + _to("From: Unknown sender\n"); + _ln(4); + _to("Unknown message.\n"); + _ln(5); + _to("From: Sam\n"); + _ln(6); + _to("Preloaded message.\n"); + _ln(7); + _to("From: Max\n"); + _ln(8); + _to("Unknown message."); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/special_cases/input.toffee"]={bundlePath:"/special_cases/input.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/input.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_ts(2),_ts(2),_ts(1),_ts(1),_to('"'+'PASSED"'),_ts(2),_ts(1),_to("\n"),_ts(2),_ts(1),_to("\n"),_to("

    \n"),_to(" "),_to(""+print(""+"click & clack")),_to("\n"),_to("

    \n"),_ts(2),_ts(1),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); +(function() { + var tmpl; + + tmpl = toffee.templates["/special_cases/input.toffee"] = { + bundlePath: "/special_cases/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/special_cases/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(5); + _to("\n"); + _ln(6); + _ts(2); + _ts(2); + _ts(1); + _ts(1); + _ln(7); + _to('"' + "PASSED" + '"'); + _ts(2); + _ts(1); + _ln(8); + _to("\n"); + _ln(9); + _ts(2); + _ts(1); + _ln(13); + _to("\n"); + _ln(14); + _to("

    \n"); + _ln(15); + _to(" "); + _to("" + (print("" + 'click & clack' + ""))); + _to("\n"); + _ln(16); + _to("

    \n"); + _ln(17); + _ts(2); + _ts(1); + _ln(21); + _to("\n"); + _ln(22); + _to("A backslash is a \\\n"); + _ln(23); + _to(""); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; -(function(){var tmpl;if(tmpl=toffee.templates["/special_cases/output.toffee"]={bundlePath:"/special_cases/output.toffee"},tmpl.render=tmpl.pub=function(__locals){var __repress,_ln,_ref,_to,_ts;with(__locals=__locals||{},__repress=null!=(_ref=__locals.__toffee)?_ref.repress:void 0,_to=function(_){return __locals.__toffee.out.push(_)},_ln=function(_){return __locals.__toffee.lineno=_},_ts=function(_){return __locals.__toffee.state=_},toffee.__augmentLocals(__locals,"/special_cases/output.toffee"),__locals)return __toffee.out=[],_ts(1),_ts(1),_to("\n"),_to('"'+'PASSED"\n'),_to("\n"),_to("

    \n"),_to(" click & clack\n"),_to("

    \n"),_to("\n"),_to("A backslash is a \\\n"),_to(""),_ts(2),__toffee.res=__toffee.out.join(""),"undefined"!=typeof postProcess&&null!==postProcess&&(__toffee.res=postProcess(__toffee.res)),__repress?"":__toffee.res},"undefined"!=typeof __toffee_run_input&&null!==__toffee_run_input)return tmpl.pub(__toffee_run_input)}).call(this); \ No newline at end of file +(function() { + var tmpl; + + tmpl = toffee.templates["/special_cases/output.toffee"] = { + bundlePath: "/special_cases/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/special_cases/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to('"' + "PASSED\"\n"); + _ln(3); + _to("\n"); + _ln(4); + _to("

    \n"); + _ln(5); + _to(" click & clack\n"); + _ln(6); + _to("

    \n"); + _ln(7); + _to("\n"); + _ln(8); + _to("A backslash is a \\\n"); + _ln(9); + _to(""); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); diff --git a/test/express3/public/javascripts/toffee.js b/test/express3/public/javascripts/toffee.js index 964dbde..d9213c1 100644 --- a/test/express3/public/javascripts/toffee.js +++ b/test/express3/public/javascripts/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f'); } }; @@ -26,7 +26,7 @@ toffee.__raw = function(locals, o) { }; toffee.__html = function(locals, o) { - return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, ''); }; toffee.__escape = function(locals, o) { diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 07fa3e8..0f9cdc5 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -133,9 +133,11 @@ You have 3 female friends.
    diff --git a/test/run_cases.iced b/test/run_cases.iced index 904eb1c..f575362 100644 --- a/test/run_cases.iced +++ b/test/run_cases.iced @@ -10,12 +10,6 @@ regular_engine = new engine({ prettyPrintErrors: false }) -minimized_engine = new engine({ - verbose: false - prettyPrintErrors: false - minimize: true -}) - # --------------------------------------------------------------- MULTI_RUNS = 50 @@ -95,10 +89,6 @@ go = -> console.log "Regular Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" await run_multiple_runs regular_engine, MULTI_RUNS, defer err, time, tests_run console.log "Regular Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - await run_all_case_dirs minimized_engine, defer err, time, tests_run - console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} cold tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" - await run_multiple_runs minimized_engine, MULTI_RUNS, defer err, time, tests_run - console.log "Minimized (browser) Engine: SUCCESS for #{tests_run} hot tests in #{time}ms (#{(time/tests_run).toFixed 2}ms/test)" await run_express_test defer() process.exit 0 diff --git a/toffee.js b/toffee.js index 964dbde..d9213c1 100644 --- a/toffee.js +++ b/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f'); } }; @@ -26,7 +26,7 @@ toffee.__raw = function(locals, o) { }; toffee.__html = function(locals, o) { - return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, ''); }; toffee.__escape = function(locals, o) { From 5fd1722a1dbbdf3c42ed18b505c186888bfef390 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Fri, 9 Jun 2017 11:10:36 -0400 Subject: [PATCH 148/163] added a few more control chars. removed deprecated SIGNED.md. version bump. --- SIGNED.md | 243 --------------------- lib/view.js | 2 +- package.json | 2 +- src/view.coffee | 10 + test/express3/public/javascripts/toffee.js | 4 +- toffee.js | 4 +- 6 files changed, 16 insertions(+), 249 deletions(-) delete mode 100644 SIGNED.md diff --git a/SIGNED.md b/SIGNED.md deleted file mode 100644 index 67ebc2e..0000000 --- a/SIGNED.md +++ /dev/null @@ -1,243 +0,0 @@ -##### Signed by https://keybase.io/chris -``` ------BEGIN PGP SIGNATURE----- -Version: GnuPG/MacGPG2 v2.0.22 (Darwin) -Comment: GPGTools - https://gpgtools.org - -iQIcBAABCgAGBQJToFs5AAoJENIkQTsc+mSQTpUP/2JLLdKyFlXRetWbRQd770cL -q2wKmmtu0oxG3kMjRrvnB2lS2Qxjtu0imXcIl8hqObtx2ScI+buk/DbdS0gZ1RmW -DM10MDYzoWQRAZ6sUKLcStQGP4lEpq6wYeAqWxf7N8aX8kKgkJoUsirq8w7NeosB -72EPYAd/Eth3ka0WdMf/KU8w1bpnC77nAxExlCafJ8enCZx3R8236Cy1LbGZ86v/ -Ob1FQkLD1Um+gY4mndd9s3FU4kxPJF9ISchdpHCxIq0kE7qHBGZejozjP4J1xr2U -HEwvOGN4s40k62jIEGmLzvqj87BaCplWLHtl7oV3d5ZTFSUkFoVaXKsvXlSDzAUw -uJGt2j30++C51b8vDZvX9nnegULXzNA/rnTa1zubvk2w2jDE0VT3+/ySWLRTwNHz -2e1aEWr7SL75bvi+nCCHQKYJiWuB7Xc6i+DUM6nlPxUuvFdnLTW8CV1lBtwbd9gW -7XOij+9mF3LsAaeZ+XzvLwoLE+aMpIaqIJpOi1JVoafWBnk1/O7+hHxkWKFjKJXv -3sbnG+4KpMw+YTUN35htLBiT+8V76JmsvArUYjTlkpg1x67Vv58jlhucIxOKQfaq -khnfmNA3HuPCHOTDyMBaa7LEPRU53GbhU3Y0W9PsZKI/KG1LfUP+0iPT8o4AlAT/ -6gmBoAw7Qud8v7mbvpmE -=Dlsg ------END PGP SIGNATURE----- - -``` - - - -### Begin signed statement - -#### Expect - -``` -size exec file contents - ./ -24 .gitignore 4419468a0a62e000bee4fab5c85876e287a6313001de5c9305bf849488829314 -13 .kbignore f1a9a09b226cf8e98a4286200c5d9ebd5c28924707ac3317947f8ecf06ab167b -1800 Cakefile 2f3b1709f19ace9827bfd464d141382ff01b7f86d45cd1faed6bfee906fdcd9a -1079 LICENSE edb721bca3cfa08423f93741d60300f28350af960238477fe89826e19fc3dfa9 -13715 README.md 44a697135c4145b598a812e7d904781faf772d384e8859c2767fea4be8afffb4 - bin/ -57 toffee 616023d8f8b8dbb5450051ddc21c8887829fba38dc3341feaaa3ffd5afd3ee8c -3073 index.coffee 6e43b294bbee4b1f22327ae31d154bda633bc003b6e9345fabf9d8741191f07e -2778 index.js 256cbe97d8d3895f8867e27045811b81b1fe50c2ec09fb8e71bc1f5c90f3c90e - lib/ -0 README.md e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - coffee-script/ -2313 browser.js 3a8acdd99e1fd83dd6fea7ef373e5f8255a8dc5f8fa1bcb21e0426598ac9b4b7 -2970 cake.js ded7e20bfe4b8e2112b07a37c2fdc61bd4da21fb2e71deab72975d04c0fe126d -4831 coffee-script.js 27975b854116004d266f10f49ac1072912a94b004d368187f2f4f40926c1d644 -15518 command.js f005bdbfb4d5b35be6e20e283dddb20d96be056415712a6411f8b338528368f5 -18038 grammar.js c65d4fd04403bf823c51567749a5caca1a3e5987f73e3f1abea58462cbbfd0ad -1752 helpers.js 750cf58eba15b5070844a34ac5f5f37dc6fdbfbb4cfcd53c3f63574fb554b73f -196 index.js 6a8b57040e86aeaa2a2f2553454dd89246c6d5d666ae51542f022343d10fbb67 -25558 lexer.js 1ab66ee1ec19c0a6831ffc279a529f80677357dc14d3498b00b227f12e98945d -91732 nodes.js ad6999209ccbd157ba6f67aaaeca6ceca2db3805f2a3fd21cebfa95e2cb47408 -4141 optparse.js 6213d5ca1dc72cb0c98ceea0c7df30bbc0dc146d1304c9c46d22dd1434145573 -104572 x parser.js 8bd20f0ae5104feeb1de543dabb5e130194d4e96db75516d20201f31e6ac7823 -6135 repl.js 759e4ea22666f17c242afa77c2d9b8f1ecacea6fd84ef6baf60bfae22703d38e -13147 rewriter.js 60953a1842db7d19552b4707d7f29d74ef6d43ffc8eae8a2711689034790a154 -3696 scope.js 1cdf8a1b877644a9a23dccedcaaa51561ddf3d352fe178499cba0082daa50c3a -5706 command_line.js 1569632c69e36cbf6f9da16486b20972a7b5e362636a55d278650bca0aeb7c83 -209 consts.js 7973d407737548d3de549250f031d454989597dd9538684dde119099cd361de7 -14171 engine.js edd6e4f7d876a0bcaf62e5d649adf4f59973c86b42f9fb36e6433454a3554590 -12366 errorHandler.js 273739c9ef121e9620eb12757727d956cefe063b00d1c14d0c5d5682df9cf749 -571 pool.js 2f83097467cbde33e9f1d091a6e31b524ea43bf9e97ef05ba35ae641182f3e90 -23739 toffee_lang.js e875ff2e17aa6977a5613409c46e4d775c1551676173b69dced7f53e391501f1 -1733 utils.js b9e0d093afed0c282195365fd5c90e2f4c93d9860ce24807d55d510cdd5ae042 -25159 view.js a5a79dc59f9ca375c67baacb6b4048595c5867d74a32a3fe87553605f8496f4c -860 package.json 2cd00d299ada6fd0cdceed5e12dda24de7625e8a63bea84935702e5734ed2160 - src/ -5155 command_line.coffee 707f1df79cc865f4096ab19ccadfe0c0a627a74093c2e5b56a94011ac8a99bc3 -197 consts.coffee 2f1c1ecef13818b126d49cc7eb0568019a1f5e46cee28164321d496c93568a2e -10749 engine.coffee 7b8d66073adecaa4231df5122f4e41df20a294f02f38ea78b0629c2c0a62d26a -8853 errorHandler.coffee 997fb14e397541edde3d8567008099b54d976bce4ccf6034449e13d66b883828 -270 pool.coffee b493416ba61c6d2f98b713b7f30cc8002142c26205be21653a00f7c11ea1b6c4 -2604 toffee.jison 8d040196ea79ed3676b5874f8d85da3849cc3ad82ecaeba212a4194033bfb72e -1227 utils.coffee efd639a91f7cca74fdc138743aeb572bcaffc2c151d9a8a89bf31e3d3c798873 -19034 view.coffee f57989990e08deb868c247af945b67999791d783cf51db68a481ff69971488c0 - test/ - cases/ - big_file/ -2456 input.toffee 02bcbba28b6754a3cdc72481960efc7a3bd6ede131d426fea62f9f32e26a2259 -2156 output.toffee 80467ff63e3e8233fbeffe8b0da2fbb96e5384045e60a4f8c59809efcb090156 - comments/ -317 input.toffee e20c9441fa793370b167b00b73fbc956d060da7a7162c43c152c03784ec6fdca -24 output.toffee 5d4c2d98524149b07d2986f0475a83a382d73b1cf5840d42c0e4c4c176e18d07 -24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 - custom_escape/ -206 input.toffee 9e4f25cfdc84dd1a38bace63034d4c56d7a67baac58ae66dc43082a349e170b1 -115 output.toffee 822f9b4a37b1c5a7f61bf354c5f52e7e090eaea13534a3411d94528b2509da89 -53 vars.coffee 265ec2c5e35604fffa79a41d97a626da7a1e69c685b0a2adffd55a5c172bea0c - eco_compare/ -617 input.toffee 456626b2d9c49c4291c5b64df547214acc210ae67335a59e0d2a3e92784baea8 -203 output.toffee bc5e3025cc24a38bc7aec447a9b4a69731c4f07366a44dab13b31779175e9059 - escape/ -1038 input.toffee 0cc9d7afb9aa641f451bc4d55a55b071e0d66be5019c931d705f83864851e6aa -895 output.toffee adaf052e1974dd16a3d203cf0c51a028af102de0929eebe411eb43f2f05ad0e2 - hello_world/ -19 input.toffee 43b2a2d9caf2b2fd07e0c9f6651e1d8dbe693b597ed4c41b41ae6e215730b939 -13 output.toffee f8c3bf62a9aa3e6fc1619c250e48abe7519373d3edf41be62eb5dc45199af2ef -28 temp.toffee 7088f0e7c3207ed5dde1a969035b83241d4ec62a6db679f105dd55d0e5eb1735 -24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 - include_order/ -20 child.toffee c2ee155aeb89085add713694bdadd2f92a0e6a6d89b054a6b448c75c1bc2cbf8 -79 input.toffee 785d474720d378a28724003b1d94131ff3f724974a63a0f094d95871d9ebd7f8 -14 output.toffee a711de3fcda696d28cab35f732d690ee8c446cc8af8a2049d7d3c41d907a7e22 -24 vars.js b33c05dd9eb5542775e403128e8ef18ba4e28f0969b14d7808eb05731f69aa27 - include_recursion/ -127 input.toffee a8e2eace272f32f2fc6598c39b518177411ff3bf8008693829f765dbc4c137dd -50 output.toffee 2061768abd3870bd58c6002650f4ebae501fc06495c9a89797475393d5510561 -21 vars.js 438a45f3c507117768bb5af1ad27dc604a8a7398e2faf907814630821eed032b - include_techniques/ -274 input.toffee 51a9fc1e20887218aa74a123b3b634f1b96ad03c9dc0bd85bde87c3fec1f5427 -68 message.toffee f866e3afbbc0db4e394d2d6832eb597be91b36d67115bd9042e5f8989965d176 -200 output.toffee dc2bc1b481a6a15f07b66a12c7ba102394bbeda7ef4a4e86f05a21d14d3596d0 -3 vars.js 8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede - indent_attack/ -1762 input.toffee 59dd9a39b05767cb8c80b11b1113420ce2c753d2fe661f4f32b104693a2555fc -192 output.toffee 0ff715dc431004bf322d551c81dde757f93615a80a9e412d5bf2d68bde5ba65a -3 vars.js 8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede - junk/ -109 input.toffee 55aa69e33431cf820634507ff2ad2c6afa3a3327e9177f37335f8c4ac4f8bcb0 -54 output.toffee 0714ffef629025cb57726e48e70ebab15d1bac4bbac0f04594e660ffef40bde3 - lambda_fns/ -239 input.toffee 0e4e340bd240dee1b4dafcb9a675181a5b73d898d177306a90b02e167deac5f7 -16 output.toffee 60046c735d209935d8c864d2959fe28ab28f3de0be88f5420393a90d72c584aa - multiline_interpolation/ -9 foo.toffee 5cc9132ad0c9fb8c41737ac2d4effad0d5b8cc984974335fc41524c0c9b48670 -114 input.toffee 9823b223ef8a1a97b56dccf838f644923fbd1a5dfdd58fa0bbff7910973bfb6e -34 output.toffee 4dbeb1b85a92efda6539abba91e9d99a2f10ba08729dca4cc6718b780d7c5020 - passback/ -125 const1.toffee 3ec02d5e9ca6eda8a51cd0dd8f0fc3cfade310c1542cf3b520256129b0ccd844 -123 const2.toffee 200fcd238ff2636694509ede71f39ec17e4bc59d8db3382dcdf2a3463a3211d7 -85 const3.toffee c4f83cf02233af721f1121859d0ed4f18750fab2eed36fabf83e532c3731f115 -112 const4.toffee a5c93df2c2f412f34abbc97a94bde44619a394a6cee74d9345c9f8fb200caf8b -91 const4_sub.toffee d9ef89bbfdae1b61eeb1330a6c279b4170239b05ff8e0c86d13a8e5ff133ea56 -155 const5.toffee 2e5d632e15032f5a961a8c45f3d0ffba7c9ad71049a3082c6221cb64d6f881ed -91 const5_sub.toffee ad76455adf05740f87cb8b3e73d96cfffa47206251e34e8c7c7b1c31a21181d4 -306 input.toffee 1a7703ce985d3d1a01c9ca2435e97404d87ceda441d1508ce3f634434d6216e9 -165 output.toffee d266a8a2089f3f8a2e347d877849d65d741a11b72b407cfcf93d6c4c97b67446 -31 vars.js e76ba466c6bfa9787e11470b905bff9bb66da1c8462e430aa96445d6ba3c8a35 - plaintext/ -9 input.toffee 9e553732ce6857dab01b48ff43f7e36034745dd58097f55fb78478ab1db6c480 -9 output.toffee 9e553732ce6857dab01b48ff43f7e36034745dd58097f55fb78478ab1db6c480 - post_process/ -85 buncha_junk.toffee 3b30ce356aacf38faae0ca2025aeb22f03d4bb425d53954bb275ff4a5a73bffd -248 input.toffee d652f27762cb371ba84fd433c3f6b4bfe69a31b8dc87a0a021a6cd942f260fc6 -62 output.toffee a78e23a6435957626eece7232ce61784abaa0debd42d3d38c9e623020c060833 -21 signature.toffee b93c52abf45bca4a79c77de08ccc0030735dc52dee35c8ccb58046d94961de59 -74 vars.coffee 1b6e71bbd50ef6a4dc7c2c683c46d81dac89c0c06d458730e741b8e31c9494d3 - render_no_args/ -20 input.toffee a1496fb7a9ce860b101a5fece46d6da21e37791efe4aee33c0ae2fe4081af5a4 -20 output.toffee a1496fb7a9ce860b101a5fece46d6da21e37791efe4aee33c0ae2fe4081af5a4 - snippets/ - foo/ - bar/ -51 body.toffee fe64622c0935021bbfd52bfef5192bd285175ae6da19c74a2b2613fdd113eee7 -157 message.toffee 937e58afb29e39f9293d6e537d7640edab19a87f4a68cd9ef19d57d80a126ca1 -169 input.toffee 830382a921281cca5c9080b004c469c65ab72585a91e33438df1fa425c7b0e58 -135 output.toffee 855ce927d562d24287a692902ee93342a5233841ad64cd94ad47840f663de123 -62 vars.js 1558fb36bc1239149afbcf685dc20a4a254f1eaf414e85adb606c3bb20567492 - special_cases/ -345 input.toffee 9f70ec351d068a6557649a43c9d4ceb04b6deaea397c797115051c28b764badc -109 output.toffee e959c173c801867016c650558ff89260c104b1283e8427c370d5cbe6ad8808ec - express3/ -956 app.coffee 66ec99f0dc5cccf78aac27009c91f249dfa6bc54e9756902055b82fb4dd9d1f0 -187 package.json 34dffb3488b7ec1361ecc388a035544b79cca8053ee57c26b0c64cba7ff5d81b - public/ - javascripts/ -93068 jquery-1.9.0.min.js 7fa0d5c3f538c76f878e012ac390597faecaabfe6fb9d459b919258e76c5df8e -65233 test_cases.js 2799bc9ef13d5e3b9269720c9bfdb302c1e0dd6b99d68027c6aad278fdcc2c0b -4876 toffee.js e0a8f645b0bfe86fc2ddb4219b25495f0b0c5e7031f804ebc01d71fc22b052d3 - stylesheets/ -110 style.css 2828f3d789d881ac0a37ccff297b4574f40955c6b8278332166659cf6867b539 - routes/ -275 index.js b3e47f4c9ee9ba482faad605f09f610c224aadf28186ba4c47e8fcc567a0f8b6 - views/ -15548 index.toffee 517ddbe54b3a1558803a26b398e94a7d98044f174b79368d29b0a1617d761421 - subdir1/ -189 hello_world.toffee 34703cc458413e0ade4ebb311b1d355cb3f4f74c75edda0b50c207a464b0d6ff - subdir2/ - foo/ -22 goodbye.toffee edc531db6b50fbce4a7ad1319dfb9924ea09b90898a40e8c640c2ef838b47c8a -288 goodbye_world.toffee 53bd645cae89afc9bf1aa08e87b3f2247c49546cb4ae278de2552187ed0068e9 - express3_error_handling/ -1434 app.coffee 8617874065cd79e799d3d2fdb6f76c6abbdcdb7015b40292a3a45f8b70b6e14a -187 package.json 34dffb3488b7ec1361ecc388a035544b79cca8053ee57c26b0c64cba7ff5d81b - public/ - javascripts/ -93068 jquery-1.9.0.min.js 7fa0d5c3f538c76f878e012ac390597faecaabfe6fb9d459b919258e76c5df8e -65233 test_cases.js 2799bc9ef13d5e3b9269720c9bfdb302c1e0dd6b99d68027c6aad278fdcc2c0b -4878 toffee.js ece8df6211cc9770c5fb50f1a58d0273baa16880bbf14572c7f3a6f5e6fcf998 - stylesheets/ -110 style.css 2828f3d789d881ac0a37ccff297b4574f40955c6b8278332166659cf6867b539 - routes/ -287 index.js e4ce11715d151e9b76d2e8a8a1ceed5aeb9341d4cdd97a6c0933a7a9d21add82 - views/ -737 index.toffee ad9a70f7774bf503eb800a073eb16d75b069b0f355b2c9176f11f2a55cb23b32 -1237 test_bad_coffee_syntax.toffee c051232538906552b73326e5fc23459ff9af157bb9fd7999e121f6558cd3f532 -165 test_bad_runtime.toffee 3cf0b2d298653ee45be8fa17092f7ac64407b5be3e77ff403e8da753a75e412c -52 test_bad_str_interpolate.toffee 46c9f9e1f9e170b71612a0755748feaa5c7777fc15d81e1897d82cecf2e7d385 -56 test_bad_toffee_syntax.toffee cdfaf909adcbb51b293c67ecedc578379c1660774789fcbac8d156a1e35920f5 -3552 generate_express_test.coffee 871c655a5193f891f4658faa90ef56061776e01f69552d1966922cef7fcf894b -3758 run_cases.iced 3338df9b4cd47d189acc61612ded19bff670bed7047b902546991c80fa6b1f56 -4876 toffee.js e0a8f645b0bfe86fc2ddb4219b25495f0b0c5e7031f804ebc01d71fc22b052d3 -``` - -#### Ignore - -``` -/SIGNED.md -``` - -#### Presets - -``` -git # ignore .git and anything as described by .gitignore files -dropbox # ignore .dropbox-cache and other Dropbox-related files -kb # ignore anything as described by .kbignore files -``` - - - -### End signed statement - -
    - -#### Notes - -With keybase you can sign any directory's contents, whether it's a git repo, -source code distribution, or a personal documents folder. It aims to replace the drudgery of: - - 1. comparing a zipped file to a detached statement - 2. downloading a public key - 3. confirming it is in fact the author's by reviewing public statements they've made, using it - -All in one simple command: - -```bash -keybase dir verify -``` - -There are lots of options, including assertions for automating your checks. - -For more info, check out https://keybase.io/docs/command_line/code_signing \ No newline at end of file diff --git a/lib/view.js b/lib/view.js index 16ca902..c589679 100644 --- a/lib/view.js +++ b/lib/view.js @@ -55,7 +55,7 @@ */ var __; __ = tabs(tab_level); - return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o?\n" + __ + " return \"null\"\n" + __ + " else\n" + __ + " return \"\" + JSON.stringify(o)\n" + __ + " .replace(//g,'\\\\u003E')\n" + __ + " .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028')\n" + __ + " .replace(/\\u2029/g, '\\\\u2029')\n" + __ + " .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&')\n" + __ + " .replace(//g, '>')\n" + __ + " .replace(/\"/g, '"')\n" + __ + " .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); + return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o?\n" + __ + " return \"null\"\n" + __ + " else\n" + __ + " return \"\" + JSON.stringify(o)\n" + __ + " .replace(//g,'\\\\u003E')\n" + __ + " .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028')\n" + __ + " .replace(/\\u2029/g, '\\\\u2029')\n" + __ + " .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '\\\\u2066') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '\\\\u2067') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '\\\\u2068') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '\\\\u2069') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&')\n" + __ + " .replace(//g, '>')\n" + __ + " .replace(/\"/g, '"')\n" + __ + " .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { diff --git a/package.json b/package.json index e81bf58..420c76d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.2.0", + "version": "0.2.1", "directories": { "lib": "./lib" }, diff --git a/src/view.coffee b/src/view.coffee index 8642342..b25a39b 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -50,6 +50,11 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__} .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING #{__} .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES #{__} .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES +#{__} .replace(/\\u2066/g, '\\\\u2066') # LEFT-TO-RIGHT ISOLATE (LRI) +#{__} .replace(/\\u2067/g, '\\\\u2067') # RIGHT-TO-LEFT ISOLATE (RLI) +#{__} .replace(/\\u2068/g, '\\\\u2068') # FIRST STRONG ISOLATE (FSI) +#{__} .replace(/\\u2069/g, '\\\\u2069') # POP DIRECTIONAL ISOLATE (PDI) + #{__}toffee.__raw = (locals, o) -> o @@ -70,6 +75,11 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__} .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING #{__} .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES #{__} .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES +#{__} .replace(/\\u2066/g, '') # LEFT-TO-RIGHT ISOLATE (LRI) +#{__} .replace(/\\u2067/g, '') # RIGHT-TO-LEFT ISOLATE (RLI) +#{__} .replace(/\\u2068/g, '') # FIRST STRONG ISOLATE (FSI) +#{__} .replace(/\\u2069/g, '') # POP DIRECTIONAL ISOLATE (PDI) + #{__}toffee.__escape = (locals, o) -> #{__} if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape diff --git a/test/express3/public/javascripts/toffee.js b/test/express3/public/javascripts/toffee.js index d9213c1..d7e6c96 100644 --- a/test/express3/public/javascripts/toffee.js +++ b/test/express3/public/javascripts/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); } }; @@ -26,7 +26,7 @@ toffee.__raw = function(locals, o) { }; toffee.__html = function(locals, o) { - return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, ''); + return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, '').replace(/\u2066/g, '').replace(/\u2067/g, '').replace(/\u2068/g, '').replace(/\u2069/g, ''); }; toffee.__escape = function(locals, o) { diff --git a/toffee.js b/toffee.js index d9213c1..d7e6c96 100644 --- a/toffee.js +++ b/toffee.js @@ -17,7 +17,7 @@ toffee.__json = function(locals, o) { if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f'); + return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); } }; @@ -26,7 +26,7 @@ toffee.__raw = function(locals, o) { }; toffee.__html = function(locals, o) { - return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, ''); + return ("" + o).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/\u200e/g, '').replace(/\u200f/g, '').replace(/\u202a/g, '').replace(/\u202b/g, '').replace(/\u202c/g, '').replace(/\u202d/g, '').replace(/\u202e/g, '').replace(/\u206a/g, '').replace(/\u206b/g, '').replace(/\u206c/g, '').replace(/\u206d/g, '').replace(/\u206e/g, '').replace(/\u206f/g, '').replace(/\u2066/g, '').replace(/\u2067/g, '').replace(/\u2068/g, '').replace(/\u2069/g, ''); }; toffee.__escape = function(locals, o) { From f51bad7f7a6d1e58488b85e7feecafd63bb7161f Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 13 Jul 2017 08:38:29 -0400 Subject: [PATCH 149/163] cleanup of test; removal of JSON.stringify override --- Cakefile | 3 +- index.js | 2 +- lib/command_line.js | 2 +- lib/consts.js | 2 +- lib/engine.js | 2 +- lib/errorHandler.js | 2 +- lib/pool.js | 2 +- lib/utils.js | 2 +- lib/view.js | 4 +- package.json | 4 +- src/view.coffee | 2 +- test/cases/escape/input.toffee | 6 +- test/cases/escape/output.toffee | 10 +- .../express3/public/javascripts/test_cases.js | 115 +++++++++++------- test/express3/views/index.toffee | 10 +- test/generate_express_test.coffee | 2 +- test/run_cases.iced | 11 +- 17 files changed, 111 insertions(+), 70 deletions(-) diff --git a/Cakefile b/Cakefile index 780f9e4..867e95f 100644 --- a/Cakefile +++ b/Cakefile @@ -24,8 +24,7 @@ task 'test', 'test server and browser support', (cb) -> console.log "Done." runCoffee = (args, cb) -> - console.log args - proc = spawn 'coffee', args + proc = spawn './node_modules/.bin/coffee', args proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> process.exit(1) if status isnt 0 diff --git a/index.js b/index.js index 275c688..e8b445a 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var __express, cacheless_engine, e, engine, getCommonHeaders, getCommonHeadersJs, ref, to_express, view; diff --git a/lib/command_line.js b/lib/command_line.js index dff3ade..06ea69d 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, ref, run, view; diff --git a/lib/consts.js b/lib/consts.js index 05c17db..89ae18c 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { exports.states = { TOFFEE: 1, diff --git a/lib/engine.js b/lib/engine.js index 8f01f8b..90863d1 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, ref, sandboxCons, states, tweakables, util, utils, view, vm, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 58933ac..77787e9 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var _ppEscape, errorTypes, path, toffeeError, util, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, diff --git a/lib/pool.js b/lib/pool.js index 4a4db6d..eab9224 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var Pool; diff --git a/lib/utils.js b/lib/utils.js index 8838331..432037c 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var lex, lexer; diff --git a/lib/view.js b/lib/view.js index c589679..b210643 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.2 +// Generated by CoffeeScript 1.12.6 (function() { var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, parser, ref, ref1, spaces, states, tabs, toffeeError, util, utils, view, vm; @@ -298,7 +298,7 @@ view.prototype._snippetHasEscapeOverride = function(str) { var j, len, ref2, ref3, token; - ref2 = ['print', ' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify']; + ref2 = ['print', ' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json']; for (j = 0, len = ref2.length; j < len; j++) { token = ref2[j]; if (str.slice(0, token.length) === token) { diff --git a/package.json b/package.json index 420c76d..8056f9a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.2.1", + "version": "0.3.0", "directories": { "lib": "./lib" }, @@ -16,6 +16,8 @@ }, "devDependencies": { "assert": "*", + "colors": "^1.1.2", + "diff": "^3.3.0", "express": "^3.21.2", "iced-coffee-script": "*", "jison": "*", diff --git a/src/view.coffee b/src/view.coffee index b25a39b..82a3c87 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -357,7 +357,7 @@ class view return "\n#{spaces ind}_ln #{n}" _snippetHasEscapeOverride: (str) -> - for token in ['print',' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json', 'JSON.stringify'] + for token in ['print',' snippet', 'load', 'partial', 'raw', 'html', 'json', '__toffee.raw', '__toffee.html', '__toffee.json'] if str[0...token.length] is token if (str.length > token.length) and (str[token.length] in [' ','\t','\n','(']) return true diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index ad29469..07b8e21 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -2,7 +2,7 @@ x = '"Hello world"' y = '
    ' z = 'click&clack' - w = [1, 2, {"place": "The Dreadfort"}] + w = [1, 2, {"place": "The Dreadfort", "evil code": "italic"}] v = ["\u2028", "\u2029"] dir = ["hi\u{202e}there"] # ltr type things #}

    @@ -22,6 +22,10 @@ raw z = #{raw z} raw w = #{raw w}

    +
    +  w_as_json_stringify=#{JSON.stringify w}
    +  w_as_json_stringify_raw=#{raw JSON.stringify w}
    +

    @@ -32,7 +36,7 @@ json printed x = "\"Hello world\"" json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" - json printed w = [1,2,{"place":"The Dreadfort"}] + json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] json printed v = ["\u2028","\u2029"]

    diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index dbad2b9..6c6e776 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -924,7 +924,8 @@ z = 'click&clack'; w = [ 1, 2, { - "place": "The Dreadfort" + "place": "The Dreadfort", + "evil code": "italic" } ]; v = ["\u2028", "\u2029"]; @@ -991,32 +992,44 @@ _ln(24); _to("

    \n"); _ln(25); - _to("\n"); - _ln(32); + _ln(36); _to("

    \n"); - _ln(33); + _ln(37); _ts(2); _ts(2); print(" raw printed x = " + x + "\n"); @@ -1024,13 +1037,13 @@ print(" raw printed z = " + z + "\n"); print(" raw printed w = " + w); _ts(1); - _ln(38); + _ln(42); _to("\n"); - _ln(39); + _ln(43); _to("

    \n"); - _ln(40); + _ln(44); _to("

    \n"); - _ln(41); + _ln(45); _ts(2); _ts(2); print(" json printed x = " + (raw(raw(raw(raw(json(x)))))) + "\n"); @@ -1039,13 +1052,13 @@ print(" json printed w = " + (raw(raw(raw(raw(json(w)))))) + "\n"); print(" json printed v = " + (raw(raw(raw(raw(json(v))))))); _ts(1); - _ln(47); + _ln(51); _to("\n"); - _ln(48); + _ln(52); _to("

    \n"); - _ln(49); + _ln(53); _to("

    \n"); - _ln(50); + _ln(54); _ts(2); _ts(2); print(" html printed longhand x = " + (__toffee.html(x)) + "\n"); @@ -1053,11 +1066,11 @@ print(" html printed longhand z = " + (__toffee.html(z)) + "\n"); print(" html printed longhand w = " + (__toffee.html(w))); _ts(1); - _ln(55); + _ln(59); _to("\n"); - _ln(56); + _ln(60); _to("

    \n"); - _ln(57); + _ln(61); _ts(2); __toffee.res = __toffee.out.join(""); if (typeof postProcess !== "undefined" && postProcess !== null) { @@ -1113,7 +1126,7 @@ _ln(4); _to(" default z = click&clack\n"); _ln(5); - _to(" default w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _to(" default w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(6); _to(" default r = eol\n"); _ln(7); @@ -1139,58 +1152,66 @@ _ln(17); _to("

    \n"); _ln(18); - _to("\n"); + _to(" y = \"\\u003Chr /\\u003E\"\n"); _ln(25); - _to("

    \n"); + _to(" z = \"click\\u0026clack\"\n"); _ln(26); - _to(" raw printed x = \"Hello world\"\n"); + _to(" w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(27); - _to(" raw printed y =


    \n"); + _to(" v = [\"\\u2028\",\"\\u2029\"]\n"); _ln(28); - _to(" raw printed z = click&clack\n"); + _to("\n"); _ln(29); - _to(" raw printed w = 1,2,[object Object]\n"); + _to("

    \n"); _ln(30); - _to("

    \n"); + _to(" raw printed x = \"Hello world\"\n"); _ln(31); - _to("

    \n"); + _to(" raw printed y =


    \n"); _ln(32); - _to(" json printed x = \"\\\"Hello world\\\"\"\n"); + _to(" raw printed z = click&clack\n"); _ln(33); - _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); + _to(" raw printed w = 1,2,[object Object]\n"); _ln(34); - _to(" json printed z = \"click\\u0026clack\"\n"); + _to("

    \n"); _ln(35); - _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\"}]\n"); + _to("

    \n"); _ln(36); - _to(" json printed v = [\"\\u2028\",\"\\u2029\"]\n"); + _to(" json printed x = \"\\\"Hello world\\\"\"\n"); _ln(37); - _to("

    \n"); + _to(" json printed y = \"\\u003Chr /\\u003E\"\n"); _ln(38); - _to("

    \n"); + _to(" json printed z = \"click\\u0026clack\"\n"); _ln(39); - _to(" html printed longhand x = "Hello world"\n"); + _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(40); - _to(" html printed longhand y = <hr />\n"); + _to(" json printed v = [\"\\u2028\",\"\\u2029\"]\n"); _ln(41); - _to(" html printed longhand z = click&clack\n"); + _to("

    \n"); _ln(42); - _to(" html printed longhand w = 1,2,[object Object]\n"); + _to("

    \n"); _ln(43); - _to("

    \n"); + _to(" html printed longhand x = "Hello world"\n"); _ln(44); + _to(" html printed longhand y = <hr />\n"); + _ln(45); + _to(" html printed longhand z = click&clack\n"); + _ln(46); + _to(" html printed longhand w = 1,2,[object Object]\n"); + _ln(47); + _to("

    \n"); + _ln(48); _ts(2); __toffee.res = __toffee.out.join(""); if (typeof postProcess !== "undefined" && postProcess !== null) { diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 0f9cdc5..19cde6d 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -132,7 +132,7 @@ You have 3 female friends. default x = "Hello world" default y = <hr /> default z = click&clack - default w = [1,2,{"place":"The Dreadfort"}] + default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] default r = eol default w.foo = eol default v = ["\u2028","\u2029"] @@ -145,11 +145,15 @@ You have 3 female friends. raw z = click&clack raw w = 1,2,[object Object]

    +
    +  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>code</b>":"<i>italic</i>"}]
    +  w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil code":"italic"}]
    +

    @@ -162,7 +166,7 @@ You have 3 female friends. json printed x = "\"Hello world\"" json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" - json printed w = [1,2,{"place":"The Dreadfort"}] + json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] json printed v = ["\u2028","\u2029"]

    diff --git a/test/generate_express_test.coffee b/test/generate_express_test.coffee index 2c5839f..133013a 100644 --- a/test/generate_express_test.coffee +++ b/test/generate_express_test.coffee @@ -6,7 +6,7 @@ coffee = require 'coffee-script' generateExpressTest = (cb) -> - proc = spawn 'coffee', ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn path.join(__dirname,"../node_modules/.bin/coffee"), ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> diff --git a/test/run_cases.iced b/test/run_cases.iced index f575362..bfbf17a 100644 --- a/test/run_cases.iced +++ b/test/run_cases.iced @@ -4,6 +4,8 @@ path = require 'path' zombie = require 'zombie' coffee = require 'coffee-script' tablify = require 'tablify' +colors = require 'colors' +jsdiff = require 'diff' regular_engine = new engine({ verbose: false @@ -45,9 +47,14 @@ run_case_dir = (eng, dir, cb) -> cb err, time_ms else if res isnt expected + diff = jsdiff.diffLines res, expected + delta = "" + diff.forEach (part) -> + c = if part.added then 'green' else if part.removed then 'red' else 'grey' + v = part.value + delta += v[c] cb "Failure in case #{dir}." + - "\n\nExpected\n=====\n#{expected}\n=====" + - "\nGot\n=====\n#{res}\n=====\n", time_ms + "#{delta}", time_ms else cb null, time_ms From 451f80e1c8823d44f5a560a88eccd5b78358d862 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 13 Jul 2017 09:10:41 -0400 Subject: [PATCH 150/163] json formatting; better tests --- lib/view.js | 2 +- package.json | 2 +- src/view.coffee | 8 +- test/cases/escape/input.toffee | 2 +- test/cases/escape/output.toffee | 10 +- test/cases/json_formatting/input.toffee | 12 + test/cases/json_formatting/output.toffee | 70 +++++ .../express3/public/javascripts/test_cases.js | 283 +++++++++++++++++- test/express3/public/javascripts/toffee.js | 10 +- test/express3/views/index.toffee | 169 ++++++++--- toffee.js | 10 +- 11 files changed, 512 insertions(+), 66 deletions(-) create mode 100644 test/cases/json_formatting/input.toffee create mode 100644 test/cases/json_formatting/output.toffee diff --git a/lib/view.js b/lib/view.js index b210643..fbba03f 100644 --- a/lib/view.js +++ b/lib/view.js @@ -55,7 +55,7 @@ */ var __; __ = tabs(tab_level); - return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o) ->\n" + __ + " if not o?\n" + __ + " return \"null\"\n" + __ + " else\n" + __ + " return \"\" + JSON.stringify(o)\n" + __ + " .replace(//g,'\\\\u003E')\n" + __ + " .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028')\n" + __ + " .replace(/\\u2029/g, '\\\\u2029')\n" + __ + " .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '\\\\u2066') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '\\\\u2067') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '\\\\u2068') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '\\\\u2069') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&')\n" + __ + " .replace(//g, '>')\n" + __ + " .replace(/\"/g, '"')\n" + __ + " .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o) -> toffee.__json _l, o\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); + return "\n\n" + __ + "if not toffee? then toffee = {}\n" + __ + "if not toffee.templates then toffee.templates = {}\n\n" + __ + "toffee.states = " + (JSON.stringify(states)) + "\n\n" + __ + "toffee.__json = (locals, o, opts) ->\n" + __ + " opts or= {}\n" + __ + " opts.indent or= \"\"\n" + __ + " if not o?\n" + __ + " return \"null\"\n" + __ + " else\n" + __ + " return \"\" + JSON.stringify(o,null,opts.indent)\n" + __ + " .replace(//g,'\\\\u003E')\n" + __ + " .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028')\n" + __ + " .replace(/\\u2029/g, '\\\\u2029')\n" + __ + " .replace(/\\u200e/g, '\\\\u200e') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '\\\\u200f') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '\\\\u202a') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '\\\\u202b') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '\\\\u202c') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '\\\\u202d') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '\\\\u202e') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '\\\\u206a') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '\\\\u206b') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '\\\\u206c') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '\\\\u206d') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '\\\\u206e') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '\\\\u206f') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '\\\\u2066') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '\\\\u2067') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '\\\\u2068') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '\\\\u2069') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__raw = (locals, o) -> o\n\n" + __ + "toffee.__html = (locals, o) ->\n" + __ + " (\"\"+o).replace(/&/g, '&')\n" + __ + " .replace(//g, '>')\n" + __ + " .replace(/\"/g, '"')\n" + __ + " .replace(/\\u200e/g, '') # LEFT-TO-RIGHT MARK\n" + __ + " .replace(/\\u200f/g, '') # RIGHT-TO-LEFT MARK\n" + __ + " .replace(/\\u202a/g, '') # LEFT-TO-RIGHT EMBEDDING\n" + __ + " .replace(/\\u202b/g, '') # RIGHT-TO-LEFT EMBEDDING\n" + __ + " .replace(/\\u202c/g, '') # POP DIRECTIONAL FORMATTING\n" + __ + " .replace(/\\u202d/g, '') # LEFT-TO-RIGHT OVERRIDE\n" + __ + " .replace(/\\u202e/g, '') # RIGHT-TO-LEFT OVERRIDE\n" + __ + " .replace(/\\u206a/g, '') # INHIBIT SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206b/g, '') # ACTIVATE SYMMETRIC SWAPPING\n" + __ + " .replace(/\\u206c/g, '') # INHIBIT ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206d/g, '') # ACTIVATE ARABIC FORM SHAPING\n" + __ + " .replace(/\\u206e/g, '') # NATIONAL DIGIT SHAPES\n" + __ + " .replace(/\\u206f/g, '') # NOMINAL DIGIT SHAPES\n" + __ + " .replace(/\\u2066/g, '') # LEFT-TO-RIGHT ISOLATE (LRI)\n" + __ + " .replace(/\\u2067/g, '') # RIGHT-TO-LEFT ISOLATE (RLI)\n" + __ + " .replace(/\\u2068/g, '') # FIRST STRONG ISOLATE (FSI)\n" + __ + " .replace(/\\u2069/g, '') # POP DIRECTIONAL ISOLATE (PDI)\n\n\n" + __ + "toffee.__escape = (locals, o) ->\n" + __ + " if locals.__toffee.autoEscape? then ae = locals.__toffee.autoEscape\n" + __ + " else if " + (auto_escape != null) + " then ae = " + auto_escape + "\n" + __ + " else ae = true\n" + __ + " if ae\n" + __ + " if o is undefined then return ''\n" + __ + " if o? and (typeof o) is \"object\" then return locals.json o\n" + __ + " return locals.html o\n" + __ + " return o\n\n" + __ + "toffee.__augmentLocals = (locals, bundle_path) ->\n" + __ + " _l = locals\n" + __ + " _t = _l.__toffee = {out: []}\n" + __ + " if not _l.print? then _l.print = (o) -> toffee.__print _l, o\n" + __ + " if not _l.json? then _l.json = (o, opts) -> toffee.__json _l, o, opts\n" + __ + " if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o\n" + __ + " if not _l.html? then _l.html = (o) -> toffee.__html _l, o\n" + __ + " if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o\n" + __ + " if not _l.partial? then _l.partial = (path, vars) -> toffee.__partial toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.snippet? then _l.snippet = (path, vars) -> toffee.__snippet toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " if not _l.load? then _l.load = (path, vars) -> toffee.__load toffee.templates[\"\#{bundle_path}\"], _l, path, vars\n" + __ + " _t.print = _l.print\n" + __ + " _t.json = _l.json\n" + __ + " _t.raw = _l.raw\n" + __ + " _t.html = _l.html\n" + __ + " _t.escape = _l.escape\n" + __ + " _t.partial = _l.partial\n" + __ + " _t.snippet = _l.snippet\n" + __ + " _t.load = _l.load\n\n" + (include_bundle_headers ? getBundleHeaders(tab_level) : ""); }; getBundleHeaders = function(tab_level) { diff --git a/package.json b/package.json index 8056f9a..3f09db7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.0", + "version": "0.3.1", "directories": { "lib": "./lib" }, diff --git a/src/view.coffee b/src/view.coffee index 82a3c87..b46088b 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -29,11 +29,13 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__}toffee.states = #{JSON.stringify states} -#{__}toffee.__json = (locals, o) -> +#{__}toffee.__json = (locals, o, opts) -> +#{__} opts or= {} +#{__} opts.indent or= "" #{__} if not o? #{__} return "null" #{__} else -#{__} return "" + JSON.stringify(o) +#{__} return "" + JSON.stringify(o,null,opts.indent) #{__} .replace(//g,'\\\\u003E') #{__} .replace(/&/g,'\\\\u0026').replace(/\\u2028/g, '\\\\u2028') #{__} .replace(/\\u2029/g, '\\\\u2029') @@ -95,7 +97,7 @@ getCommonHeaders = (tab_level, include_bundle_headers, auto_escape) -> #{__} _l = locals #{__} _t = _l.__toffee = {out: []} #{__} if not _l.print? then _l.print = (o) -> toffee.__print _l, o -#{__} if not _l.json? then _l.json = (o) -> toffee.__json _l, o +#{__} if not _l.json? then _l.json = (o, opts) -> toffee.__json _l, o, opts #{__} if not _l.raw? then _l.raw = (o) -> toffee.__raw _l, o #{__} if not _l.html? then _l.html = (o) -> toffee.__html _l, o #{__} if not _l.escape? then _l.escape = (o) -> toffee.__escape _l, o diff --git a/test/cases/escape/input.toffee b/test/cases/escape/input.toffee index 07b8e21..697235e 100644 --- a/test/cases/escape/input.toffee +++ b/test/cases/escape/input.toffee @@ -2,7 +2,7 @@ x = '"Hello world"' y = '


    ' z = 'click&clack' - w = [1, 2, {"place": "The Dreadfort", "evil code": "italic"}] + w = [1, 2, {"place": "The Dreadfort", "evil \"code\"": "italic"}] v = ["\u2028", "\u2029"] dir = ["hi\u{202e}there"] # ltr type things #}

    diff --git a/test/cases/escape/output.toffee b/test/cases/escape/output.toffee index 2dff1f6..7624efa 100644 --- a/test/cases/escape/output.toffee +++ b/test/cases/escape/output.toffee @@ -2,7 +2,7 @@ default x = "Hello world" default y = <hr /> default z = click&clack - default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] + default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] default r = eol default w.foo = eol default v = ["\u2028","\u2029"] @@ -16,14 +16,14 @@ raw w = 1,2,[object Object]

    -  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>code</b>":"<i>italic</i>"}]
    -  w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil code":"italic"}]
    +  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>\"code\"</b>":"<i>italic</i>"}]
    +  w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil \"code\"":"italic"}]
     

    @@ -36,7 +36,7 @@ json printed x = "\"Hello world\"" json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" - json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] + json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] json printed v = ["\u2028","\u2029"]

    diff --git a/test/cases/json_formatting/input.toffee b/test/cases/json_formatting/input.toffee new file mode 100644 index 0000000..673bead --- /dev/null +++ b/test/cases/json_formatting/input.toffee @@ -0,0 +1,12 @@ +{# + x = + foo: [1,2,3] + bar: + car: [4,5,"<\/html",{zar: [6,7,null]}] + y = [1,2,"<\/script>\""] +#} +#{x} +#{json x, {indent: ' '}} +#{json x, {indent: 2}} +#{json x, {indent: '\t'}} +#{__toffee.json y, {indent:3}} diff --git a/test/cases/json_formatting/output.toffee b/test/cases/json_formatting/output.toffee new file mode 100644 index 0000000..f9e8db4 --- /dev/null +++ b/test/cases/json_formatting/output.toffee @@ -0,0 +1,70 @@ + +{"foo":[1,2,3],"bar":{"car":[4,5,"\u003C/html",{"zar":[6,7,null]}]}} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +[ + 1, + 2, + "\u003C/script\u003E\"" +] diff --git a/test/express3/public/javascripts/test_cases.js b/test/express3/public/javascripts/test_cases.js index 6c6e776..7f1ce78 100644 --- a/test/express3/public/javascripts/test_cases.js +++ b/test/express3/public/javascripts/test_cases.js @@ -925,7 +925,7 @@ w = [ 1, 2, { "place": "The Dreadfort", - "evil code": "italic" + "evil \"code\"": "italic" } ]; v = ["\u2028", "\u2029"]; @@ -1126,7 +1126,7 @@ _ln(4); _to(" default z = click&clack\n"); _ln(5); - _to(" default w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); + _to(" default w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003E\\\"code\\\"\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(6); _to(" default r = eol\n"); _ln(7); @@ -1154,9 +1154,9 @@ _ln(18); _to("

    \n");
         _ln(19);
    -    _to("  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>code</b>":"<i>italic</i>"}]\n");
    +    _to("  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>\\"code\\"</b>":"<i>italic</i>"}]\n");
         _ln(20);
    -    _to("  w_as_json_stringify_raw=[1,2,{\"place\":\"The Dreadfort\",\"evil code\":\"italic\"}]\n");
    +    _to("  w_as_json_stringify_raw=[1,2,{\"place\":\"The Dreadfort\",\"evil \\\"code\\\"\":\"italic\"}]\n");
         _ln(21);
         _to("
    \n"); _ln(22); @@ -1168,7 +1168,7 @@ _ln(25); _to(" z = \"click\\u0026clack\"\n"); _ln(26); - _to(" w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); + _to(" w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003E\\\"code\\\"\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(27); _to(" v = [\"\\u2028\",\"\\u2029\"]\n"); _ln(28); @@ -1194,7 +1194,7 @@ _ln(38); _to(" json printed z = \"click\\u0026clack\"\n"); _ln(39); - _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003Ecode\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); + _to(" json printed w = [1,2,{\"place\":\"The Dreadfort\",\"evil \\u003Cb\\u003E\\\"code\\\"\\u003C/b\\u003E\":\"\\u003Ci\\u003Eitalic\\u003C/i\\u003E\"}]\n"); _ln(40); _to(" json printed v = [\"\\u2028\",\"\\u2029\"]\n"); _ln(41); @@ -2236,6 +2236,277 @@ }).call(this); +; +(function() { + var tmpl; + + tmpl = toffee.templates["/json_formatting/input.toffee"] = { + bundlePath: "/json_formatting/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var x, y, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/json_formatting/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(2); + x = { + foo: [1, 2, 3], + bar: { + car: [ + 4, 5, "<\/html", { + zar: [6, 7, null] + } + ] + } + }; + y = [1, 2, "<\/script>\""]; + _ts(1); + _ln(7); + _to("\n"); + _ln(8); + _to("" + (x != null ? escape(x) : '')); + _to("\n"); + _ln(9); + _to("" + (json(x, { + indent: ' ' + }))); + _to("\n"); + _ln(10); + _to("" + (json(x, { + indent: 2 + }))); + _to("\n"); + _ln(11); + _to("" + (json(x, { + indent: '\t' + }))); + _to("\n"); + _ln(12); + _to("" + (__toffee.json(y, { + indent: 3 + }))); + _to("\n"); + _ln(13); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +; +(function() { + var tmpl; + + tmpl = toffee.templates["/json_formatting/output.toffee"] = { + bundlePath: "/json_formatting/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/json_formatting/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\n"); + _ln(2); + _to("{\"foo\":[1,2,3],\"bar\":{\"car\":[4,5,\"\\u003C/html\",{\"zar\":[6,7,null]}]}}\n"); + _ln(3); + _to("{\n"); + _ln(4); + _to(" \"foo\": [\n"); + _ln(5); + _to(" 1,\n"); + _ln(6); + _to(" 2,\n"); + _ln(7); + _to(" 3\n"); + _ln(8); + _to(" ],\n"); + _ln(9); + _to(" \"bar\": {\n"); + _ln(10); + _to(" \"car\": [\n"); + _ln(11); + _to(" 4,\n"); + _ln(12); + _to(" 5,\n"); + _ln(13); + _to(" \"\\u003C/html\",\n"); + _ln(14); + _to(" {\n"); + _ln(15); + _to(" \"zar\": [\n"); + _ln(16); + _to(" 6,\n"); + _ln(17); + _to(" 7,\n"); + _ln(18); + _to(" null\n"); + _ln(19); + _to(" ]\n"); + _ln(20); + _to(" }\n"); + _ln(21); + _to(" ]\n"); + _ln(22); + _to(" }\n"); + _ln(23); + _to("}\n"); + _ln(24); + _to("{\n"); + _ln(25); + _to(" \"foo\": [\n"); + _ln(26); + _to(" 1,\n"); + _ln(27); + _to(" 2,\n"); + _ln(28); + _to(" 3\n"); + _ln(29); + _to(" ],\n"); + _ln(30); + _to(" \"bar\": {\n"); + _ln(31); + _to(" \"car\": [\n"); + _ln(32); + _to(" 4,\n"); + _ln(33); + _to(" 5,\n"); + _ln(34); + _to(" \"\\u003C/html\",\n"); + _ln(35); + _to(" {\n"); + _ln(36); + _to(" \"zar\": [\n"); + _ln(37); + _to(" 6,\n"); + _ln(38); + _to(" 7,\n"); + _ln(39); + _to(" null\n"); + _ln(40); + _to(" ]\n"); + _ln(41); + _to(" }\n"); + _ln(42); + _to(" ]\n"); + _ln(43); + _to(" }\n"); + _ln(44); + _to("}\n"); + _ln(45); + _to("{\n"); + _ln(46); + _to("\t\"foo\": [\n"); + _ln(47); + _to("\t\t1,\n"); + _ln(48); + _to("\t\t2,\n"); + _ln(49); + _to("\t\t3\n"); + _ln(50); + _to("\t],\n"); + _ln(51); + _to("\t\"bar\": {\n"); + _ln(52); + _to("\t\t\"car\": [\n"); + _ln(53); + _to("\t\t\t4,\n"); + _ln(54); + _to("\t\t\t5,\n"); + _ln(55); + _to("\t\t\t\"\\u003C/html\",\n"); + _ln(56); + _to("\t\t\t{\n"); + _ln(57); + _to("\t\t\t\t\"zar\": [\n"); + _ln(58); + _to("\t\t\t\t\t6,\n"); + _ln(59); + _to("\t\t\t\t\t7,\n"); + _ln(60); + _to("\t\t\t\t\tnull\n"); + _ln(61); + _to("\t\t\t\t]\n"); + _ln(62); + _to("\t\t\t}\n"); + _ln(63); + _to("\t\t]\n"); + _ln(64); + _to("\t}\n"); + _ln(65); + _to("}\n"); + _ln(66); + _to("[\n"); + _ln(67); + _to(" 1,\n"); + _ln(68); + _to(" 2,\n"); + _ln(69); + _to(" \"\\u003C/script\\u003E\\\"\"\n"); + _ln(70); + _to("]\n"); + _ln(71); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; (function() { var tmpl; diff --git a/test/express3/public/javascripts/toffee.js b/test/express3/public/javascripts/toffee.js index d7e6c96..5d6b01c 100644 --- a/test/express3/public/javascripts/toffee.js +++ b/test/express3/public/javascripts/toffee.js @@ -13,11 +13,13 @@ toffee.states = { "COFFEE": 2 }; -toffee.__json = function(locals, o) { +toffee.__json = function(locals, o, opts) { + opts || (opts = {}); + opts.indent || (opts.indent = ""); if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); + return "" + JSON.stringify(o, null, opts.indent).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); } }; @@ -62,8 +64,8 @@ toffee.__augmentLocals = function(locals, bundle_path) { }; } if (_l.json == null) { - _l.json = function(o) { - return toffee.__json(_l, o); + _l.json = function(o, opts) { + return toffee.__json(_l, o, opts); }; } if (_l.raw == null) { diff --git a/test/express3/views/index.toffee b/test/express3/views/index.toffee index 19cde6d..3176ae5 100644 --- a/test/express3/views/index.toffee +++ b/test/express3/views/index.toffee @@ -132,7 +132,7 @@ You have 3 female friends. default x = "Hello world" default y = <hr /> default z = click&clack - default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] + default w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] default r = eol default w.foo = eol default v = ["\u2028","\u2029"] @@ -146,14 +146,14 @@ You have 3 female friends. raw w = 1,2,[object Object]

    -  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>code</b>":"<i>italic</i>"}]
    -  w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil code":"italic"}]
    +  w_as_json_stringify=[1,2,{"place":"The Dreadfort","evil <b>\"code\"</b>":"<i>italic</i>"}]
    +  w_as_json_stringify_raw=[1,2,{"place":"The Dreadfort","evil \"code\"":"italic"}]
     

    @@ -166,7 +166,7 @@ You have 3 female friends. json printed x = "\"Hello world\"" json printed y = "\u003Chr /\u003E" json printed z = "click\u0026clack" - json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003Ecode\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] + json printed w = [1,2,{"place":"The Dreadfort","evil \u003Cb\u003E\"code\"\u003C/b\u003E":"\u003Ci\u003Eitalic\u003C/i\u003E"}] json printed v = ["\u2028","\u2029"]

    @@ -323,18 +323,105 @@ Pass7Pass8 + + + json_formatting + +{"foo":[1,2,3],"bar":{"car":[4,5,"\u003C/html",{"zar":[6,7,null]}]}} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +{ + "foo": [ + 1, + 2, + 3 + ], + "bar": { + "car": [ + 4, + 5, + "\u003C/html", + { + "zar": [ + 6, + 7, + null + ] + } + ] + } +} +[ + 1, + 2, + "\u003C/script\u003E\"" +] + + #{partial '../../cases/json_formatting/input.toffee', {}} + + + + + + + + + junk -

      +
      • broom
      • mop
      • vacuum
      - #{partial '../../cases/junk/input.toffee', {}} - + #{partial '../../cases/junk/input.toffee', {}} + @@ -345,13 +432,13 @@ Pass7Pass8 lambda_fns - PassPassPassPass - #{partial '../../cases/lambda_fns/input.toffee', {}} - + PassPassPassPass + #{partial '../../cases/lambda_fns/input.toffee', {}} + @@ -362,15 +449,15 @@ Pass7Pass8 multiline_interpolation - Hello, world + Hello, world
      Goodbye, world - #{partial '../../cases/multiline_interpolation/input.toffee', {}} - + #{partial '../../cases/multiline_interpolation/input.toffee', {}} + @@ -381,7 +468,7 @@ Goodbye, world passback - vx,vy,vz = vx0,, + vx,vy,vz = vx0,, This should output (1). vx,vy,vz = vx1,vy1, @@ -393,18 +480,18 @@ vx,vy,vz = vx3,vy3,vz2 vx,vy,vz = vx4,vy4,vz2 vx,vy,vz = vx5_sub,vy5_sub,vz2 - #{partial '../../cases/passback/input.toffee', { + #{partial '../../cases/passback/input.toffee', { "vx": "vx0", "x" : "hi" }} - + @@ -415,13 +502,13 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 plaintext - Hi there. - #{partial '../../cases/plaintext/input.toffee', {}} - + Hi there. + #{partial '../../cases/plaintext/input.toffee', {}} + @@ -432,15 +519,15 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 post_process - This-is-a-hidden-message + This-is-a-hidden-message .dlrow leurc ,eybdooG .dlrow ,olleH - #{partial '../../cases/post_process/input.toffee', { + #{partial '../../cases/post_process/input.toffee', { greeting: 'Hello' postProcess: (s) -> (c for c in s by -1).join '' }} - + @@ -469,13 +556,13 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 render_no_args - No arguments passed. - #{partial '../../cases/render_no_args/input.toffee', } - + No arguments passed. + #{partial '../../cases/render_no_args/input.toffee', } + @@ -486,7 +573,7 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 snippets - From: Preloaded sender + From: Preloaded sender Preloaded message. From: Unknown sender Unknown message. @@ -494,18 +581,18 @@ From: Sam Preloaded message. From: Max Unknown message. - #{partial '../../cases/snippets/input.toffee', { + #{partial '../../cases/snippets/input.toffee', { "from": "Preloaded sender", "msg" : "Preloaded message." }} - + @@ -516,7 +603,7 @@ Unknown message. special_cases - + "PASSED"

      @@ -527,12 +614,12 @@ A backslash is a \ - #{partial '../../cases/special_cases/input.toffee', {}} - + #{partial '../../cases/special_cases/input.toffee', {}} + diff --git a/toffee.js b/toffee.js index d7e6c96..5d6b01c 100644 --- a/toffee.js +++ b/toffee.js @@ -13,11 +13,13 @@ toffee.states = { "COFFEE": 2 }; -toffee.__json = function(locals, o) { +toffee.__json = function(locals, o, opts) { + opts || (opts = {}); + opts.indent || (opts.indent = ""); if (o == null) { return "null"; } else { - return "" + JSON.stringify(o).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); + return "" + JSON.stringify(o, null, opts.indent).replace(//g, '\\u003E').replace(/&/g, '\\u0026').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029').replace(/\u200e/g, '\\u200e').replace(/\u200f/g, '\\u200f').replace(/\u202a/g, '\\u202a').replace(/\u202b/g, '\\u202b').replace(/\u202c/g, '\\u202c').replace(/\u202d/g, '\\u202d').replace(/\u202e/g, '\\u202e').replace(/\u206a/g, '\\u206a').replace(/\u206b/g, '\\u206b').replace(/\u206c/g, '\\u206c').replace(/\u206d/g, '\\u206d').replace(/\u206e/g, '\\u206e').replace(/\u206f/g, '\\u206f').replace(/\u2066/g, '\\u2066').replace(/\u2067/g, '\\u2067').replace(/\u2068/g, '\\u2068').replace(/\u2069/g, '\\u2069'); } }; @@ -62,8 +64,8 @@ toffee.__augmentLocals = function(locals, bundle_path) { }; } if (_l.json == null) { - _l.json = function(o) { - return toffee.__json(_l, o); + _l.json = function(o, opts) { + return toffee.__json(_l, o, opts); }; } if (_l.raw == null) { From 5ddefeae6b7036d6cfc08df4a1d1583af7fadea3 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 30 Oct 2018 10:23:43 -0400 Subject: [PATCH 151/163] updates --- package-lock.json | 1923 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 18 +- 2 files changed, 1932 insertions(+), 9 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ca88bed --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1923 @@ +{ + "name": "toffee", + "version": "0.3.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=", + "dev": true + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", + "dev": true + }, + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", + "dev": true + }, + "accepts": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "dev": true, + "requires": { + "mime-types": "~2.1.6", + "negotiator": "0.5.3" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", + "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz", + "integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==", + "dev": true + } + } + }, + "acorn-walk": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.0.tgz", + "integrity": "sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg==", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "base64-url": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", + "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=", + "dev": true + }, + "basic-auth": { + "version": "1.0.4", + "resolved": "http://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=", + "dev": true + }, + "basic-auth-connect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", + "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", + "dev": true + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bluebird": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", + "dev": true + }, + "body-parser": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "dev": true, + "requires": { + "bytes": "2.1.0", + "content-type": "~1.0.1", + "debug": "~2.2.0", + "depd": "~1.0.1", + "http-errors": "~1.3.1", + "iconv-lite": "0.4.11", + "on-finished": "~2.3.0", + "qs": "4.0.0", + "raw-body": "~2.1.2", + "type-is": "~1.6.6" + } + }, + "browser-process-hrtime": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", + "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "dev": true + }, + "bytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cjson": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.0.tgz", + "integrity": "sha1-5kObkHA9MS/24iJAl76pLOPQKhQ=", + "dev": true, + "requires": { + "jsonlint": "1.6.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + }, + "colors": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", + "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", + "dev": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "compressible": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "dev": true, + "requires": { + "mime-db": ">= 1.36.0 < 2" + } + }, + "compression": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", + "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", + "dev": true, + "requires": { + "accepts": "~1.2.12", + "bytes": "2.1.0", + "compressible": "~2.0.5", + "debug": "~2.2.0", + "on-headers": "~1.0.0", + "vary": "~1.0.1" + } + }, + "connect": { + "version": "2.30.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", + "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", + "dev": true, + "requires": { + "basic-auth-connect": "1.0.0", + "body-parser": "~1.13.3", + "bytes": "2.1.0", + "compression": "~1.5.2", + "connect-timeout": "~1.6.2", + "content-type": "~1.0.1", + "cookie": "0.1.3", + "cookie-parser": "~1.3.5", + "cookie-signature": "1.0.6", + "csurf": "~1.8.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "errorhandler": "~1.4.2", + "express-session": "~1.11.3", + "finalhandler": "0.4.0", + "fresh": "0.3.0", + "http-errors": "~1.3.1", + "method-override": "~2.3.5", + "morgan": "~1.6.1", + "multiparty": "3.3.2", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", + "pause": "0.1.0", + "qs": "4.0.0", + "response-time": "~2.3.1", + "serve-favicon": "~2.3.0", + "serve-index": "~1.7.2", + "serve-static": "~1.10.0", + "type-is": "~1.6.6", + "utils-merge": "1.0.0", + "vhost": "~3.0.1" + } + }, + "connect-timeout": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", + "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "http-errors": "~1.3.1", + "ms": "0.7.1", + "on-headers": "~1.0.0" + } + }, + "content-disposition": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz", + "integrity": "sha1-QoT+auBjCHRjnkToCkGMKTQTXp4=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "cookie": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", + "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=", + "dev": true + }, + "cookie-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", + "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "crc": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", + "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=", + "dev": true + }, + "csrf": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", + "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", + "dev": true, + "requires": { + "rndm": "1.2.0", + "tsscmp": "1.0.5", + "uid-safe": "2.1.4" + } + }, + "cssom": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", + "dev": true + }, + "cssstyle": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", + "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "csurf": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", + "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "csrf": "~3.0.0", + "http-errors": "~1.3.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "debug": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "errorhandler": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", + "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", + "dev": true, + "requires": { + "accepts": "~1.3.0", + "escape-html": "~1.0.3" + }, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + } + } + }, + "escape-html": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", + "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=", + "dev": true + }, + "escodegen": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", + "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", + "dev": true, + "requires": { + "esprima": "~1.1.1", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.33" + } + }, + "esprima": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", + "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "etag": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "express": { + "version": "3.21.2", + "resolved": "http://registry.npmjs.org/express/-/express-3.21.2.tgz", + "integrity": "sha1-DCkD7lxU5j1lqWFwdkcDVQZlo94=", + "dev": true, + "requires": { + "basic-auth": "~1.0.3", + "commander": "2.6.0", + "connect": "2.30.2", + "content-disposition": "0.5.0", + "content-type": "~1.0.1", + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "debug": "~2.2.0", + "depd": "~1.0.1", + "escape-html": "1.0.2", + "etag": "~1.7.0", + "fresh": "0.3.0", + "merge-descriptors": "1.0.0", + "methods": "~1.1.1", + "mkdirp": "0.5.1", + "parseurl": "~1.3.0", + "proxy-addr": "~1.0.8", + "range-parser": "~1.0.2", + "send": "0.13.0", + "utils-merge": "1.0.0", + "vary": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.6.0", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + } + } + }, + "express-session": { + "version": "1.11.3", + "resolved": "http://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", + "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", + "dev": true, + "requires": { + "cookie": "0.1.3", + "cookie-signature": "1.0.6", + "crc": "3.3.0", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-headers": "~1.0.0", + "parseurl": "~1.3.0", + "uid-safe": "~2.0.0", + "utils-merge": "1.0.0" + }, + "dependencies": { + "uid-safe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", + "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "dev": true, + "requires": { + "base64-url": "1.2.1" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "finalhandler": { + "version": "0.4.0", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "escape-html": "1.0.2", + "on-finished": "~2.3.0", + "unpipe": "~1.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fresh": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "highlight.js": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", + "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "http-errors": { + "version": "1.3.1", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "statuses": "1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iced-coffee-script": { + "version": "108.0.11", + "resolved": "https://registry.npmjs.org/iced-coffee-script/-/iced-coffee-script-108.0.11.tgz", + "integrity": "sha1-HXH/k8kElyimRoOFqpvIkf10xY8=", + "dev": true, + "requires": { + "iced-runtime": ">=0.0.1" + } + }, + "iced-runtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/iced-runtime/-/iced-runtime-1.0.3.tgz", + "integrity": "sha1-LU9PuZmreqVDCxk8d6f85BGDGc4=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.11", + "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", + "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", + "dev": true + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "ipaddr.js": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", + "integrity": "sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jison": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.18.tgz", + "integrity": "sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w==", + "dev": true, + "requires": { + "JSONSelect": "0.4.0", + "cjson": "0.3.0", + "ebnf-parser": "0.1.10", + "escodegen": "1.3.x", + "esprima": "1.1.x", + "jison-lex": "0.3.x", + "lex-parser": "~0.1.3", + "nomnom": "1.5.2" + } + }, + "jison-lex": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.3.4.tgz", + "integrity": "sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U=", + "dev": true, + "requires": { + "lex-parser": "0.1.x", + "nomnom": "1.5.2" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonlint": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.0.tgz", + "integrity": "sha1-iKpGvCiaesk7tGyuLVihh6m7SUo=", + "dev": true, + "requires": { + "JSV": ">= 4.0.x", + "nomnom": ">= 1.5.x" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz", + "integrity": "sha1-IWnPdTjhsMyH+4jhUC2EdLv3mGQ=", + "dev": true + }, + "method-override": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", + "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "methods": "~1.1.2", + "parseurl": "~1.3.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, + "requires": { + "mime-db": "~1.37.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "morgan": { + "version": "1.6.1", + "resolved": "http://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", + "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", + "dev": true, + "requires": { + "basic-auth": "~1.0.3", + "debug": "~2.2.0", + "depd": "~1.0.1", + "on-finished": "~2.3.0", + "on-headers": "~1.0.0" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "multiparty": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", + "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9", + "stream-counter": "~0.2.0" + } + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=", + "dev": true + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "dev": true, + "requires": { + "colors": "0.5.x", + "underscore": "1.1.x" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "dev": true + } + } + }, + "nwsapi": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", + "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "pause": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", + "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "proxy-addr": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", + "integrity": "sha1-DUCoL4Afw1VWfS7LZe/j8HfxIcU=", + "dev": true, + "requires": { + "forwarded": "~0.1.0", + "ipaddr.js": "1.0.5" + } + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "dev": true + }, + "querystringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", + "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", + "dev": true + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", + "dev": true + }, + "range-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", + "dev": true + }, + "raw-body": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.13", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.13", + "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true + } + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "^4.13.1" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "response-time": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", + "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", + "dev": true, + "requires": { + "depd": "~1.1.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + } + } + }, + "rndm": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", + "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "send": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "integrity": "sha1-UY+SGusFYK7H3KspkLFM9vPM5d4=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "depd": "~1.0.1", + "destroy": "1.0.3", + "escape-html": "1.0.2", + "etag": "~1.7.0", + "fresh": "0.3.0", + "http-errors": "~1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "~2.3.0", + "range-parser": "~1.0.2", + "statuses": "~1.2.1" + }, + "dependencies": { + "destroy": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz", + "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=", + "dev": true + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", + "dev": true + } + } + }, + "serve-favicon": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", + "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", + "dev": true, + "requires": { + "etag": "~1.7.0", + "fresh": "0.3.0", + "ms": "0.7.2", + "parseurl": "~1.3.1" + }, + "dependencies": { + "ms": { + "version": "0.7.2", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "serve-index": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", + "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", + "dev": true, + "requires": { + "accepts": "~1.2.13", + "batch": "0.5.3", + "debug": "~2.2.0", + "escape-html": "~1.0.3", + "http-errors": "~1.3.1", + "mime-types": "~2.1.9", + "parseurl": "~1.3.1" + }, + "dependencies": { + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", + "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "dev": true, + "requires": { + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.13.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "send": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", + "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "depd": "~1.1.0", + "destroy": "~1.0.4", + "escape-html": "~1.0.3", + "etag": "~1.7.0", + "fresh": "0.3.0", + "http-errors": "~1.3.1", + "mime": "1.3.4", + "ms": "0.7.1", + "on-finished": "~2.3.0", + "range-parser": "~1.0.3", + "statuses": "~1.2.1" + } + }, + "statuses": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", + "dev": true + } + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "sshpk": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-counter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "dev": true, + "requires": { + "readable-stream": "~1.1.8" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "tablify": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/tablify/-/tablify-0.1.5.tgz", + "integrity": "sha1-RxYM4pGL4pHWPOzO3bUlTdcpgsc=", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tsscmp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", + "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "uid-safe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", + "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", + "dev": true, + "requires": { + "random-bytes": "~1.0.0" + } + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "url-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "dev": true, + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "vary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vhost": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", + "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "^0.1.2" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-mimetype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz", + "integrity": "sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw==", + "dev": true + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "zombie": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/zombie/-/zombie-6.1.3.tgz", + "integrity": "sha512-CckDy0fjlx/sWOjG054DOaGKFFonLQQ4MPEJDbxPXE2r+aUAj97KZfGNQ3vyCXq64qPVk8b+9DUNzXRdc9KrhA==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "bluebird": "^3.5.1", + "debug": "^3.1.0", + "eventsource": "^1.0.5", + "iconv-lite": "^0.4.21", + "jsdom": "11.12.0", + "lodash": "^4.17.10", + "mime": "^2.3.1", + "ms": "^2.1.1", + "request": "^2.85.0", + "tough-cookie": "^2.3.4", + "ws": "^5.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + } + } +} diff --git a/package.json b/package.json index 3f09db7..7629907 100644 --- a/package.json +++ b/package.json @@ -9,20 +9,20 @@ "author": "Chris Coyne ", "bin": "./bin/toffee", "dependencies": { - "coffee-script": "*", - "commander": "*", - "mkdirp": "*", - "highlight.js": "*" + "coffee-script": "^1.12.7", + "commander": "^2.19.0", + "highlight.js": "^9.13.1", + "mkdirp": "^0.5.1" }, "devDependencies": { - "assert": "*", + "assert": "^1.4.1", "colors": "^1.1.2", "diff": "^3.3.0", "express": "^3.21.2", - "iced-coffee-script": "*", - "jison": "*", - "tablify": "*", - "zombie": "*" + "iced-coffee-script": "^108.0.11", + "jison": "^0.4.18", + "tablify": "^0.1.5", + "zombie": "^6.1.3" }, "repository": { "type": "git", From 4d0df46b8d54253dabfc06cd7994141f90ff9dd4 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 30 Oct 2018 10:47:17 -0400 Subject: [PATCH 152/163] module updates --- index.js | 2 +- lib/command_line.js | 2 +- lib/consts.js | 2 +- lib/engine.js | 2 +- lib/errorHandler.js | 2 +- lib/pool.js | 2 +- lib/toffee_lang.js | 12 +- lib/utils.js | 2 +- lib/view.js | 2 +- package-lock.json | 794 +++++------------- package.json | 4 +- test/express3/app.coffee | 40 - test/express3/routes/index.js | 14 - test/express4/app.coffee | 37 + test/{express3 => express4}/package.json | 0 .../public/javascripts/jquery-1.9.0.min.js | 0 .../public/javascripts/test_cases.js | 0 .../public/javascripts/toffee.js | 0 .../public/stylesheets/style.css | 0 .../{express3 => express4}/views/index.toffee | 0 .../views/subdir1/hello_world.toffee | 0 .../views/subdir2/foo/goodbye.toffee | 0 .../views/subdir2/goodbye_world.toffee | 0 .../app.coffee | 0 .../package.json | 0 .../public/javascripts/jquery-1.9.0.min.js | 0 .../public/javascripts/test_cases.js | 0 .../public/javascripts/toffee.js | 0 .../public/stylesheets/style.css | 0 .../routes/index.js | 0 .../views/index.toffee | 0 .../views/test_bad_coffee_syntax.toffee | 0 .../views/test_bad_runtime.toffee | 0 .../views/test_bad_str_interpolate.toffee | 0 .../views/test_bad_toffee_syntax.toffee | 0 test/generate_express_test.coffee | 6 +- test/run_cases.iced | 2 +- 37 files changed, 242 insertions(+), 683 deletions(-) delete mode 100644 test/express3/app.coffee delete mode 100644 test/express3/routes/index.js create mode 100644 test/express4/app.coffee rename test/{express3 => express4}/package.json (100%) rename test/{express3 => express4}/public/javascripts/jquery-1.9.0.min.js (100%) rename test/{express3 => express4}/public/javascripts/test_cases.js (100%) rename test/{express3 => express4}/public/javascripts/toffee.js (100%) rename test/{express3 => express4}/public/stylesheets/style.css (100%) rename test/{express3 => express4}/views/index.toffee (100%) rename test/{express3 => express4}/views/subdir1/hello_world.toffee (100%) rename test/{express3 => express4}/views/subdir2/foo/goodbye.toffee (100%) rename test/{express3 => express4}/views/subdir2/goodbye_world.toffee (100%) rename test/{express3_error_handling => express4_error_handling}/app.coffee (100%) rename test/{express3_error_handling => express4_error_handling}/package.json (100%) rename test/{express3_error_handling => express4_error_handling}/public/javascripts/jquery-1.9.0.min.js (100%) rename test/{express3_error_handling => express4_error_handling}/public/javascripts/test_cases.js (100%) rename test/{express3_error_handling => express4_error_handling}/public/javascripts/toffee.js (100%) rename test/{express3_error_handling => express4_error_handling}/public/stylesheets/style.css (100%) rename test/{express3_error_handling => express4_error_handling}/routes/index.js (100%) rename test/{express3_error_handling => express4_error_handling}/views/index.toffee (100%) rename test/{express3_error_handling => express4_error_handling}/views/test_bad_coffee_syntax.toffee (100%) rename test/{express3_error_handling => express4_error_handling}/views/test_bad_runtime.toffee (100%) rename test/{express3_error_handling => express4_error_handling}/views/test_bad_str_interpolate.toffee (100%) rename test/{express3_error_handling => express4_error_handling}/views/test_bad_toffee_syntax.toffee (100%) diff --git a/index.js b/index.js index e8b445a..ca2da7c 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var __express, cacheless_engine, e, engine, getCommonHeaders, getCommonHeadersJs, ref, to_express, view; diff --git a/lib/command_line.js b/lib/command_line.js index 06ea69d..dddf3ae 100644 --- a/lib/command_line.js +++ b/lib/command_line.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var compile, fs, getCommonHeadersJs, getVersionNumber, maybeAttachHeaders, mkdirp, path, program, recurseRun, ref, run, view; diff --git a/lib/consts.js b/lib/consts.js index 89ae18c..aed3d69 100644 --- a/lib/consts.js +++ b/lib/consts.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { exports.states = { TOFFEE: 1, diff --git a/lib/engine.js b/lib/engine.js index 90863d1..3eb244f 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, ref, sandboxCons, states, tweakables, util, utils, view, vm, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; diff --git a/lib/errorHandler.js b/lib/errorHandler.js index 77787e9..a575eba 100644 --- a/lib/errorHandler.js +++ b/lib/errorHandler.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var _ppEscape, errorTypes, path, toffeeError, util, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, diff --git a/lib/pool.js b/lib/pool.js index eab9224..d61bdf7 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var Pool; diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index ce0d0bf..e0291ae 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -1,4 +1,4 @@ -/* parser generated by jison 0.4.17 */ +/* parser generated by jison 0.4.18 */ /* Returns a Parser object of the following structure: @@ -135,13 +135,9 @@ parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); } else { - function _parseError (msg, hash) { - this.message = msg; - this.hash = hash; - } - _parseError.prototype = Error; - - throw new _parseError(str, hash); + var error = new Error(str); + error.hash = hash; + throw error; } }, parse: function parse(input) { diff --git a/lib/utils.js b/lib/utils.js index 432037c..7417318 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var lex, lexer; diff --git a/lib/view.js b/lib/view.js index fbba03f..92dba16 100644 --- a/lib/view.js +++ b/lib/view.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.12.6 +// Generated by CoffeeScript 1.12.7 (function() { var TAB_SPACES, coffee, e, errorHandler, errorTypes, getBundleHeaders, getCommonHeaders, getCommonHeadersJs, parser, ref, ref1, spaces, states, tabs, toffeeError, util, utils, view, vm; diff --git a/package-lock.json b/package-lock.json index ca88bed..36781f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,13 +23,13 @@ "dev": true }, "accepts": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", - "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "~2.1.6", - "negotiator": "0.5.3" + "mime-types": "~2.1.18", + "negotiator": "0.6.1" } }, "acorn": { @@ -87,6 +87,12 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -145,30 +151,6 @@ "regenerator-runtime": "^0.11.0" } }, - "base64-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", - "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=", - "dev": true - }, - "basic-auth": { - "version": "1.0.4", - "resolved": "http://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", - "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=", - "dev": true - }, - "basic-auth-connect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", - "dev": true - }, - "batch": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", - "dev": true - }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -185,21 +167,21 @@ "dev": true }, "body-parser": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", - "integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "dev": true, "requires": { - "bytes": "2.1.0", - "content-type": "~1.0.1", - "debug": "~2.2.0", - "depd": "~1.0.1", - "http-errors": "~1.3.1", - "iconv-lite": "0.4.11", + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", "on-finished": "~2.3.0", - "qs": "4.0.0", - "raw-body": "~2.1.2", - "type-is": "~1.6.6" + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" } }, "browser-process-hrtime": { @@ -209,9 +191,9 @@ "dev": true }, "bytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", - "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "caseless": { @@ -260,84 +242,10 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, - "compressible": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", - "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", - "dev": true, - "requires": { - "mime-db": ">= 1.36.0 < 2" - } - }, - "compression": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz", - "integrity": "sha1-sDuNhub4rSloPLqN+R3cb/x3s5U=", - "dev": true, - "requires": { - "accepts": "~1.2.12", - "bytes": "2.1.0", - "compressible": "~2.0.5", - "debug": "~2.2.0", - "on-headers": "~1.0.0", - "vary": "~1.0.1" - } - }, - "connect": { - "version": "2.30.2", - "resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz", - "integrity": "sha1-jam8vooFTT0xjXTf7JA7XDmhtgk=", - "dev": true, - "requires": { - "basic-auth-connect": "1.0.0", - "body-parser": "~1.13.3", - "bytes": "2.1.0", - "compression": "~1.5.2", - "connect-timeout": "~1.6.2", - "content-type": "~1.0.1", - "cookie": "0.1.3", - "cookie-parser": "~1.3.5", - "cookie-signature": "1.0.6", - "csurf": "~1.8.3", - "debug": "~2.2.0", - "depd": "~1.0.1", - "errorhandler": "~1.4.2", - "express-session": "~1.11.3", - "finalhandler": "0.4.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "method-override": "~2.3.5", - "morgan": "~1.6.1", - "multiparty": "3.3.2", - "on-headers": "~1.0.0", - "parseurl": "~1.3.0", - "pause": "0.1.0", - "qs": "4.0.0", - "response-time": "~2.3.1", - "serve-favicon": "~2.3.0", - "serve-index": "~1.7.2", - "serve-static": "~1.10.0", - "type-is": "~1.6.6", - "utils-merge": "1.0.0", - "vhost": "~3.0.1" - } - }, - "connect-timeout": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz", - "integrity": "sha1-3ppexh4zoStu2qt7XwYumMWZuI4=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "http-errors": "~1.3.1", - "ms": "0.7.1", - "on-headers": "~1.0.0" - } - }, "content-disposition": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz", - "integrity": "sha1-QoT+auBjCHRjnkToCkGMKTQTXp4=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", "dev": true }, "content-type": { @@ -347,21 +255,11 @@ "dev": true }, "cookie": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz", - "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, - "cookie-parser": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz", - "integrity": "sha1-nXVVcPtdF4kHcSJ6AjFNm+fPg1Y=", - "dev": true, - "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6" - } - }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -380,23 +278,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "crc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", - "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=", - "dev": true - }, - "csrf": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz", - "integrity": "sha1-thEg3c7q/JHnbtUxO7XAsmZ7cQo=", - "dev": true, - "requires": { - "rndm": "1.2.0", - "tsscmp": "1.0.5", - "uid-safe": "2.1.4" - } - }, "cssom": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", @@ -412,18 +293,6 @@ "cssom": "0.3.x" } }, - "csurf": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", - "integrity": "sha1-I/KhO/HY/OHQyZZYg5RELLqGpWo=", - "dev": true, - "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6", - "csrf": "~3.0.0", - "http-errors": "~1.3.1" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -458,12 +327,12 @@ } }, "debug": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, "deep-is": { @@ -479,9 +348,9 @@ "dev": true }, "depd": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/depd/-/depd-1.0.1.tgz", - "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, "destroy": { @@ -527,44 +396,16 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "errorhandler": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.3.tgz", - "integrity": "sha1-t7cO2PNZ6duICS8tIMD4MUIK2D8=", - "dev": true, - "requires": { - "accepts": "~1.3.0", - "escape-html": "~1.0.3" - }, - "dependencies": { - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - } - } + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true }, "escape-html": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz", - "integrity": "sha1-130y+pjjjC9BroXpJ44ODmuhAiw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, "escodegen": { @@ -598,9 +439,9 @@ "dev": true }, "etag": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "eventsource": { @@ -613,68 +454,41 @@ } }, "express": { - "version": "3.21.2", - "resolved": "http://registry.npmjs.org/express/-/express-3.21.2.tgz", - "integrity": "sha1-DCkD7lxU5j1lqWFwdkcDVQZlo94=", + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, "requires": { - "basic-auth": "~1.0.3", - "commander": "2.6.0", - "connect": "2.30.2", - "content-disposition": "0.5.0", - "content-type": "~1.0.1", - "cookie": "0.1.3", + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", "cookie-signature": "1.0.6", - "debug": "~2.2.0", - "depd": "~1.0.1", - "escape-html": "1.0.2", - "etag": "~1.7.0", - "fresh": "0.3.0", - "merge-descriptors": "1.0.0", - "methods": "~1.1.1", - "mkdirp": "0.5.1", - "parseurl": "~1.3.0", - "proxy-addr": "~1.0.8", - "range-parser": "~1.0.2", - "send": "0.13.0", - "utils-merge": "1.0.0", - "vary": "~1.0.1" - }, - "dependencies": { - "commander": { - "version": "2.6.0", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true - } - } - }, - "express-session": { - "version": "1.11.3", - "resolved": "http://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", - "integrity": "sha1-XMmPP1/4Ttg1+Ry/CqvQxxB0AK8=", - "dev": true, - "requires": { - "cookie": "0.1.3", - "cookie-signature": "1.0.6", - "crc": "3.3.0", - "debug": "~2.2.0", - "depd": "~1.0.1", - "on-headers": "~1.0.0", - "parseurl": "~1.3.0", - "uid-safe": "~2.0.0", - "utils-merge": "1.0.0" - }, - "dependencies": { - "uid-safe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", - "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", - "dev": true, - "requires": { - "base64-url": "1.2.1" - } - } + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" } }, "extend": { @@ -708,14 +522,17 @@ "dev": true }, "finalhandler": { - "version": "0.4.0", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", - "integrity": "sha1-llpS2ejQXSuFdUhUH7ibU6JJfZs=", + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, "requires": { - "debug": "~2.2.0", - "escape-html": "1.0.2", + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", "unpipe": "~1.0.0" } }, @@ -743,9 +560,9 @@ "dev": true }, "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "getpass": { @@ -788,13 +605,23 @@ } }, "http-errors": { - "version": "1.3.1", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "inherits": "~2.0.1", - "statuses": "1" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, "http-signature": { @@ -824,10 +651,13 @@ "dev": true }, "iconv-lite": { - "version": "0.4.11", - "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", - "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4=", - "dev": true + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, "inherits": { "version": "2.0.1", @@ -836,9 +666,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", - "integrity": "sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", "dev": true }, "is-typedarray": { @@ -847,12 +677,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -1046,46 +870,11 @@ "dev": true }, "merge-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz", - "integrity": "sha1-IWnPdTjhsMyH+4jhUC2EdLv3mGQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, - "method-override": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", - "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", - "dev": true, - "requires": { - "debug": "2.6.9", - "methods": "~1.1.2", - "parseurl": "~1.3.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - } - } - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -1093,9 +882,9 @@ "dev": true }, "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, "mime-db": { @@ -1126,39 +915,16 @@ "minimist": "0.0.8" } }, - "morgan": { - "version": "1.6.1", - "resolved": "http://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", - "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", - "dev": true, - "requires": { - "basic-auth": "~1.0.3", - "debug": "~2.2.0", - "depd": "~1.0.1", - "on-finished": "~2.3.0", - "on-headers": "~1.0.0" - } - }, "ms": { - "version": "0.7.1", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multiparty": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", - "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "stream-counter": "~0.2.0" - } - }, "negotiator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", - "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, "nomnom": { @@ -1200,12 +966,6 @@ "ee-first": "1.1.1" } }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -1241,10 +1001,10 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "dev": true }, - "pause": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz", - "integrity": "sha1-68ikqGGf8LioGsFRPDQ0/0af23Q=", + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "performance-now": { @@ -1266,13 +1026,13 @@ "dev": true }, "proxy-addr": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", - "integrity": "sha1-DUCoL4Afw1VWfS7LZe/j8HfxIcU=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, "requires": { - "forwarded": "~0.1.0", - "ipaddr.js": "1.0.5" + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" } }, "psl": { @@ -1288,9 +1048,9 @@ "dev": true }, "qs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "querystringify": { @@ -1299,53 +1059,22 @@ "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", "dev": true }, - "random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "dev": true - }, "range-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", "dev": true }, "raw-body": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", "dev": true, "requires": { - "bytes": "2.4.0", - "iconv-lite": "0.4.13", + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.13", - "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", - "dev": true - } - } - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" } }, "regenerator-runtime": { @@ -1416,30 +1145,6 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "response-time": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.2.tgz", - "integrity": "sha1-/6cbq5UtYvfB1Jt0NDVfvGjf/Fo=", - "dev": true, - "requires": { - "depd": "~1.1.0", - "on-headers": "~1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - } - } - }, - "rndm": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1459,133 +1164,44 @@ "dev": true }, "send": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", - "integrity": "sha1-UY+SGusFYK7H3KspkLFM9vPM5d4=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "depd": "~1.0.1", - "destroy": "1.0.3", - "escape-html": "1.0.2", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.2", - "statuses": "~1.2.1" - }, - "dependencies": { - "destroy": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz", - "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=", - "dev": true - }, - "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", - "dev": true - } - } - }, - "serve-favicon": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", - "integrity": "sha1-3UGeJo3gEqtysxnTN/IQUBP5OB8=", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, "requires": { - "etag": "~1.7.0", - "fresh": "0.3.0", - "ms": "0.7.2", - "parseurl": "~1.3.1" - }, - "dependencies": { - "ms": { - "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "serve-index": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.3.tgz", - "integrity": "sha1-egV/xu4o3GP2RWbl+lexEahq7NI=", - "dev": true, - "requires": { - "accepts": "~1.2.13", - "batch": "0.5.3", - "debug": "~2.2.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "http-errors": "~1.3.1", - "mime-types": "~2.1.9", - "parseurl": "~1.3.1" - }, - "dependencies": { - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - } + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" } }, "serve-static": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", - "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { + "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.13.2" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "send": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", - "dev": true, - "requires": { - "debug": "~2.2.0", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "escape-html": "~1.0.3", - "etag": "~1.7.0", - "fresh": "0.3.0", - "http-errors": "~1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "~2.3.0", - "range-parser": "~1.0.3", - "statuses": "~1.2.1" - } - }, - "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=", - "dev": true - } + "parseurl": "~1.3.2", + "send": "0.16.2" } }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", @@ -1614,9 +1230,9 @@ } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true }, "stealthy-require": { @@ -1625,21 +1241,6 @@ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, - "stream-counter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", - "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", - "dev": true, - "requires": { - "readable-stream": "~1.1.8" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, "symbol-tree": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", @@ -1679,12 +1280,6 @@ "punycode": "^2.1.0" } }, - "tsscmp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz", - "integrity": "sha1-fcSjOvcVgatDN9qR2FylQn69mpc=", - "dev": true - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -1719,15 +1314,6 @@ "mime-types": "~2.1.18" } }, - "uid-safe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz", - "integrity": "sha1-Otbzg2jG1MjHXsF2I/t5qh0HHYE=", - "dev": true, - "requires": { - "random-bytes": "~1.0.0" - } - }, "underscore": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", @@ -1760,9 +1346,9 @@ } }, "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { @@ -1772,9 +1358,9 @@ "dev": true }, "vary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", - "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "verror": { @@ -1788,12 +1374,6 @@ "extsprintf": "^1.2.0" } }, - "vhost": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", - "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=", - "dev": true - }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", diff --git a/package.json b/package.json index 7629907..129bca1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.1", + "version": "0.3.2", "directories": { "lib": "./lib" }, @@ -18,7 +18,7 @@ "assert": "^1.4.1", "colors": "^1.1.2", "diff": "^3.3.0", - "express": "^3.21.2", + "express": "^4.16.4", "iced-coffee-script": "^108.0.11", "jison": "^0.4.18", "tablify": "^0.1.5", diff --git a/test/express3/app.coffee b/test/express3/app.coffee deleted file mode 100644 index 696deac..0000000 --- a/test/express3/app.coffee +++ /dev/null @@ -1,40 +0,0 @@ - -run = (cb) -> - toffee = require '../../index.js' - express = require 'express' - routes = require './routes' - http = require 'http' - - app = express() - - - app.configure -> - - toffee.expressEngine.verbose = not module.parent - toffee.expressEngine.prettyPrintErrors = false - - app.set 'port', process.env.PORT or 3033 - app.set 'views', __dirname + '/views' - app.engine 'toffee', toffee.__express - app.use express.favicon() - app.use express.logger 'dev' - app.use express.bodyParser() - app.use express.methodOverride() - app.use app.router - app.use express.static __dirname + '/public' - - app.configure 'development', -> - app.use express.errorHandler() - - app.get '/', routes.index - - http.createServer(app).listen app.get('port'), -> - console.log "Express server listening on port #{app.get('port')}" - if cb? then cb() - - -if not module.parent - run() - -else - exports.run = (cb) -> run cb \ No newline at end of file diff --git a/test/express3/routes/index.js b/test/express3/routes/index.js deleted file mode 100644 index e32b2b8..0000000 --- a/test/express3/routes/index.js +++ /dev/null @@ -1,14 +0,0 @@ - -/* - * GET home page. - */ - -exports.index = function(req, res){ - var circular_obj = [1,2,3]; - circular_obj.push(circular_obj); - var vars = { - title: 'Express', - a_bad_test_function: function() {return JSON.stringify(circular_obj);} - } - res.render('index.toffee', vars); -}; \ No newline at end of file diff --git a/test/express4/app.coffee b/test/express4/app.coffee new file mode 100644 index 0000000..6dc78ea --- /dev/null +++ b/test/express4/app.coffee @@ -0,0 +1,37 @@ + +run = (cb) -> + toffee = require '../../index.js' + express = require 'express' + http = require 'http' + + app = express() + + + app_configure = -> + + toffee.expressEngine.verbose = not module.parent + toffee.expressEngine.prettyPrintErrors = false + + app.set 'port', process.env.PORT or 3033 + app.set 'views', __dirname + '/views' + app.engine 'toffee', toffee.__express + app.use express.static __dirname + '/public' + app.route('/').get (req, res) => + circular_obj = [1,2,3] + circular_obj.push circular_obj + title = 'Express' + a_bad_test_function = -> return JSON.stringify circular_obj + vars = {title, a_bad_test_function} + res.render 'index.toffee', vars + + http.createServer(app).listen app.get('port'), -> + console.log "Express server listening on port #{app.get('port')}" + if cb? then cb() + + app_configure() + +if not module.parent + run() + +else + exports.run = (cb) -> run cb diff --git a/test/express3/package.json b/test/express4/package.json similarity index 100% rename from test/express3/package.json rename to test/express4/package.json diff --git a/test/express3/public/javascripts/jquery-1.9.0.min.js b/test/express4/public/javascripts/jquery-1.9.0.min.js similarity index 100% rename from test/express3/public/javascripts/jquery-1.9.0.min.js rename to test/express4/public/javascripts/jquery-1.9.0.min.js diff --git a/test/express3/public/javascripts/test_cases.js b/test/express4/public/javascripts/test_cases.js similarity index 100% rename from test/express3/public/javascripts/test_cases.js rename to test/express4/public/javascripts/test_cases.js diff --git a/test/express3/public/javascripts/toffee.js b/test/express4/public/javascripts/toffee.js similarity index 100% rename from test/express3/public/javascripts/toffee.js rename to test/express4/public/javascripts/toffee.js diff --git a/test/express3/public/stylesheets/style.css b/test/express4/public/stylesheets/style.css similarity index 100% rename from test/express3/public/stylesheets/style.css rename to test/express4/public/stylesheets/style.css diff --git a/test/express3/views/index.toffee b/test/express4/views/index.toffee similarity index 100% rename from test/express3/views/index.toffee rename to test/express4/views/index.toffee diff --git a/test/express3/views/subdir1/hello_world.toffee b/test/express4/views/subdir1/hello_world.toffee similarity index 100% rename from test/express3/views/subdir1/hello_world.toffee rename to test/express4/views/subdir1/hello_world.toffee diff --git a/test/express3/views/subdir2/foo/goodbye.toffee b/test/express4/views/subdir2/foo/goodbye.toffee similarity index 100% rename from test/express3/views/subdir2/foo/goodbye.toffee rename to test/express4/views/subdir2/foo/goodbye.toffee diff --git a/test/express3/views/subdir2/goodbye_world.toffee b/test/express4/views/subdir2/goodbye_world.toffee similarity index 100% rename from test/express3/views/subdir2/goodbye_world.toffee rename to test/express4/views/subdir2/goodbye_world.toffee diff --git a/test/express3_error_handling/app.coffee b/test/express4_error_handling/app.coffee similarity index 100% rename from test/express3_error_handling/app.coffee rename to test/express4_error_handling/app.coffee diff --git a/test/express3_error_handling/package.json b/test/express4_error_handling/package.json similarity index 100% rename from test/express3_error_handling/package.json rename to test/express4_error_handling/package.json diff --git a/test/express3_error_handling/public/javascripts/jquery-1.9.0.min.js b/test/express4_error_handling/public/javascripts/jquery-1.9.0.min.js similarity index 100% rename from test/express3_error_handling/public/javascripts/jquery-1.9.0.min.js rename to test/express4_error_handling/public/javascripts/jquery-1.9.0.min.js diff --git a/test/express3_error_handling/public/javascripts/test_cases.js b/test/express4_error_handling/public/javascripts/test_cases.js similarity index 100% rename from test/express3_error_handling/public/javascripts/test_cases.js rename to test/express4_error_handling/public/javascripts/test_cases.js diff --git a/test/express3_error_handling/public/javascripts/toffee.js b/test/express4_error_handling/public/javascripts/toffee.js similarity index 100% rename from test/express3_error_handling/public/javascripts/toffee.js rename to test/express4_error_handling/public/javascripts/toffee.js diff --git a/test/express3_error_handling/public/stylesheets/style.css b/test/express4_error_handling/public/stylesheets/style.css similarity index 100% rename from test/express3_error_handling/public/stylesheets/style.css rename to test/express4_error_handling/public/stylesheets/style.css diff --git a/test/express3_error_handling/routes/index.js b/test/express4_error_handling/routes/index.js similarity index 100% rename from test/express3_error_handling/routes/index.js rename to test/express4_error_handling/routes/index.js diff --git a/test/express3_error_handling/views/index.toffee b/test/express4_error_handling/views/index.toffee similarity index 100% rename from test/express3_error_handling/views/index.toffee rename to test/express4_error_handling/views/index.toffee diff --git a/test/express3_error_handling/views/test_bad_coffee_syntax.toffee b/test/express4_error_handling/views/test_bad_coffee_syntax.toffee similarity index 100% rename from test/express3_error_handling/views/test_bad_coffee_syntax.toffee rename to test/express4_error_handling/views/test_bad_coffee_syntax.toffee diff --git a/test/express3_error_handling/views/test_bad_runtime.toffee b/test/express4_error_handling/views/test_bad_runtime.toffee similarity index 100% rename from test/express3_error_handling/views/test_bad_runtime.toffee rename to test/express4_error_handling/views/test_bad_runtime.toffee diff --git a/test/express3_error_handling/views/test_bad_str_interpolate.toffee b/test/express4_error_handling/views/test_bad_str_interpolate.toffee similarity index 100% rename from test/express3_error_handling/views/test_bad_str_interpolate.toffee rename to test/express4_error_handling/views/test_bad_str_interpolate.toffee diff --git a/test/express3_error_handling/views/test_bad_toffee_syntax.toffee b/test/express4_error_handling/views/test_bad_toffee_syntax.toffee similarity index 100% rename from test/express3_error_handling/views/test_bad_toffee_syntax.toffee rename to test/express4_error_handling/views/test_bad_toffee_syntax.toffee diff --git a/test/generate_express_test.coffee b/test/generate_express_test.coffee index 133013a..d62dbae 100644 --- a/test/generate_express_test.coffee +++ b/test/generate_express_test.coffee @@ -6,7 +6,7 @@ coffee = require 'coffee-script' generateExpressTest = (cb) -> - proc = spawn path.join(__dirname,"../node_modules/.bin/coffee"), ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express3/public/javascripts/test_cases.js'] + proc = spawn path.join(__dirname,"../node_modules/.bin/coffee"), ['./src/command_line.coffee', '-n', './test/cases', '-o', './test/express4/public/javascripts/test_cases.js'] proc.stderr.on 'data', (buffer) -> console.log buffer.toString() proc.stdout.on 'data', (buffer) -> console.log buffer.toString() proc.on 'exit', (status) -> @@ -17,7 +17,7 @@ generateExpressTest = (cb) -> {getCommonHeadersJs} = require '../lib/view' headers = getCommonHeadersJs true, true - fs.writeFileSync "./test/express3/public/javascripts/toffee.js", headers, "utf8" + fs.writeFileSync "./test/express4/public/javascripts/toffee.js", headers, "utf8" # generate an index page that tests them all @@ -90,7 +90,7 @@ generateExpressTest = (cb) -> """ - fs.writeFileSync "./test/express3/views/index.toffee", test_page, "utf8" + fs.writeFileSync "./test/express4/views/index.toffee", test_page, "utf8" exports.generate = generateExpressTest diff --git a/test/run_cases.iced b/test/run_cases.iced index bfbf17a..04151ce 100644 --- a/test/run_cases.iced +++ b/test/run_cases.iced @@ -78,7 +78,7 @@ run_multiple_runs = (eng, num_runs, cb) -> cb null, (Date.now() - start), total_tests run_express_test = (cb) -> - require('./express3/app').run -> + require('./express4/app').run -> zombie.visit 'http://localhost:3033', (e, browser) -> if e console.log e From 360e44dcdff8561480441d51832bb663e0b8d3d1 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 30 Oct 2018 10:51:49 -0400 Subject: [PATCH 153/163] version --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 36781f0..f371e87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "toffee", - "version": "0.3.1", + "version": "0.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { From 0e7f419f684528cce31aaf0a2aebfd18339ceb8a Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Tue, 27 Nov 2018 10:05:58 -0500 Subject: [PATCH 154/163] removed unnecessary package.json from test --- test/express4/package.json | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 test/express4/package.json diff --git a/test/express4/package.json b/test/express4/package.json deleted file mode 100644 index 369973d..0000000 --- a/test/express4/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "application-name", - "version": "0.0.1", - "private": true, - "scripts": { - "start": "node app" - }, - "dependencies": { - "express": "3.0.0beta7", - "jade": "*" - } -} \ No newline at end of file From 30ea26c23b8ed719f2e6547d69ded2244adf80e6 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 21 Feb 2019 10:35:23 -0500 Subject: [PATCH 155/163] unicode newline fix. reduce package payload --- lib/view.js | 4 +- package.json | 7 +- src/view.coffee | 4 +- test/cases/bad_unicode/input.toffee | 8 + test/cases/bad_unicode/output.toffee | 7 + test/cases/junk/input.toffee | 2 +- test/cases/junk/output.toffee | 2 +- .../express4/public/javascripts/test_cases.js | 138 ++++++++++++- test/express4/views/index.toffee | 187 ++++++++++-------- 9 files changed, 271 insertions(+), 88 deletions(-) create mode 100644 test/cases/bad_unicode/input.toffee create mode 100644 test/cases/bad_unicode/output.toffee diff --git a/lib/view.js b/lib/view.js index 92dba16..db150aa 100644 --- a/lib/view.js +++ b/lib/view.js @@ -367,6 +367,7 @@ if (part[0] === "TOKENS") { res += this._printLineNo(lineno, ind); interp = part[1].replace(/(^[\n \t]+)|([\n \t]+)$/g, ''); + interp = interp.replace(/[\u2028\u2029]/g, '\n'); if (this._snippetIsSoloToken(interp)) { chunk = "\#{if " + interp + "? then escape " + interp + " else ''}"; } else if (this._snippetHasEscapeOverride(interp)) { @@ -377,7 +378,7 @@ res += "\n" + (spaces(ind)) + "_to " + (this._quoteStr(chunk)); lineno += part[1].split("\n").length - 1; } else { - lines = part[1].split("\n"); + lines = part[1].split(/[\n\u2028\u2029]/); for (i = m = 0, len3 = lines.length; m < len3; i = ++m) { line = lines[i]; res += this._printLineNo(lineno, ind); @@ -397,6 +398,7 @@ break; case "COFFEE": c = obj[1]; + c = c.replace(/[\u2028\u2029]/g, '\n'); res += "\n" + (this._reindent(c, indent_level, indent_baseline)); i_delta = this._getIndentationDelta(c, indent_baseline); state_carry.last_coffee_ends_with_newline = this._doesEndWithNewline(c); diff --git a/package.json b/package.json index 129bca1..876c594 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.2", + "version": "0.3.4", "directories": { "lib": "./lib" }, @@ -24,6 +24,11 @@ "tablify": "^0.1.5", "zombie": "^6.1.3" }, + "files": [ + "index.js", + "lib/*", + "bin/*" + ], "repository": { "type": "git", "url": "http://github.com/malgorithms/toffee" diff --git a/src/view.coffee b/src/view.coffee index b46088b..0f1ea2f 100644 --- a/src/view.coffee +++ b/src/view.coffee @@ -416,6 +416,7 @@ class view if part[0] is "TOKENS" res += @_printLineNo lineno, ind interp = part[1].replace /(^[\n \t]+)|([\n \t]+)$/g, '' + interp = interp.replace /[\u2028\u2029]/g , '\n' if @_snippetIsSoloToken interp chunk = "\#{if #{interp}? then escape #{interp} else ''}" else if @_snippetHasEscapeOverride interp @@ -425,7 +426,7 @@ class view res += "\n#{spaces ind}_to #{@_quoteStr chunk}" lineno += part[1].split("\n").length - 1 else - lines = part[1].split "\n" + lines = part[1].split /[\n\u2028\u2029]/ for line,i in lines res += @_printLineNo lineno, ind lbreak = if i isnt lines.length - 1 then "\n" else "" @@ -437,6 +438,7 @@ class view res += "\n#{spaces ind}_ts #{states.COFFEE}" when "COFFEE" c = obj[1] + c = c.replace /[\u2028\u2029]/g , '\n' res += "\n#{@_reindent c, indent_level, indent_baseline}" i_delta = @_getIndentationDelta c, indent_baseline state_carry.last_coffee_ends_with_newline = @_doesEndWithNewline c diff --git a/test/cases/bad_unicode/input.toffee b/test/cases/bad_unicode/input.toffee new file mode 100644 index 0000000..f184e18 --- /dev/null +++ b/test/cases/bad_unicode/input.toffee @@ -0,0 +1,8 @@ +\u2028:
 +\u2029:
 +{# + u2028 = "
" + u2029 = "
" +#} +

      HI 2028: #{"
"}

      +

      HI 2028: #{"
"}

      diff --git a/test/cases/bad_unicode/output.toffee b/test/cases/bad_unicode/output.toffee new file mode 100644 index 0000000..e7f9c21 --- /dev/null +++ b/test/cases/bad_unicode/output.toffee @@ -0,0 +1,7 @@ +\u2028: + +\u2029: + + +

      HI 2028:

      +

      HI 2028:

      diff --git a/test/cases/junk/input.toffee b/test/cases/junk/input.toffee index 7d402e3..c0420b0 100644 --- a/test/cases/junk/input.toffee +++ b/test/cases/junk/input.toffee @@ -2,4 +2,4 @@ supplies = ["broom", "mop", "vacuum"] #}
        {# for supply in supplies {:
      • #{supply}
      • :} #} -
      \ No newline at end of file +
    diff --git a/test/cases/junk/output.toffee b/test/cases/junk/output.toffee index 5e50d3c..f60f38f 100644 --- a/test/cases/junk/output.toffee +++ b/test/cases/junk/output.toffee @@ -1,3 +1,3 @@
    • broom
    • mop
    • vacuum
    • -
    \ No newline at end of file + diff --git a/test/express4/public/javascripts/test_cases.js b/test/express4/public/javascripts/test_cases.js index 7f1ce78..6abc176 100644 --- a/test/express4/public/javascripts/test_cases.js +++ b/test/express4/public/javascripts/test_cases.js @@ -1,4 +1,136 @@ +; +(function() { + var tmpl; + + tmpl = toffee.templates["/bad_unicode/input.toffee"] = { + bundlePath: "/bad_unicode/input.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var u2028, __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/bad_unicode/input.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\\u2028:\n"); + _ln(2); + _to("\n"); + _ln(3); + _to("\\u2029:\n"); + _ln(4); + _to("\n"); + _ln(5); + _ln(3); + _ts(2); + _ts(2); + u2028 = "u2029 = "; + _ts(1); + _ln(6); + _to("\n"); + _ln(7); + _to("

    HI 2028: "); + _to("" + (escape(""))); + _to("

    \n"); + _ln(8); + _to("

    HI 2028: "); + _to("" + (escape(""))); + _to("

    \n"); + _ln(9); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + +; +(function() { + var tmpl; + + tmpl = toffee.templates["/bad_unicode/output.toffee"] = { + bundlePath: "/bad_unicode/output.toffee" + }; + + tmpl.render = tmpl.pub = function(__locals) { + var __repress, _ln, _ref, _to, _ts; + __locals = __locals || {}; + __repress = (_ref = __locals.__toffee) != null ? _ref.repress : void 0; + _to = function(x) { + return __locals.__toffee.out.push(x); + }; + _ln = function(x) { + return __locals.__toffee.lineno = x; + }; + _ts = function(x) { + return __locals.__toffee.state = x; + }; + toffee.__augmentLocals(__locals, "/bad_unicode/output.toffee"); + with (__locals) {; + __toffee.out = []; + _ts(1); + _ts(1); + _ln(1); + _to("\\u2028:\n"); + _ln(2); + _to("\n"); + _ln(3); + _to("\\u2029:\n"); + _ln(4); + _to("\n"); + _ln(5); + _to("\n"); + _ln(6); + _to("

    HI 2028:

    \n"); + _ln(7); + _to("

    HI 2028:

    \n"); + _ln(8); + _ts(2); + __toffee.res = __toffee.out.join(""); + if (typeof postProcess !== "undefined" && postProcess !== null) { + __toffee.res = postProcess(__toffee.res); + } + if (!__repress) { + return __toffee.res; + } else { + return ""; + } + }; + + true; } /* closing JS 'with' */ ; + + if (typeof __toffee_run_input !== "undefined" && __toffee_run_input !== null) { + return tmpl.pub(__toffee_run_input); + } + +}).call(this); + ; (function() { var tmpl; @@ -2553,7 +2685,8 @@ _ts(1); _to("\n"); _ln(5); - _to(""); + _to("\n"); + _ln(6); _ts(2); __toffee.res = __toffee.out.join(""); if (typeof postProcess !== "undefined" && postProcess !== null) { @@ -2605,7 +2738,8 @@ _ln(2); _to("
  • broom
  • mop
  • vacuum
  • \n"); _ln(3); - _to(""); + _to("\n"); + _ln(4); _ts(2); __toffee.res = __toffee.out.join(""); if (typeof postProcess !== "undefined" && postProcess !== null) { diff --git a/test/express4/views/index.toffee b/test/express4/views/index.toffee index 3176ae5..baf5c2a 100644 --- a/test/express4/views/index.toffee +++ b/test/express4/views/index.toffee @@ -28,16 +28,40 @@ FILEEXPECTED OUTPUTSERVER RENDERBROWSER RENDER + + + bad_unicode + \u2028: + +\u2029: + + +

    HI 2028:

    +

    HI 2028:

    + + #{partial '../../cases/bad_unicode/input.toffee', {}} + + + + + + + + + big_file - 0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324... - #{partial '../../cases/big_file/input.toffee', {}} - + 0... 1... 2... 3... 4... 5... 6... 7... 8... 9... 10... 11... 12... 13... 14... 15... 16... 17... 18... 19... 20... 21... 22... 23... 24... 25... 26... 27... 28... 29... 30... 31... 32... 33... 34... 35... 36... 37... 38... 39... 40... 41... 42... 43... 44... 45... 46... 47... 48... 49... 50... 51... 52... 53... 54... 55... 56... 57... 58... 59... 60... 61... 62... 63... 64... 65... 66... 67... 68... 70... 70... 71... 72... 73... 74... 75... 76... 77... 78... 79... 80... 81... 82... 83... 84... 85... 86... 87... 88... 89... 90... 91... 92... 93... 94... 95... 96... 97... 98... 99... 100... 101... 102... 103... 104... 105... 106... 107... 108... 109... 110... 111... 112... 113... 114... 115... 116... 117... 118... 119... 120... 121... 122... 123... 124... 125... 126... 127... 128... 129... 130... 131... 132... 133... 134... 135... 136... 137... 138... 139... 140... 141... 142... 143... 144... 145... 146... 147... 148... 149... 150... 151... 152... 153... 154... 155... 156... 157... 158... 159... 160... 162...162... 163... 164... 165... 166... 167... 168... 169... 170... 171... 172... 173... 174... 175... 176... 177... 178... 179... 180... 181... 182... 183... 184... 185... 186... 187... 188... 189... 190... 191... 192... 193... 194... 195... 196... 197... 198... 199... 200... 201... 202... 203... 204... 205... 206... 207... 208... 209... 210... 211... 212... 213... 214... 215... 216... 217... 218... 219... 220... 221... 222... 223... 224... 225... 226... 227... 228... 229... 230... 232... 232... 233... 234... 235... 236... 237... 238... 239... 240... 241... 242... 243... 244... 245... 246... 247... 248... 249... 250... 251... 252... 253... 254... 255... 256... 257... 258... 259... 260... 261... 262... 263... 264... 265... 266... 267... 268... 269... 270... 271... 272... 273... 274... 275... 276... 277... 278... 279... 280... 281... 282... 283... 284... 285... 286... 287... 288... 289... 290... 291... 292... 293... 294... 295... 296... 297... 298... 299... 300... 301... 302... 303... 304... 305... 306... 307... 308... 309... 310... 311... 312... 313... 314... 315... 316... 317... 318... 319... 320... 321... 322... 324... + #{partial '../../cases/big_file/input.toffee', {}} + @@ -48,23 +72,23 @@ comments - + Pass 1 Pass 2 Pass 3 - #{partial '../../cases/comments/input.toffee', { + #{partial '../../cases/comments/input.toffee', { "greeting": "Hello" }} - + @@ -75,16 +99,16 @@ Pass 3 custom_escape -

    +

    custom x = Helloworldscriptvarx100script custom y = td custom z = clickclack custom w = 12objectObject

    - #{partial '../../cases/custom_escape/input.toffee', { + #{partial '../../cases/custom_escape/input.toffee', { escape: (s) -> "#{s}".replace /[^a-z0-9]/gi, '' }} - + @@ -103,7 +127,7 @@ Pass 3 eco_compare - + okcupid

    A site for singles

    @@ -112,12 +136,12 @@ Pass 3 You have 3 female friends. - #{partial '../../cases/eco_compare/input.toffee', {}} - + #{partial '../../cases/eco_compare/input.toffee', {}} + @@ -128,7 +152,7 @@ You have 3 female friends. escape -

    +

    default x = "Hello world" default y = <hr /> default z = click&clack @@ -176,12 +200,12 @@ You have 3 female friends. html printed longhand w = 1,2,[object Object]

    - #{partial '../../cases/escape/input.toffee', {}} - + #{partial '../../cases/escape/input.toffee', {}} + @@ -192,17 +216,17 @@ You have 3 female friends. hello_world - Hello, world. - #{partial '../../cases/hello_world/input.toffee', { + Hello, world. + #{partial '../../cases/hello_world/input.toffee', { "greeting": "Hello" }} - + @@ -213,23 +237,23 @@ You have 3 female friends. include_order - 1 + 1 2 hia b 3 4 - #{partial '../../cases/include_order/input.toffee', { + #{partial '../../cases/include_order/input.toffee', { "greeting": "Hello" }} - + @@ -240,17 +264,17 @@ b include_recursion - 10...9...8...7...6...5...4...3...2...1...blastoff! - #{partial '../../cases/include_recursion/input.toffee', { + 10...9...8...7...6...5...4...3...2...1...blastoff! + #{partial '../../cases/include_recursion/input.toffee', { "countdown" : 10 }} - + @@ -261,7 +285,7 @@ b include_techniques - From: Chris <ccoyne77@gmail> + From: Chris <ccoyne77@gmail> Msg: Hello, world From: Max & Sam @@ -274,14 +298,14 @@ Msg: Hello, world From: Unknown Msg: Hello, world - #{partial '../../cases/include_techniques/input.toffee', { + #{partial '../../cases/include_techniques/input.toffee', { }} - + @@ -292,7 +316,7 @@ Msg: Hello, world indent_attack -
    +
    Pass1Pass2
    @@ -308,14 +332,14 @@ Pass7Pass8 Pass12Pass13Pass14Pass15Pass16(a perfect square)Pass17Pass18Pass19 Pass20

    - #{partial '../../cases/indent_attack/input.toffee', { + #{partial '../../cases/indent_attack/input.toffee', { }} - + @@ -326,7 +350,7 @@ Pass7Pass8 json_formatting - + {"foo":[1,2,3],"bar":{"car":[4,5,"\u003C/html",{"zar":[6,7,null]}]}} { "foo": [ @@ -397,12 +421,12 @@ Pass7Pass8 "\u003C/script\u003E\"" ] - #{partial '../../cases/json_formatting/input.toffee', {}} - + #{partial '../../cases/json_formatting/input.toffee', {}} + @@ -413,15 +437,16 @@ Pass7Pass8 junk -
      +
      • broom
      • mop
      • vacuum
      • -
      - #{partial '../../cases/junk/input.toffee', {}} - +
    + + #{partial '../../cases/junk/input.toffee', {}} + @@ -432,13 +457,13 @@ Pass7Pass8 lambda_fns - PassPassPassPass - #{partial '../../cases/lambda_fns/input.toffee', {}} - + PassPassPassPass + #{partial '../../cases/lambda_fns/input.toffee', {}} + @@ -449,15 +474,15 @@ Pass7Pass8 multiline_interpolation - Hello, world + Hello, world
    Goodbye, world - #{partial '../../cases/multiline_interpolation/input.toffee', {}} - + #{partial '../../cases/multiline_interpolation/input.toffee', {}} + @@ -468,7 +493,7 @@ Goodbye, world passback - vx,vy,vz = vx0,, + vx,vy,vz = vx0,, This should output (1). vx,vy,vz = vx1,vy1, @@ -480,18 +505,18 @@ vx,vy,vz = vx3,vy3,vz2 vx,vy,vz = vx4,vy4,vz2 vx,vy,vz = vx5_sub,vy5_sub,vz2 - #{partial '../../cases/passback/input.toffee', { + #{partial '../../cases/passback/input.toffee', { "vx": "vx0", "x" : "hi" }} - + @@ -502,13 +527,13 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 plaintext - Hi there. - #{partial '../../cases/plaintext/input.toffee', {}} - + Hi there. + #{partial '../../cases/plaintext/input.toffee', {}} + @@ -519,15 +544,15 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 post_process - This-is-a-hidden-message + This-is-a-hidden-message .dlrow leurc ,eybdooG .dlrow ,olleH - #{partial '../../cases/post_process/input.toffee', { + #{partial '../../cases/post_process/input.toffee', { greeting: 'Hello' postProcess: (s) -> (c for c in s by -1).join '' }} - + @@ -556,13 +581,13 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 render_no_args - No arguments passed. - #{partial '../../cases/render_no_args/input.toffee', } - + No arguments passed. + #{partial '../../cases/render_no_args/input.toffee', } + @@ -573,7 +598,7 @@ vx,vy,vz = vx5_sub,vy5_sub,vz2 snippets - From: Preloaded sender + From: Preloaded sender Preloaded message. From: Unknown sender Unknown message. @@ -581,18 +606,18 @@ From: Sam Preloaded message. From: Max Unknown message. - #{partial '../../cases/snippets/input.toffee', { + #{partial '../../cases/snippets/input.toffee', { "from": "Preloaded sender", "msg" : "Preloaded message." }} - + @@ -603,7 +628,7 @@ Unknown message. special_cases - + "PASSED"

    @@ -614,12 +639,12 @@ A backslash is a \ - #{partial '../../cases/special_cases/input.toffee', {}} - + #{partial '../../cases/special_cases/input.toffee', {}} + From c7a2768bb21a463cb74c40389bc783115f5cac7a Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Mon, 14 Oct 2019 16:00:08 -0400 Subject: [PATCH 156/163] upgrade some old modules --- .kbignore | 1 - .yarnrc | 1 + lib/toffee_lang.js | 20 +- package-lock.json | 1503 -------------------------------------------- package.json | 24 +- yarn.lock | 1465 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 1488 insertions(+), 1526 deletions(-) delete mode 100644 .kbignore create mode 100644 .yarnrc delete mode 100644 package-lock.json create mode 100644 yarn.lock diff --git a/.kbignore b/.kbignore deleted file mode 100644 index 40b878d..0000000 --- a/.kbignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ \ No newline at end of file diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 0000000..fdd705c --- /dev/null +++ b/.yarnrc @@ -0,0 +1 @@ +save-prefix "" diff --git a/lib/toffee_lang.js b/lib/toffee_lang.js index e0291ae..b3f17e5 100644 --- a/lib/toffee_lang.js +++ b/lib/toffee_lang.js @@ -73,7 +73,7 @@ */ var toffee_lang = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,7],$V1=[1,8],$V2=[1,7],$V3=[1,9],$V4=[5,15],$V5=[1,15],$V6=[2,19],$V7=[1,20],$V8=[11,12,13,14,15,16],$V9=[5,9,12,13,14,15,16],$Va=[5,9,12,15,16]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"starter":3,"toffee_zone":4,"EOF":5,"toffee_code":6,"flip_to_coffee":7,"flip_to_toffee_comment":8,"START_TOFFEE_COMMENT":9,"toffee_commented_region":10,"END_TOFFEE_COMMENT":11,"START_COFFEE":12,"END_COFFEE":13,"START_TOFFEE":14,"END_TOFFEE":15,"CODE":16,"coffee_zone":17,"coffee_code":18,"flip_to_toffee":19,"code":20,"$accept":0,"$end":1}, terminals_: {2:"error",5:"EOF",9:"START_TOFFEE_COMMENT",11:"END_TOFFEE_COMMENT",12:"START_COFFEE",13:"END_COFFEE",14:"START_TOFFEE",15:"END_TOFFEE",16:"CODE"}, @@ -131,7 +131,7 @@ break; }, table: [{3:1,4:2,5:$V0,6:3,7:4,8:5,9:$V1,12:$V2,16:$V3,20:6},{1:[3]},{5:[1,10]},o($V4,[2,2],{7:11,8:12,9:$V1,12:$V2}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:13,9:$V1,12:$V2,16:$V3}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:14,9:$V1,12:$V2,16:$V3}),o([5,9,12,15],[2,21],{16:$V5}),{13:$V6,14:$V7,16:$V3,17:16,18:17,19:18,20:19},o($V8,[2,14],{10:21}),o($V9,[2,23]),{1:[2,1]},o($V4,$V0,{6:3,7:4,8:5,20:6,4:22,9:$V1,12:$V2,16:$V3}),o($V4,$V0,{6:3,7:4,8:5,20:6,4:23,9:$V1,12:$V2,16:$V3}),o($V4,[2,4]),o($V4,[2,6]),o($V9,[2,24]),{13:[1,24]},{13:[2,16],14:$V7,19:25},{13:$V6,14:$V7,16:$V3,17:26,18:17,19:18,20:19},o([13,14],[2,22],{16:$V5}),{4:27,6:3,7:4,8:5,9:$V1,12:$V2,15:$V0,16:$V3,20:6},{11:[1,28],12:[1,29],13:[1,30],14:[1,31],15:[1,32],16:[1,33]},o($V4,[2,3]),o($V4,[2,5]),o($Va,[2,15]),{13:$V6,14:$V7,16:$V3,17:34,18:17,19:18,20:19},{13:[2,18]},{15:[1,35]},o($Va,[2,8]),o($V8,[2,9]),o($V8,[2,10]),o($V8,[2,11]),o($V8,[2,12]),o($V8,[2,13]),{13:[2,17]},o([13,14,16],[2,20])], defaultActions: {10:[2,1],26:[2,18],34:[2,17]}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -419,7 +419,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -549,7 +549,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -559,12 +559,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -574,7 +574,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -583,7 +583,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -593,7 +593,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -641,7 +641,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = toffee_lang; exports.Parser = toffee_lang.Parser; exports.parse = function () { return toffee_lang.parse.apply(toffee_lang, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index f371e87..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1503 +0,0 @@ -{ - "name": "toffee", - "version": "0.3.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "JSONSelect": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", - "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=", - "dev": true - }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", - "dev": true - }, - "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", - "dev": true - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "dev": true, - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-globals": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz", - "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz", - "integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.0.tgz", - "integrity": "sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg==", - "dev": true - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "optional": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", - "dev": true - }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - } - }, - "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "cjson": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.0.tgz", - "integrity": "sha1-5kObkHA9MS/24iJAl76pLOPQKhQ=", - "dev": true, - "requires": { - "jsonlint": "1.6.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" - }, - "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cssom": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", - "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", - "dev": true - }, - "cssstyle": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", - "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "ebnf-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", - "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escodegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", - "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", - "dev": true, - "requires": { - "esprima": "~1.1.1", - "estraverse": "~1.5.0", - "esutils": "~1.0.0", - "source-map": "~0.1.33" - } - }, - "esprima": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", - "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", - "dev": true - }, - "estraverse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", - "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", - "dev": true - }, - "esutils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", - "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "highlight.js": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", - "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==" - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iced-coffee-script": { - "version": "108.0.11", - "resolved": "https://registry.npmjs.org/iced-coffee-script/-/iced-coffee-script-108.0.11.tgz", - "integrity": "sha1-HXH/k8kElyimRoOFqpvIkf10xY8=", - "dev": true, - "requires": { - "iced-runtime": ">=0.0.1" - } - }, - "iced-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/iced-runtime/-/iced-runtime-1.0.3.tgz", - "integrity": "sha1-LU9PuZmreqVDCxk8d6f85BGDGc4=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jison": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.18.tgz", - "integrity": "sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w==", - "dev": true, - "requires": { - "JSONSelect": "0.4.0", - "cjson": "0.3.0", - "ebnf-parser": "0.1.10", - "escodegen": "1.3.x", - "esprima": "1.1.x", - "jison-lex": "0.3.x", - "lex-parser": "~0.1.3", - "nomnom": "1.5.2" - } - }, - "jison-lex": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.3.4.tgz", - "integrity": "sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U=", - "dev": true, - "requires": { - "lex-parser": "0.1.x", - "nomnom": "1.5.2" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsonlint": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.0.tgz", - "integrity": "sha1-iKpGvCiaesk7tGyuLVihh6m7SUo=", - "dev": true, - "requires": { - "JSV": ">= 4.0.x", - "nomnom": ">= 1.5.x" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lex-parser": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", - "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=", - "dev": true - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "dev": true - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "dev": true, - "requires": { - "mime-db": "~1.37.0" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "nomnom": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", - "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", - "dev": true, - "requires": { - "colors": "0.5.x", - "underscore": "1.1.x" - }, - "dependencies": { - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", - "dev": true - } - } - }, - "nwsapi": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", - "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "querystringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", - "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "dev": true, - "requires": { - "lodash": "^4.13.1" - } - }, - "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "dev": true, - "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "sshpk": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", - "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true - }, - "tablify": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/tablify/-/tablify-0.1.5.tgz", - "integrity": "sha1-RxYM4pGL4pHWPOzO3bUlTdcpgsc=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "underscore": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", - "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", - "dev": true, - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "dev": true, - "requires": { - "browser-process-hrtime": "^0.1.2" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-mimetype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz", - "integrity": "sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw==", - "dev": true - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "zombie": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/zombie/-/zombie-6.1.3.tgz", - "integrity": "sha512-CckDy0fjlx/sWOjG054DOaGKFFonLQQ4MPEJDbxPXE2r+aUAj97KZfGNQ3vyCXq64qPVk8b+9DUNzXRdc9KrhA==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "bluebird": "^3.5.1", - "debug": "^3.1.0", - "eventsource": "^1.0.5", - "iconv-lite": "^0.4.21", - "jsdom": "11.12.0", - "lodash": "^4.17.10", - "mime": "^2.3.1", - "ms": "^2.1.1", - "request": "^2.85.0", - "tough-cookie": "^2.3.4", - "ws": "^5.1.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - } - } -} diff --git a/package.json b/package.json index 876c594..a997835 100644 --- a/package.json +++ b/package.json @@ -9,20 +9,20 @@ "author": "Chris Coyne ", "bin": "./bin/toffee", "dependencies": { - "coffee-script": "^1.12.7", - "commander": "^2.19.0", - "highlight.js": "^9.13.1", - "mkdirp": "^0.5.1" + "coffee-script": "1.12.7", + "commander": "2.19.0", + "highlight.js": "9.13.1", + "mkdirp": "0.5.1" }, "devDependencies": { - "assert": "^1.4.1", - "colors": "^1.1.2", - "diff": "^3.3.0", - "express": "^4.16.4", - "iced-coffee-script": "^108.0.11", - "jison": "^0.4.18", - "tablify": "^0.1.5", - "zombie": "^6.1.3" + "assert": "2.0.0", + "colors": "1.1.2", + "diff": "4.0.1", + "express": "4.17.1", + "iced-coffee-script": "108.0.13", + "jison": "0.4.18", + "tablify": "0.1.5", + "zombie": "6.1.4" }, "files": [ "index.js", diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..58ed6b0 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1465 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +JSONSelect@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" + integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= + +"JSV@>= 4.0.x": + version "4.0.2" + resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= + +abab@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^5.5.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + +ajv@^6.5.5: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +babel-runtime@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bluebird@^3.5.1: + version "3.7.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.0.tgz#56a6a886e03f6ae577cffedeb524f8f2450293cf" + integrity sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +cjson@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" + integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= + dependencies: + jsonlint "1.6.0" + +coffee-script@1.12.7: + version "1.12.7" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz#c05dae0cb79591d05b3070a8433a98c9a89ccc53" + integrity sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw== + +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= + +colors@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commander@2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +core-js@^2.4.0: + version "2.6.10" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" + integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.1, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +diff@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" + integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +ebnf-parser@0.1.10: + version "0.1.10" + resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" + integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +es-abstract@^1.12.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" + integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escodegen@1.3.x: + version "1.3.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" + integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= + dependencies: + esprima "~1.1.1" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.33" + +escodegen@^1.9.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@1.1.x, esprima@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" + integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventsource@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +express@4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +highlight.js@9.13.1: + version "9.13.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" + integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iced-coffee-script@108.0.13: + version "108.0.13" + resolved "https://registry.yarnpkg.com/iced-coffee-script/-/iced-coffee-script-108.0.13.tgz#574085c8c0e2e3f21583db46df3d8d541e511e0a" + integrity sha512-0qG9vtelrtfY1NCh+120EINbytkt2rkCVXJ81EOItbP7B8vildMCfLfuQdYRSy7r2T6Z+2zok/NuPRuokqSNNA== + dependencies: + iced-runtime ">=0.0.1" + uglify-js "^3.5.9" + +iced-runtime@>=0.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/iced-runtime/-/iced-runtime-1.0.4.tgz#e9de26dfe98cd8621201f7f3dfb9f7f09c550990" + integrity sha512-rgiJXNF6ZgF2Clh/TKUlBDW3q51YPDJUXmxGQXx1b8tbZpVpTn+1RX9q1sjNkujXIIaVxZByQzPHHORg7KV51g== + +iconv-lite@0.4.24, iconv-lite@^0.4.21: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inherits@2.0.4, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-generator-function@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== + +is-nan@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2" + integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI= + dependencies: + define-properties "^1.1.1" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +jison-lex@0.3.x: + version "0.3.4" + resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" + integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= + dependencies: + lex-parser "0.1.x" + nomnom "1.5.2" + +jison@0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" + integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== + dependencies: + JSONSelect "0.4.0" + cjson "0.3.0" + ebnf-parser "0.1.10" + escodegen "1.3.x" + esprima "1.1.x" + jison-lex "0.3.x" + lex-parser "~0.1.3" + nomnom "1.5.2" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@11.12.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +jsonlint@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" + integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= + dependencies: + JSV ">= 4.0.x" + nomnom ">= 1.5.x" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lex-parser@0.1.x, lex-parser@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" + integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.17.10, lodash@^4.17.11: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.3.1: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +nomnom@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" + integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= + dependencies: + colors "0.5.x" + underscore "1.1.x" + +"nomnom@>= 1.5.x": + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +nwsapi@^2.0.7: + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.entries@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.85.0, request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +source-map@~0.1.33: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + dependencies: + amdefine ">=0.0.4" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tablify@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/tablify/-/tablify-0.1.5.tgz#47160ce2918be291d63cecceddb5254dd72982c7" + integrity sha1-RxYM4pGL4pHWPOzO3bUlTdcpgsc= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +uglify-js@^3.5.9: + version "3.6.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.1.tgz#ae7688c50e1bdcf2f70a0e162410003cf9798311" + integrity sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ== + dependencies: + commander "2.20.0" + source-map "~0.6.1" + +underscore@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" + integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade" + integrity sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + object.entries "^1.1.0" + safe-buffer "^5.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +zombie@6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/zombie/-/zombie-6.1.4.tgz#9f0f53f3d9a032beb7f3fe5b382146a3475a4d47" + integrity sha512-yxNvKtyz3PP8lkr31AYh7vdbBD4is9hYXiOQKPp+k/7GiDiFQXX1Ex+peCl4ttodu/bHZcIluJ8lxMla5XefBQ== + dependencies: + babel-runtime "6.26.0" + bluebird "^3.5.1" + debug "^4.1.0" + eventsource "^1.0.5" + iconv-lite "^0.4.21" + jsdom "11.12.0" + lodash "^4.17.10" + mime "^2.3.1" + ms "^2.1.1" + request "^2.85.0" + tough-cookie "^2.3.4" + ws "^6.1.2" From 93786482d38b8e25c084f190952541bdb6076459 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Mon, 14 Oct 2019 16:04:09 -0400 Subject: [PATCH 157/163] version 0.3.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a997835..7e4567b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.4", + "version": "0.3.5", "directories": { "lib": "./lib" }, From 9ea7a1d83c832d88e7c91f6670223cbe00b865b4 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 16 Oct 2019 12:36:43 -0400 Subject: [PATCH 158/163] likely fixes issue with occasional file rename race on linux --- lib/engine.js | 58 +++++++++++++++++++++++++++-------------------- package.json | 3 ++- src/engine.coffee | 39 +++++++++++++++++-------------- yarn.lock | 9 +++++++- 4 files changed, 66 insertions(+), 43 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index 3eb244f..2417d0e 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.12.7 (function() { - var MAX_CACHED_SANDBOXES, Pool, engine, fs, path, ref, sandboxCons, states, tweakables, util, utils, view, vm, + var LockTable, MAX_CACHED_SANDBOXES, Pool, engine, fs, path, ref, sandboxCons, states, tweakables, util, utils, view, vm, bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; view = require('./view').view; @@ -19,6 +19,8 @@ vm = require('vm'); + LockTable = require('iced-lock').Table; + MAX_CACHED_SANDBOXES = 100; sandboxCons = function() { @@ -44,6 +46,7 @@ this.viewCache = {}; this.fsErrorCache = {}; this.filenameCache = {}; + this.fileLockTable = new LockTable(); } engine.prototype._log = function(o) { @@ -315,32 +318,39 @@ }; engine.prototype._reloadFileInBkg = function(filename, options) { - return fs.readFile(filename, 'utf8', (function(_this) { - return function(err, txt) { - var ctx, ref1, v, view_options; - if (err || (txt !== _this.viewCache[filename].txt)) { - if (err) { - _this.fsErrorCache[filename] = Date.now(); - txt = "Error: Could not read " + filename; - if (((ref1 = options.__toffee) != null ? ref1.parent : void 0) != null) { - txt += " requested in " + options.__toffee.parent; - } - } - if (!(err && _this.viewCache[filename].fsError)) { - view_options = _this._generateViewOptions(filename); - ctx = _this.pool.get(); - view_options.ctx = ctx; - view_options.cb = function(v) { - _this._log(filename + " updated and ready"); - _this.viewCache[filename] = v; - return _this.pool.release(ctx); - }; + this._log(filename + " acquiring lock to read"); + return this.fileLockTable.acquire2({ + name: filename + }, (function(_this) { + return function(lock) { + return fs.readFile(filename, 'utf8', function(err, txt) { + var ctx, ref1, v, view_options; + if (err || (txt !== _this.viewCache[filename].txt)) { if (err) { - view_options.fsError = true; + _this.fsErrorCache[filename] = Date.now(); + txt = "Error: Could not read " + filename; + if (((ref1 = options.__toffee) != null ? ref1.parent : void 0) != null) { + txt += " requested in " + options.__toffee.parent; + } + } + if (!(err && _this.viewCache[filename].fsError)) { + view_options = _this._generateViewOptions(filename); + ctx = _this.pool.get(); + view_options.ctx = ctx; + view_options.cb = function(v) { + _this._log(filename + " updated and ready"); + _this.viewCache[filename] = v; + return _this.pool.release(ctx); + }; + if (err) { + view_options.fsError = true; + } + v = new view(txt, view_options); } - return v = new view(txt, view_options); } - } + _this._log(filename + " lock releasing"); + return lock.release(); + }); }; })(this)); }; diff --git a/package.json b/package.json index 7e4567b..fdf514a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.5", + "version": "0.3.6", "directories": { "lib": "./lib" }, @@ -12,6 +12,7 @@ "coffee-script": "1.12.7", "commander": "2.19.0", "highlight.js": "9.13.1", + "iced-lock": "2.0.1", "mkdirp": "0.5.1" }, "devDependencies": { diff --git a/src/engine.coffee b/src/engine.coffee index db5495b..8eeea0d 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -6,7 +6,7 @@ fs = require 'fs' path = require 'path' util = require 'util' vm = require 'vm' - +LockTable = require('iced-lock').Table MAX_CACHED_SANDBOXES = 100 sandboxCons = () -> @@ -28,6 +28,7 @@ class engine @fsErrorCache = {} # filename -> timestamp last failed @filenameCache = {} # caches dir -> filename -> path.normalize path.resolve dir, filename + @fileLockTable = new LockTable() _log: (o) -> if @verbose @@ -227,23 +228,27 @@ class engine return v _reloadFileInBkg: (filename, options) -> - fs.readFile filename, 'utf8', (err, txt) => - if err or (txt isnt @viewCache[filename].txt) - if err - @fsErrorCache[filename] = Date.now() - txt = "Error: Could not read #{filename}" - if options.__toffee?.parent? then txt += " requested in #{options.__toffee.parent}" - if not (err and @viewCache[filename].fsError) # i.e., don't just create a new error view - view_options = @_generateViewOptions filename - ctx = @pool.get() - view_options.ctx = ctx - view_options.cb = (v) => - @_log "#{filename} updated and ready" - @viewCache[filename] = v - @pool.release(ctx) + @_log "#{filename} acquiring lock to read" + @fileLockTable.acquire2 {name: filename}, (lock) => + fs.readFile filename, 'utf8', (err, txt) => + if err or (txt isnt @viewCache[filename].txt) if err - view_options.fsError = true - v = new view txt, view_options + @fsErrorCache[filename] = Date.now() + txt = "Error: Could not read #{filename}" + if options.__toffee?.parent? then txt += " requested in #{options.__toffee.parent}" + if not (err and @viewCache[filename].fsError) # i.e., don't just create a new error view + view_options = @_generateViewOptions filename + ctx = @pool.get() + view_options.ctx = ctx + view_options.cb = (v) => + @_log "#{filename} updated and ready" + @viewCache[filename] = v + @pool.release(ctx) + if err + view_options.fsError = true + v = new view txt, view_options + @_log "#{filename} lock releasing" + lock.release() _generateViewOptions: (filename) -> return { diff --git a/yarn.lock b/yarn.lock index 58ed6b0..6352b05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -651,7 +651,14 @@ iced-coffee-script@108.0.13: iced-runtime ">=0.0.1" uglify-js "^3.5.9" -iced-runtime@>=0.0.1: +iced-lock@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/iced-lock/-/iced-lock-2.0.1.tgz#92fe46ffe01b872bf88f963c2a319fa8ad80d13b" + integrity sha512-J6dnGMpAoHNyACUYJYhiJkLY7YFRTa7NMZ8ZygpYB3HNDOGWtzv55+kT2u1zItRi4Y1EXruG9d1VDsx8R5faTw== + dependencies: + iced-runtime "^1.0.0" + +iced-runtime@>=0.0.1, iced-runtime@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/iced-runtime/-/iced-runtime-1.0.4.tgz#e9de26dfe98cd8621201f7f3dfb9f7f09c550990" integrity sha512-rgiJXNF6ZgF2Clh/TKUlBDW3q51YPDJUXmxGQXx1b8tbZpVpTn+1RX9q1sjNkujXIIaVxZByQzPHHORg7KV51g== From 317368e8093ce71fd417997a17d1a70ecfaf0808 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Wed, 16 Oct 2019 12:39:14 -0400 Subject: [PATCH 159/163] logging --- lib/engine.js | 1 + src/engine.coffee | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/engine.js b/lib/engine.js index 2417d0e..e434f9b 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -325,6 +325,7 @@ return function(lock) { return fs.readFile(filename, 'utf8', function(err, txt) { var ctx, ref1, v, view_options; + _this._log((Date.now()) + " - " + filename + " changed to " + (txt != null ? txt.length : void 0) + "bytes. " + (txt != null ? typeof txt.replace === "function" ? txt.replace(/\n/g, '').slice(0, 80) : void 0 : void 0)); if (err || (txt !== _this.viewCache[filename].txt)) { if (err) { _this.fsErrorCache[filename] = Date.now(); diff --git a/src/engine.coffee b/src/engine.coffee index 8eeea0d..feb1b74 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -231,6 +231,7 @@ class engine @_log "#{filename} acquiring lock to read" @fileLockTable.acquire2 {name: filename}, (lock) => fs.readFile filename, 'utf8', (err, txt) => + @_log "#{Date.now()} - #{filename} changed to #{txt?.length}bytes. #{txt?.replace?(/\n/g , '')[...80]}" if err or (txt isnt @viewCache[filename].txt) if err @fsErrorCache[filename] = Date.now() From 7516ee949a22a42df3a82d727bb7dca0135bc1be Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 2 Jan 2020 08:51:13 -0500 Subject: [PATCH 160/163] Update src/engine.coffee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Michał Zochniak --- src/engine.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine.coffee b/src/engine.coffee index feb1b74..61d9309 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -231,7 +231,7 @@ class engine @_log "#{filename} acquiring lock to read" @fileLockTable.acquire2 {name: filename}, (lock) => fs.readFile filename, 'utf8', (err, txt) => - @_log "#{Date.now()} - #{filename} changed to #{txt?.length}bytes. #{txt?.replace?(/\n/g , '')[...80]}" + @_log "#{Date.now()} - #{filename} changed to #{txt?.length} bytes. #{txt?.replace?(/\n/g , '')[...80]}" if not err if err or (txt isnt @viewCache[filename].txt) if err @fsErrorCache[filename] = Date.now() From e11563c03f4682076292791a9e7f2ab94274c64d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zochniak?= Date: Tue, 7 Jan 2020 21:30:36 +0100 Subject: [PATCH 161/163] Put lock.release in view_options.cb --- lib/engine.js | 18 +++++++++++++----- src/engine.coffee | 9 +++++++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/engine.js b/lib/engine.js index e434f9b..77ba860 100644 --- a/lib/engine.js +++ b/lib/engine.js @@ -324,8 +324,11 @@ }, (function(_this) { return function(lock) { return fs.readFile(filename, 'utf8', function(err, txt) { - var ctx, ref1, v, view_options; - _this._log((Date.now()) + " - " + filename + " changed to " + (txt != null ? txt.length : void 0) + "bytes. " + (txt != null ? typeof txt.replace === "function" ? txt.replace(/\n/g, '').slice(0, 80) : void 0 : void 0)); + var ctx, ref1, v, view_options, waiting_for_view; + if (!err) { + _this._log((Date.now()) + " - " + filename + " changed to " + (txt != null ? txt.length : void 0) + " bytes. " + (txt != null ? typeof txt.replace === "function" ? txt.replace(/\n/g, '').slice(0, 80) : void 0 : void 0)); + } + waiting_for_view = false; if (err || (txt !== _this.viewCache[filename].txt)) { if (err) { _this.fsErrorCache[filename] = Date.now(); @@ -341,16 +344,21 @@ view_options.cb = function(v) { _this._log(filename + " updated and ready"); _this.viewCache[filename] = v; - return _this.pool.release(ctx); + _this.pool.release(ctx); + _this._log(filename + " lock releasing (view_options.cb)"); + return lock.release(); }; + waiting_for_view = true; if (err) { view_options.fsError = true; } v = new view(txt, view_options); } } - _this._log(filename + " lock releasing"); - return lock.release(); + if (!waiting_for_view) { + _this._log(filename + " lock releasing (not waiting for view)"); + return lock.release(); + } }); }; })(this)); diff --git a/src/engine.coffee b/src/engine.coffee index 61d9309..337697f 100644 --- a/src/engine.coffee +++ b/src/engine.coffee @@ -232,6 +232,7 @@ class engine @fileLockTable.acquire2 {name: filename}, (lock) => fs.readFile filename, 'utf8', (err, txt) => @_log "#{Date.now()} - #{filename} changed to #{txt?.length} bytes. #{txt?.replace?(/\n/g , '')[...80]}" if not err + waiting_for_view = false if err or (txt isnt @viewCache[filename].txt) if err @fsErrorCache[filename] = Date.now() @@ -245,11 +246,15 @@ class engine @_log "#{filename} updated and ready" @viewCache[filename] = v @pool.release(ctx) + @_log "#{filename} lock releasing (view_options.cb)" + lock.release() + waiting_for_view = true # do not release lock instantly if err view_options.fsError = true v = new view txt, view_options - @_log "#{filename} lock releasing" - lock.release() + if not waiting_for_view + @_log "#{filename} lock releasing (not waiting for view)" + lock.release() _generateViewOptions: (filename) -> return { From 37fa8b0f6bf1c8383f669acb63861a445474282d Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 9 Feb 2023 09:03:26 -0500 Subject: [PATCH 162/163] package version bumps --- package.json | 16 +- test/run_cases.iced | 5 +- yarn.lock | 1085 +++++++++++++++++++++---------------------- 3 files changed, 529 insertions(+), 577 deletions(-) diff --git a/package.json b/package.json index fdf514a..ea46ba3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "toffee", "description": "A NodeJs and browser-side templating language based on CoffeeScript with slicker tokens and syntax.", - "version": "0.3.6", + "version": "0.3.7", "directories": { "lib": "./lib" }, @@ -10,17 +10,17 @@ "bin": "./bin/toffee", "dependencies": { "coffee-script": "1.12.7", - "commander": "2.19.0", - "highlight.js": "9.13.1", + "commander": "10.0.0", + "highlight.js": "11.7.0", "iced-lock": "2.0.1", - "mkdirp": "0.5.1" + "mkdirp": "2.1.3" }, "devDependencies": { "assert": "2.0.0", - "colors": "1.1.2", - "diff": "4.0.1", - "express": "4.17.1", - "iced-coffee-script": "108.0.13", + "colors": "1.4.0", + "diff": "5.1.0", + "express": "4.18.2", + "iced-coffee-script": "108.0.14", "jison": "0.4.18", "tablify": "0.1.5", "zombie": "6.1.4" diff --git a/test/run_cases.iced b/test/run_cases.iced index 04151ce..a64ec0e 100644 --- a/test/run_cases.iced +++ b/test/run_cases.iced @@ -1,7 +1,7 @@ {engine} = require '../lib/engine' fs = require 'fs' path = require 'path' -zombie = require 'zombie' +Browser = require 'zombie' coffee = require 'coffee-script' tablify = require 'tablify' colors = require 'colors' @@ -79,7 +79,8 @@ run_multiple_runs = (eng, num_runs, cb) -> run_express_test = (cb) -> require('./express4/app').run -> - zombie.visit 'http://localhost:3033', (e, browser) -> + browser = new Browser() + browser.visit 'http://127.0.0.1:3033', (e) -> if e console.log e $ = browser.window.$ diff --git a/yarn.lock b/yarn.lock index 6352b05..2829e32 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,25 +5,25 @@ JSONSelect@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/JSONSelect/-/JSONSelect-0.4.0.tgz#a08edcc67eb3fcbe99ed630855344a0cf282bb8d" - integrity sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40= + integrity sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ== "JSV@>= 4.0.x": version "4.0.2" resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" - integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= + integrity sha512-ZJ6wx9xaKJ3yFUhq5/sk82PJMuUyLk277I8mQeyDgCTjGdjWJIvPfaU5LIXaMuaN2UO1X3kZH4+lgphublZUHw== abab@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" - integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn-globals@^4.1.0: version "4.3.4" @@ -39,21 +39,21 @@ acorn-walk@^6.0.1: integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.0.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -61,34 +61,34 @@ ajv@^6.5.5: amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + integrity sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA== array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA== array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assert@2.0.0: version "2.0.0" @@ -108,22 +108,27 @@ async-limiter@~1.0.0: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== babel-runtime@6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -131,50 +136,60 @@ babel-runtime@6.26.0: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" bluebird@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.0.tgz#56a6a886e03f6ae577cffedeb524f8f2450293cf" - integrity sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: - bytes "3.1.0" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + integrity sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ== dependencies: ansi-styles "~1.0.0" has-color "~0.1.0" @@ -183,7 +198,7 @@ chalk@~0.4.0: cjson@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/cjson/-/cjson-0.3.0.tgz#e6439b90703d312ff6e2224097bea92ce3d02a14" - integrity sha1-5kObkHA9MS/24iJAl76pLOPQKhQ= + integrity sha512-bBRQcCIHzI1IVH59fR0bwGrFmi3Btb/JNwM/n401i1DnYgWndpsUBiQRAddLflkZage20A2d25OAWZZk0vBRlA== dependencies: jsonlint "1.6.0" @@ -195,12 +210,12 @@ coffee-script@1.12.7: colors@0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" - integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q= + integrity sha512-XjsuUwpDeY98+yz959OlUK6m7mLBM+1MEG5oaenfuQnNnrQk1WvtcvFgN3FNDP3f2NmZ211t0mNEfSEN1h0eIg== -colors@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -209,47 +224,42 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commander@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: - safe-buffer "5.1.2" + safe-buffer "5.2.1" content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js@^2.4.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" @@ -266,7 +276,7 @@ cssstyle@^1.0.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" @@ -287,43 +297,44 @@ debug@2.6.9: ms "2.0.0" debug@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: - ms "^2.1.1" + ms "2.1.2" deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -define-properties@^1.1.1, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== +define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -diff@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" - integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== +diff@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== domexception@^1.0.1: version "1.0.1" @@ -335,12 +346,12 @@ domexception@^1.0.1: ebnf-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" - integrity sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE= + integrity sha512-urvSxVQ6XJcoTpc+/x2pWhhuOX4aljCNQpwzw+ifZvV1andZkAmiJc3Rq1oGEAQmcjiLceyMXOy1l8ms8qs2fQ== ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -348,52 +359,27 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -es-abstract@^1.12.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" - integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== es6-object-assign@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escodegen@1.3.x: version "1.3.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" - integrity sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM= + integrity sha512-z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA== dependencies: esprima "~1.1.1" estraverse "~1.5.0" @@ -402,11 +388,11 @@ escodegen@1.3.x: source-map "~0.1.33" escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -416,12 +402,12 @@ escodegen@^1.9.1: esprima@1.1.x, esprima@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" - integrity sha1-W28VR/TRAuZw4UDFCb5ncdautUk= + integrity sha512-qxxB994/7NtERxgXdFgLHIs9M6bhLXc6qtUmWZ3L8+gTQ9qaoyki2887P2IqAYsoENyr8SUbTutStDniOHSDHg== -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== estraverse@^4.2.0: version "4.3.0" @@ -431,7 +417,7 @@ estraverse@^4.2.0: estraverse@~1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" - integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= + integrity sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ== esutils@^2.0.2: version "2.0.3" @@ -441,52 +427,51 @@ esutils@^2.0.2: esutils@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" - integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= + integrity sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg== etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventsource@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2" + integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== -express@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== +express@4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.20.1" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.11.0" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -499,45 +484,52 @@ extend@~3.0.2: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@~2.3.2: version "2.3.3" @@ -548,62 +540,92 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== dependencies: - ajv "^6.5.5" + ajv "^6.12.3" har-schema "^2.0.0" has-color@~0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + integrity sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" -has-symbols@^1.0.0: +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" -has@^1.0.1, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -highlight.js@9.13.1: - version "9.13.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e" - integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A== +highlight.js@11.7.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.7.0.tgz#3ff0165bc843f8c9bce1fd89e2fda9143d24b11e" + integrity sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -612,41 +634,30 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" -iced-coffee-script@108.0.13: - version "108.0.13" - resolved "https://registry.yarnpkg.com/iced-coffee-script/-/iced-coffee-script-108.0.13.tgz#574085c8c0e2e3f21583db46df3d8d541e511e0a" - integrity sha512-0qG9vtelrtfY1NCh+120EINbytkt2rkCVXJ81EOItbP7B8vildMCfLfuQdYRSy7r2T6Z+2zok/NuPRuokqSNNA== +iced-coffee-script@108.0.14: + version "108.0.14" + resolved "https://registry.yarnpkg.com/iced-coffee-script/-/iced-coffee-script-108.0.14.tgz#9ca5b258decf4a5eafb16f5663ff7683227c4f1a" + integrity sha512-e0CNmz51UGWRa2glPnUMnJM7oKQE81cxeC0WAgCjJDRImv3FDHldZr/Ngkbrgdbf1drGGzYWp+PWeJwXIfHwDw== dependencies: iced-runtime ">=0.0.1" uglify-js "^3.5.9" @@ -670,76 +681,69 @@ iconv-lite@0.4.24, iconv-lite@^0.4.21: dependencies: safer-buffer ">= 2.1.2 < 3" -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - inherits@2.0.4, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-generator-function@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== - -is-nan@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz#9faf65b6fb6db24b7f5c0628475ea71f988401e2" - integrity sha1-n69ltvttskt/XAYoR16nH5iEAeI= + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: - define-properties "^1.1.1" + has-tostringtag "^1.0.0" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== dependencies: - has "^1.0.1" + call-bind "^1.0.0" + define-properties "^1.1.3" -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== +is-typed-array@^1.1.10, is-typed-array@^1.1.3: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== dependencies: - has-symbols "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== jison-lex@0.3.x: version "0.3.4" resolved "https://registry.yarnpkg.com/jison-lex/-/jison-lex-0.3.4.tgz#81ca28d84f84499dfa8c594dcde3d8a3f26ec7a5" - integrity sha1-gcoo2E+ESZ36jFlNzePYo/Jux6U= + integrity sha512-EBh5wrXhls1cUwROd5DcDHR1sG7CdsCFSqY1027+YA1RGxz+BX2TDLAhdsQf40YEtFDGoiO0Qm8PpnBl2EzDJw== dependencies: lex-parser "0.1.x" nomnom "1.5.2" @@ -761,7 +765,7 @@ jison@0.4.18: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsdom@11.12.0: version "11.12.0" @@ -800,32 +804,32 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== jsonlint@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.0.tgz#88aa46bc289a7ac93bb46cae2d58a187a9bb494a" - integrity sha1-iKpGvCiaesk7tGyuLVihh6m7SUo= + integrity sha512-x6YLBe6NjdpmIeiklwQOxsZuYj/SOWkT33GlTpaG1UdFGjdWjPcxJ1CWZAX3wA7tarz8E2YHF6KiW5HTapPlXw== dependencies: JSV ">= 4.0.x" nomnom ">= 1.5.x" jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== dependencies: assert-plus "1.0.0" extsprintf "1.3.0" - json-schema "0.2.3" + json-schema "0.4.0" verror "1.10.0" left-pad@^1.3.0: @@ -836,7 +840,7 @@ left-pad@^1.3.0: levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -844,44 +848,44 @@ levn@~0.3.0: lex-parser@0.1.x, lex-parser@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" - integrity sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA= + integrity sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w== lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash@^4.17.10, lodash@^4.17.11: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.10, lodash@^4.17.19: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.40.0" + mime-db "1.52.0" mime@1.6.0: version "1.6.0" @@ -889,46 +893,39 @@ mime@1.6.0: integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.3.1: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -mkdirp@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" +mkdirp@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f" + integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== nomnom@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.5.2.tgz#f4345448a853cfbd5c0d26320f2477ab0526fe2f" - integrity sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8= + integrity sha512-fiVbT7BqxiQqjlR9U3FDGOSERFCKoXVCdxV2FwZuNN7/cmJ42iQx35nUFOAFDcyvemu9Adp+IlsCGlKQYLmBKw== dependencies: colors "0.5.x" underscore "1.1.x" @@ -936,71 +933,57 @@ nomnom@1.5.2: "nomnom@>= 1.5.x": version "1.8.1" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= + integrity sha512-5s0JxqhDx9/rksG2BTMVN1enjWSvPidpoSgViZU4ZXULyTe+7jxcCRLB6f42Z0l1xYJpleCBtSyY6Lwg3uu5CQ== dependencies: chalk "~0.4.0" underscore "~1.6.0" nwsapi@^2.0.7: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + version "2.2.2" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" + integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.entries@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" - integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" + word-wrap "~1.2.3" parse5@4.0.0: version "4.0.0" @@ -1015,12 +998,12 @@ parseurl@~1.3.3: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== pn@^1.1.0: version "1.1.0" @@ -1030,58 +1013,50 @@ pn@^1.1.0: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.0" + forwarded "0.2.0" + ipaddr.js "1.9.1" -psl@^1.1.24, psl@^1.1.28: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: - bytes "3.1.0" - http-errors "1.7.2" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -1090,26 +1065,26 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== dependencies: - lodash "^4.17.11" + lodash "^4.17.19" request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== dependencies: - request-promise-core "1.1.2" + request-promise-core "1.1.4" stealthy-require "^1.1.1" tough-cookie "^2.3.3" request@^2.85.0, request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1118,7 +1093,7 @@ request@^2.85.0, request@^2.87.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -1128,24 +1103,14 @@ request@^2.85.0, request@^2.87.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.0.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" @@ -1157,44 +1122,53 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.7.2" + http-errors "2.0.0" mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" + ms "2.1.3" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.1" + send "0.18.0" -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" source-map@~0.1.33: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= + integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ== dependencies: amdefine ">=0.0.4" @@ -1204,9 +1178,9 @@ source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -1218,36 +1192,20 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + integrity sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg== symbol-tree@^3.2.2: version "3.2.4" @@ -1257,14 +1215,14 @@ symbol-tree@^3.2.2: tablify@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/tablify/-/tablify-0.1.5.tgz#47160ce2918be291d63cecceddb5254dd72982c7" - integrity sha1-RxYM4pGL4pHWPOzO3bUlTdcpgsc= + integrity sha512-puOS3ef9p20DqujVs5JBCAYp5EeQke7B7+5g0SUdQKUNWkX6oM3jSzW8OD42HXowB7NTLisFGLsbYms3x+q9HA== -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@^2.3.3, tough-cookie@^2.3.4: +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -1272,41 +1230,33 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4: psl "^1.1.28" punycode "^2.1.1" -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== dependencies: punycode "^2.1.0" tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== dependencies: prelude-ls "~1.1.2" -type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -1315,84 +1265,73 @@ type-is@~1.6.17, type-is@~1.6.18: mime-types "~2.1.24" uglify-js@^3.5.9: - version "3.6.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.1.tgz#ae7688c50e1bdcf2f70a0e162410003cf9798311" - integrity sha512-+dSJLJpXBb6oMHP+Yvw8hUgElz4gLTh82XuX68QiJVTXaE5ibl6buzhNkQdYhBlIhozWOC9ge16wyRmjG4TwVQ== - dependencies: - commander "2.20.0" - source-map "~0.6.1" + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== underscore@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.1.7.tgz#40bab84bad19d230096e8d6ef628bff055d83db0" - integrity sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA= + integrity sha512-w4QtCHoLBXw1mjofIDoMyexaEdWGMedWNDhlWTtT1V1lCRqi65Pnoygkh6+WRdr+Bm8ldkBNkNeCsXGMlQS9HQ== underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= + integrity sha512-z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - util@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.1.tgz#f908e7b633e7396c764e694dd14e716256ce8ade" - integrity sha512-MREAtYOp+GTt9/+kwf00IYoHZyjM8VU4aVrkzUlejyqaIjd2GztVl5V9hGXKlvBKE3gENn/FMfHE5v6hElXGcQ== + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" is-generator-function "^1.0.7" - object.entries "^1.1.0" - safe-buffer "^5.1.2" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: - browser-process-hrtime "^0.1.2" + browser-process-hrtime "^1.0.0" webidl-conversions@^4.0.2: version "4.0.2" @@ -1421,30 +1360,42 @@ whatwg-url@^6.4.1: webidl-conversions "^4.0.2" whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.1" webidl-conversions "^4.0.2" -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +which-typed-array@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + version "5.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.3.tgz#05541053414921bc29c63bee14b8b0dd50b07b3d" + integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== dependencies: async-limiter "~1.0.0" ws@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" From 9d389f9b0f633cfc59ac351cf871d757b2a112c0 Mon Sep 17 00:00:00 2001 From: Chris Coyne Date: Thu, 9 Feb 2023 09:07:12 -0500 Subject: [PATCH 163/163] barely maintained notice --- README.md | 287 +++++++++++++++++++++--------------------------------- 1 file changed, 112 insertions(+), 175 deletions(-) diff --git a/README.md b/README.md index c4afd2c..fa54c1b 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,32 @@ -TOFFEE -========= -*Toffee* is a templating language, based on the simplicity and beauty of CoffeeScript. +# TOFFEE + +**_Toffee_ is barely maintained. Please consider another templating language.** - * it works with Node.js - * it works in the browser, too -- even the advanced features. +_Toffee_ is a templating language, based on the simplicity and beauty of CoffeeScript. + +- it works with Node.js +- it works in the browser, too -- even the advanced features. Newest feature: - * post-processing! You can let Toffee do your server-side code highighting, and other magic. +- post-processing! You can let Toffee do your server-side code highighting, and other magic. Toffee has many cool features. Keep on reading. -Table of Contents -================= - * [1. Language Basics](#section_1) - * [2. Notes on Escaping](#section_2) - * [3. Common Questions](#section_3) - * [4. Installation & Usage (Node, Express, and the browser)](#section_4) +# Table of Contents + +- [1. Language Basics](#section_1) +- [2. Notes on Escaping](#section_2) +- [3. Common Questions](#section_3) +- [4. Installation & Usage (Node, Express, and the browser)](#section_4) ## Language Basics Printing variables in Toffee is easy. Just use CoffeeScript's #{} syntax: + ```html

    - Hey, #{user.name}. - #{flirty_welcome_msg} + Hey, #{user.name}. #{flirty_welcome_msg}
    ``` @@ -32,7 +34,8 @@ The `#{}` syntax is powerful, so be responsible. ```html

    - You have #{(sheep for sheep in flock when sheep.color is 'black').length} black sheep in the flock. + You have #{(sheep for sheep in flock when sheep.color is 'black').length} + black sheep in the flock.

    ``` @@ -40,21 +43,17 @@ Including other files is possible thanks to the function `partial`. This works i ```html

    - #{partial "navigation.toffee", {username: user.name, age: 22} } + #{partial "navigation.toffee", {username: user.name, age: 22} }

    ``` But the greatest pleasure arises when you enter `coffee mode`. Note the `{# ... #}` region, where you can write multiple lines of CoffeeScript. - ```html

    - {# - ten_numbers = [1,3,2,4,5,8,6,7,69, Math.random()] - ten_numbers.sort (a,b) -> b - a - #} - The largest number I can even think of is #{ten_numbers[0]}. + {# ten_numbers = [1,3,2,4,5,8,6,7,69, Math.random()] ten_numbers.sort (a,b) -> + b - a #} The largest number I can even think of is #{ten_numbers[0]}.

    ``` @@ -62,25 +61,23 @@ Against all odds, inside `coffee mode`, you can switch back to `toffee mode` wit ```html
    -
    - {# - if projects.length - for project in projects {: - - :} - #} -
    +
    + {# if projects.length for project in projects {: + + :} #} +
    ``` This bracket and nesting syntax avoids a lot of large, ugly regions, such as EJS's unethical `<% } %>`. It's been wrong for thousands of years to have control markers surrounded by other control -markers, and it is still wrong. Witness: +markers, and it is still wrong. Witness: EJS, verbose and weak. + ``` <% for(var i=0; i
  • <%= supplies[i] %>
  • @@ -88,18 +85,19 @@ EJS, verbose and weak. ``` TOFFEE, so elegant and proud. + ```html -{# - for supply in supplies {:
  • #{supply}
  • :} -#} +{# for supply in supplies {: +
  • #{supply}
  • +:} #} ``` Or, using Toffee's `print`: + ```html -{# - for supply in supplies - print "
  • #{supply}
  • " -#} +{# for supply in supplies print " +
  • #{supply}
  • +" #} ``` These are slightly different, as `print` outputs raw text, while `#{}` used in toffee mode safely escapes HTML or JSON. This escaping @@ -108,19 +106,13 @@ escaping is customizable. More on that below. With nested code, indentation of your CoffeeScript is magically maintained. ```html -{# - if user.is_drunk - for name, profile of friends when profile.is_responsible {: -

    - You know, #{name} would make a great designated driver. - And she only lives #{profile.distance}km away. - {# - if profile.car? {: And wow, she drives a #{profile.car.model} :} - else {: But, alas, she has no wheels. :} - #} -

    - :} -#} +{# if user.is_drunk for name, profile of friends when profile.is_responsible {: +

    + You know, #{name} would make a great designated driver. And she only lives + #{profile.distance}km away. {# if profile.car? {: And wow, she drives a + #{profile.car.model} :} else {: But, alas, she has no wheels. :} #} +

    +:} #} ``` ### Partials (including other files), both for output and configuration @@ -144,10 +136,7 @@ Shallow copies of variables are passed through from the parent document, however Again, toffee's `print` function allows you to use partials when in coffeescript mode: ```html -{# - if user? - print partial "logged_in_template.toffee" -#} +{# if user? print partial "logged_in_template.toffee" #} ``` For your safety and convenience, variables are shallow-copied into a template. This means if you redefine or create a variable in a @@ -160,9 +149,7 @@ in a the child template.

    Our site's name is #{site_name}.

    -{# - passback.site_name = "gittub.com" -#} +{# passback.site_name = "gittub.com" #} ``` For your naming convenience, you can also use the `load` function, which is identical to `partial` but withholds output. @@ -170,21 +157,17 @@ For your naming convenience, you can also use the `load` function, which is iden ### Post-processing New in the latest version of Toffee, you can pass a `postProcess` function to Toffee. This works for individual partials or even -an entire document. The `postProcess` function performs a final transformation on your output. +an entire document. The `postProcess` function performs a final transformation on your output. One smart use of postProcess is to find anything inside triple tick marks and perform a code higlighting. ```html -{# - print partial './something.toffee', { - foo: 1000 - postProcess: (s) -> find_and_higlight_code_in s - } -#} +{# print partial './something.toffee', { foo: 1000 postProcess: (s) -> +find_and_higlight_code_in s } #} ``` You could define `find_and_highlight_code_in` anywhere in your publishing stack. You can pass it from your webserver, define it above, whatever. If you're -doing this server-side, consider the popular Node module *highlight.js*. In that case, define a highlight function that hunts for +doing this server-side, consider the popular Node module _highlight.js_. In that case, define a highlight function that hunts for triple tick marks and then uses highlight's highlighter to transform it. Your users shouldn't have to wait for client-side JS to re-process your pages. @@ -193,24 +176,16 @@ Your users shouldn't have to wait for client-side JS to re-process your pages. Since CoffeeScript is sensitive to indenting, so is Toffee. -But...Toffee doesn't care where you start your CoffeeScript. When you want to create a coffee block, -you can indent it however you like, and all that matters is that the internal, +But...Toffee doesn't care where you start your CoffeeScript. When you want to create a coffee block, +you can indent it however you like, and all that matters is that the internal, relative indenting is correct. For example, these are identical: ```html

    - {# - if user.is_awesome {: - YAY! - :} - #} + {# if user.is_awesome {: YAY! :} #}

    -{# -if user.is_awesome {: - YAY! -:} -#} + {# if user.is_awesome {: YAY! :} #}

    ``` @@ -220,15 +195,8 @@ Note that where you put your toffee mode tokens (`{:`) is important, as the foll ```html

    - {# - if x is true - if y is true - if z is true - w = true - {: - x is true! Dunno anything about y or z, though. - :} - #} + {# if x is true if y is true if z is true w = true {: x is true! Dunno + anything about y or z, though. :} #}

    ``` @@ -236,88 +204,67 @@ Why? Because this is roughly the same as saying: ```html

    - {# - if x is true - if y is true - if z is true - w = true - print "\n x is true! Dunno anything about y or z, though.\n " - #} + {# if x is true if y is true if z is true w = true print "\n x is true! Dunno + anything about y or z, though.\n " #}

    ``` -One syntactic convenience: if you start a `{:` on the same line as some preceeding CoffeeScript, it's +One syntactic convenience: if you start a `{:` on the same line as some preceeding CoffeeScript, it's treated the same as putting it on a new line and indenting one level. So the following three conditionals are the same: ```html -{# - if x is true - {:yay:} -#} +{# if x is true {:yay:} #} ``` ```html -{# - if x is true {:yay:} -#} +{# if x is true {:yay:} #} ``` ```html -{# - if x is true {: - yay - :} -#} +{# if x is true {: yay :} #} ``` The third example has extra whitespace around the "yay," but otherwise the three are logically identical. ### One gotcha with indenting - - THIS IS AN ERROR + ```html -{# if x is 0 {:Yay!:} - else {:Burned:} -#} +{# if x is 0 {:Yay!:} else {:Burned:} #} ``` Note that the indentations before the 'if' and the 'else' are technically different, as the `if` has only 1 space before it, and the `else` has 2. This is better style anyway: GOOD + ```html -{# - if x is 0 {:Yay!:} - else {:Burned:} -#} +{# if x is 0 {:Yay!:} else {:Burned:} #} ``` With a single line of CoffeeScript, feel free to keep it all on one line: GOOD + ```html
    {# foo = "bar" #}
    ``` - ## Commenting out a block of toffee In toffee mode, you can comment out a region with `{##` and `##}`. ```html
    - I don't want to output this anymore... - {## -

    An ode to Ruby on Rails

    -

    #{partial 'ode.toffee'}

    - ##} + I don't want to output this anymore... {## +

    An ode to Ruby on Rails

    +

    #{partial 'ode.toffee'}

    + ##}
    ``` - ## Escaping In your CoffeeScript, the `print` function lets you print the raw value of a variable: @@ -336,46 +283,44 @@ But in toffee mode, `#{some_expression}` output is escaped intelligently by defa

    #{danger_code}

    ``` -You can control the escaping, but here are the defaults: +You can control the escaping, but here are the defaults: - * if it's a string or scalar, it is escaped for HTML safety. - * it's an array or object, it is converted to JSON. +- if it's a string or scalar, it is escaped for HTML safety. +- it's an array or object, it is converted to JSON. ### Custom Escaping You can bypass the above rules. - * `#{json foo}`: this outputs foo as JSON. - * `#{raw foo}`: this outputs foo in raw text. - * `#{html foo}`: this outputs foo, escaped as HTML. For a scalar, it's the same as `#{foo}`, but it's available in case you -(1) override the default escaping or (2) turn off auto-escaping (both explained below). - * `#{partial "foo.toffee"}` and `#{snippet "foo.toffee"}`: unescaped, since you don't want to escape your own templates +- `#{json foo}`: this outputs foo as JSON. +- `#{raw foo}`: this outputs foo in raw text. +- `#{html foo}`: this outputs foo, escaped as HTML. For a scalar, it's the same as `#{foo}`, but it's available in case you + (1) override the default escaping or (2) turn off auto-escaping (both explained below). +- `#{partial "foo.toffee"}` and `#{snippet "foo.toffee"}`: unescaped, since you don't want to escape your own templates -When any of the functions mentioned above are leftmost in a `#{}` token in toffee mode, their output is left untouched by the +When any of the functions mentioned above are leftmost in a `#{}` token in toffee mode, their output is left untouched by the built in escape function. These functions are also available to you in coffee mode. ```html

    - Want to read some JSON, human? - {# - foo = [1,2,3, {bar: "none"}] - foo_as_json_as_html = html json foo - print foo_as_json_as_html - #} + Want to read some JSON, human? {# foo = [1,2,3, {bar: "none"}] + foo_as_json_as_html = html json foo print foo_as_json_as_html #}

    ``` -*Note!* if you pass a variable to the template called `json`, `raw`, or `html`, Toffee won't create these helper functions, which would override your vars. +_Note!_ if you pass a variable to the template called `json`, `raw`, or `html`, Toffee won't create these helper functions, which would override your vars. In this case, you can access the escape functions through their official titles, `__toffee.raw`, etc. Overriding the default `escape`: - * If you pass a variable to your template called `escape`, this will be used as the default escape. In toffee mode, everything inside `#{}` that isn't subject to an above-mentioned exception will go through your `escape` function. + +- If you pass a variable to your template called `escape`, this will be used as the default escape. In toffee mode, everything inside `#{}` that isn't subject to an above-mentioned exception will go through your `escape` function. Turning off autoescaping entirely: - * If you set `autoEscape: false` when creating the engine, the default will be raw across your project. (See more on that below under Express 3.x settings.) - * Alternatively, you could pass the var `escape: (x) -> x` to turn off escaping for a given template. + +- If you set `autoEscape: false` when creating the engine, the default will be raw across your project. (See more on that below under Express 3.x settings.) +- Alternatively, you could pass the var `escape: (x) -> x` to turn off escaping for a given template. ## Common Questions @@ -387,6 +332,7 @@ The syntaxes are pretty different, so pick the one you prefer. One big Toffee advantage: multiple lines of CoffeeScript just look like CoffeeScript. Compare: ECO + ``` <% if @projects.length: %> <% for project in @projects: %> @@ -398,17 +344,14 @@ ECO ``` TOFFEE + ```html -{# - if projects.length - for project in projects - if project.is_active {: -

    #{project.name} | #{project.description}

    - :} -#} +{# if projects.length for project in projects if project.is_active {: +

    #{project.name} | #{project.description}

    +:} #} ``` -With Toffee's syntax, brackets enclose regions not directives, so your editor +With Toffee's syntax, brackets enclose regions not directives, so your editor will let you collapse and expand sections of code. And if you click on one of the brackets in most editors, it will highlight the matching bracket. @@ -418,33 +361,31 @@ In Express 2.0, that's up to Express. When used in Express 3.0, Toffee asynchron #### Does it find line numbers in errors? -Yes, Toffee does a very good job of that. There are 3 possible places you can hit an error in Toffee: - * in the language itself, say a parse error - * in the CoffeeScript, preventing it from compiling to JS - * runtime, in the final JS +Yes, Toffee does a very good job of that. There are 3 possible places you can hit an error in Toffee: + +- in the language itself, say a parse error +- in the CoffeeScript, preventing it from compiling to JS +- runtime, in the final JS -Stack traces are converted to lines in Toffee and show you where the problem is. -By default when Toffee hits an error it replies with some pretty-printed HTML showing you the problem. +Stack traces are converted to lines in Toffee and show you where the problem is. +By default when Toffee hits an error it replies with some pretty-printed HTML showing you the problem. This can be overridden, as explained below in the Express 3.0 section. ### Does it support partials? (a.k.a includes) -Yes. In Express 2.0, Express itself is responsible for including other files, and they call this system "partials." In Express 3.0 and in the browser, -Toffee defines the `partial` function, and it works as you'd expect. +Yes. In Express 2.0, Express itself is responsible for including other files, and they call this system "partials." In Express 3.0 and in the browser, +Toffee defines the `partial` function, and it works as you'd expect. ```html
    #{partial '../foo/bar.toffee', name: "Chris"}
    ``` Inside a region of CoffeeScript, you can print or capture the result of a partial. + ```html
    -{# - if session - print partial 'user_menu.toffee', info: session.info - else - print partial 'guest_menu.toffee' -#} + {# if session print partial 'user_menu.toffee', info: session.info else print + partial 'guest_menu.toffee' #}
    ``` @@ -466,14 +407,13 @@ be the path to your layout file. ## Installation & Usage - * [Using Toffee in NodeJS](https://github.com/malgorithms/toffee/wiki/NodeJS-Usage) - * [Using Toffee in Express 3](https://github.com/malgorithms/toffee/wiki/Express3-Usage) - * [Using Toffee in Express 2](https://github.com/malgorithms/toffee/wiki/Express2-Usage) - * [Using Toffee in the Browser](https://github.com/malgorithms/toffee/wiki/Browser-Usage) +- [Using Toffee in NodeJS](https://github.com/malgorithms/toffee/wiki/NodeJS-Usage) +- [Using Toffee in Express 3](https://github.com/malgorithms/toffee/wiki/Express3-Usage) +- [Using Toffee in Express 2](https://github.com/malgorithms/toffee/wiki/Express2-Usage) +- [Using Toffee in the Browser](https://github.com/malgorithms/toffee/wiki/Browser-Usage) +# contributing & asking for fixes. -contributing & asking for fixes. -================= If you have a problem with Toffee let me know, and I'll fix it ASAP. Also, I'm likely to accept good pull requests. @@ -488,6 +428,3 @@ To build and test your changes > icake build > icake test ``` - - -