{"_id":"coco","_rev":"160-b0bfe5e6709552edd3ca93e152674cb5","name":"coco","description":"Unfancy CoffeeScript","dist-tags":{"latest":"0.9.1"},"versions":{"0.2.2":{"name":"coco","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr"},"version":"0.2.2","licenses":[{"type":"MIT","url":"https://github.com/satyr/coco/raw/master/LICENSE"}],"engines":{"node":">=0.2.5"},"directories":{"lib":"./lib"},"main":"./lib/coco","bin":{"coco":"./bin/coco","coke":"./bin/coke"},"_id":"coco@0.2.2","_nodeSupported":true,"_npmVersion":"0.2.12-1","_nodeVersion":"v0.3.1","dist":{"shasum":"1cfb4d68a39821da7b7e3bcf42bd75ace165df32","tarball":"https://registry.npmjs.org/coco/-/coco-0.2.2.tgz","integrity":"sha512-Zin5JnlJSBOJG2GKIo9q/TjZVqbsqoarIgjehQV05N8JrfI+uxxXJksL4PUw3uSIxekBf28acnlvNG2UoH5j5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCoj9WDccEC7A2+NF3KmaNVYhL5Wcucs1QHxfKuzAU5QIgMhRqHDbELijNKyTLE9aD5yGyXKZYo7SdGrLsd+sNN3w="}]}},"0.3.3":{"name":"coco","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"version":"0.3.3","homepage":"http://satyr.github.com/coco/","repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"licenses":[{"type":"MIT","url":"https://github.com/satyr/coco/raw/master/LICENSE"}],"engines":{"node":">=0.2.6"},"directories":{"lib":"./lib","bin":"./bin"},"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"_id":"coco@0.3.3","_engineSupported":true,"_npmVersion":"0.3.15","_nodeVersion":"v0.4.2","files":[""],"_defaultsLoaded":true,"dist":{"shasum":"787443ac24bde34b1885d3d8b7ce8c31b1874654","tarball":"https://registry.npmjs.org/coco/-/coco-0.3.3.tgz","integrity":"sha512-8ZpZXtzlqAY6ph+1ad0j3vBB8HCO5UBtOUFD4g2VAGouLMJCwDsoSzbQ2Rgeie0vRKLVNgrX0Peo/ZAZfhB0pA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBpwqkzCWC8fvgFEhenWpHR4/Q3ZZLoACkGSsrdh/2pqAiBbkDUVdql2NfG5AkatfpTAO0wYo983cG8JDLVBWD2xjA=="}]}},"0.4.2":{"name":"coco","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"version":"0.4.2","homepage":"http://satyr.github.com/coco/","repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"licenses":[{"type":"MIT","url":"https://github.com/satyr/coco/raw/master/LICENSE"}],"engines":{"node":">=0.4.0"},"directories":{"lib":"./lib"},"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"_id":"coco@0.4.2","_engineSupported":true,"_npmVersion":"0.3.17","_nodeVersion":"v0.4.2","files":[""],"_defaultsLoaded":true,"dist":{"shasum":"de422fef134984d00c2f7effcca6695eaf762e2e","tarball":"https://registry.npmjs.org/coco/-/coco-0.4.2.tgz","integrity":"sha512-Jb1wkcpHuv5QSazpCUVyvL9axJgnMLr/yOQCGkSGULhCXgO+gcjUM8yaTc9BAVBbEiPd2r1BrS6LQk+MIKneLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEr55Kv7hqkgqtgHWPsj5DTq+bAMgWufnmPdQ9mWryT6AiEA5n628TIqkF+oLss5Zesej/vzr5u50XohswIMAeVrdcg="}]}},"0.5.4":{"name":"coco","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"version":"0.5.4","homepage":"http://satyr.github.com/coco/","repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"licenses":[{"type":"MIT","url":"https://github.com/satyr/coco/raw/master/LICENSE"}],"engines":{"node":">=0.4.0"},"directories":{"lib":"./lib"},"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"dependencies":{},"devDependencies":{},"_id":"coco@0.5.4","_engineSupported":true,"_npmVersion":"1.0.1","_nodeVersion":"v0.4.5","_defaultsLoaded":true,"dist":{"shasum":"085c8e15e94e8032599e428976521801e667162f","tarball":"https://registry.npmjs.org/coco/-/coco-0.5.4.tgz","integrity":"sha512-8T/v/JEHFHYsajNI+DXQOh78/+F5q3yqDfgI8rf/vYdMbTIXht8jEj8ve05PZsr/jcpcArBsmSBrQ9npBidiMQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo+BCbuXs/9pbNZ91UF2oR6RjCQVQ7bMI7yIoJCY9z4wIgbaTWypDhGfz6Ev3i+5fCIhlwTV6shrai7o6O9tGyybs="}]},"scripts":{}},"0.6.7":{"name":"coco","version":"0.6.7","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","licenses":[{"type":"MIT","url":"https://github.com/satyr/coco/raw/master/LICENSE"}],"engines":{"node":">= 0.4.0"},"directories":{"lib":"./lib"},"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.0.6"},"_npmJsonOpts":{"file":"/cygdrive/c/users/io_oi/Desktop/.npm/coco/0.6.7/package/package.json","serverjs":false,"contributors":false,"wscript":false},"_id":"coco@0.6.7","dependencies":{},"_engineSupported":true,"_npmVersion":"1.0.24","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"24a80b0dce92daf50bb4a2a18a331869e7a00003","tarball":"https://registry.npmjs.org/coco/-/coco-0.6.7.tgz","integrity":"sha512-lnAmV+yI3GPFUJqzOCE810OBMPtZ1QpIFtgYvX3zs30K/6ygU7K8HX7rPkdQhv3cCgTcBLS4wEl2gg3Ui+F56g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHXVYJ3LpZ3J22XP0tLTpy423Kj+UE9a0FVGDq1A1wehAiA6lEo62vr2nV7PM6lVO8tNCgTCW1gIXScL62ZSnp7XPA=="}]},"scripts":{},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.7.6":{"name":"coco","version":"0.7.6","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.2.6"},"_id":"coco@0.7.6","dist":{"shasum":"621ee047ab4af0e8f4deb947e1cf75d1ef8b72ea","tarball":"https://registry.npmjs.org/coco/-/coco-0.7.6.tgz","integrity":"sha512-UMm2iY0gUjlOmS61vguJqmFXiTNBe2n/KAxZdkObIAoeKTQvgnem10WDEtwMoN59sQUYrD1encIVrIHpWQUX4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfa5DeIc1U6v6kZdaHVYmOQzb0pkztKE7J7Zgn95tslAIhALpS63nCA2HBIrNXezfGyqTy2BsQuueipDLA7szibrWS"}]},"readme":"","maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.8.0":{"name":"coco","version":"0.8.0","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.2.6"},"readme":"# Coco\nis a [CoffeeScript](http://coffeescript.org) dialect\nthat aims to be more radical and practical.\n\n## Why\nOn its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks:\n[horrible variable scope](https://github.com/jashkenas/coffee-script/issues/712),\n[awkward ranges](https://github.com/jashkenas/coffee-script/issues/746),\n[confusing](https://github.com/jashkenas/coffee-script/issues/702)\n[and/or](https://github.com/jashkenas/coffee-script/issues/785)\n[pointless](https://github.com/jashkenas/coffee-script/issues/813)\nkeywords, verbose file extension,\n[and so on](https://github.com/satyr/coco/wiki/wtfcs).\nCoco tries to amend them, entwining good parts of both.\n\n## Principles\n- Respect JS semantics and idioms.\n- Die for [DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).\n- Perl over Ruby.\n- Fewer keywords, punctuations and runtime errors.\n\n## Differences\n- [Improvements](https://github.com/satyr/coco/wiki/improvements)\n- [Incompatibilities](https://github.com/satyr/coco/wiki/incompatibilities)\n- [Side by Side Comparison](https://github.com/satyr/coco/wiki/side-by-side-comparison)\n\n## Documents\n- [Additions](https://github.com/satyr/coco/wiki/additions)\n- [Glossary](https://github.com/satyr/coco/wiki/glossary)\n- [Annotated Source](http://satyr.github.com/coco/src/)\n\n## Installation\nGet [Node.js](http://nodejs.org) and [npm](http://npmjs.org), then:\n\n- `npm i -g coco`\n- `git clone git://github.com/satyr/coco.git && cd coco && bin/coke i`\n\n## Changelog\n### 0.8.0\n- Allowed hyphenated alphabets within identifiers as alias to their upper case:\n  `encode-URI-component` => `encodeURIComponent`\n- Added cascade. ([#72](https://github.com/satyr/coco/issues/72)\n- Changed the pipe operator to `|>`.\n- Revised `=>` as another block creation operator.\n- `export`/`import`/`const`/`var` can now appear anywhere.\n- `catch`ed variables are now function-scoped.\n  ([coffee#2422](https://github.com/jashkenas/coffee-script/issues/2422))\n- Generated variables now get postfix `$` rather than prefix `__`.\n\n### 0.7.6\n- Added `export const`.\n- Enabled object splat within brace objects via `...:`.\n- Allowed array repetition to work on slices and comprehensions.\n- Disallowed malformed hex/unicode escape sequence in string.\n- Quit overloading `+` for array concatenation.\n- `class` can be bodyless again.\n- `super` no longer auto-`.call`s more than once.\n\n### 0.7.5\n- Implemented `implements`. ([#144](https://github.com/satyr/coco/issues/144))\n- Top-level `void`s are now simply ignored and usable like Python's __pass__.\n\n### 0.7.4\n- Added `import` declaration in place of the implicit `this import`:\n  `import a, b` => `this <<< a <<< b`\n- Made `super` work in accessor methods.\n- Disallowed redeclarations via `var`.\n- Improved handling of nonexistent files.\n\n### 0.7.3\n- Node.js 0.8.x.\n- Added `const` and `var`. ([#139](https://github.com/satyr/coco/issues/139))\n- Made `function` variables read-only.\n- Removed `-n` shorthand for `--nodejs`.\n  ([#142](https://github.com/satyr/coco/issues/142))\n- Bug fixes:\n  - `super` with nested classes and methods\n  - `f a, while b then c` etc.\n  - and others:\n    [#138](https://github.com/satyr/coco/issues/138)\n    [#141](https://github.com/satyr/coco/issues/141)\n    [#143](https://github.com/satyr/coco/issues/143)\n\n### 0.7.2\n- Revised accessor. ([#5](https://github.com/satyr/coco/issues/5))\n- Allowed implicit array after some unary operators.\n- Added named backcall: `<-:f g` => `g(:f ->)`\n- Made `{[q]:p}` short for `{p: [q]:p}`.\n\n### 0.7.1\n- Added `export` statement. ([#121](https://github.com/satyr/coco/issues/121))\n- Made `{{q}:p}` short for `{p: {q}:p}`.\n- Allowed keyword literals as object shorthand: `{true}` => `{true: true}`\n- Allowed decimals and `$` in number comments.\n- Removed uppercase radix prefixes and exponential notation as per\n  [coffee#2061](https://github.com/jashkenas/coffee-script/issues/2061).\n- Labelling a function (literal or IIFE sugar) now names it.\n  E.g. `:f ->` compiles to `(function f(){})`.\n- `super` call to a bound class now works as expected.\n- All compiler-generated variables are now double-underscore prefixed.\n- `--interactive` no longer implies `--bare`.\n  Use `-bi` when you want top-level variables to persist.\n\n### 0.7.0\n- Caught up Node.js 0.6.x.\n- `!` against function/backcall now suppresses its auto-return.\n- `superclass` now points to the constructor that the `class extends`.\n- `super` now relies solely on `superclass` rather than requiring special forms like `C::m = ->`.\n- `of` no longer delegates to `Array::indexOf`, making it consistent with `for`-`of` behavior.\n- Inline implicit objects now close at newline or `if`/`for`/`while`/`until`.\n- `--print` no longer implies `--compile`.\n- `--watch` now works on Windows.\n\n### 0.6.7\n- Fixed [coffee#1715](https://github.com/jashkenas/coffee-script/issues/1715) etc.\n- Trivial improvements.\n\n### 0.6.6\n- Added unary assignments: `!! = x` => `x = !!x`\n- Made `a? <<< b` short for `a <<< b if a?`.\n- Improved stack traces from directly run .co files.\n\n### 0.6.5\n- `case`/`of`/`instanceof` now works better with array slice.\n- `instanceof` now rejects invalid right operands.\n\n### 0.6.4\n- Unary operators now spread into an array operand: `+[a, b]` => `[+a, +b]`\n- `..` now points to the constructor under `class`.\n- _coke_ now works from subdirectories.\n  ([coffee#1687](https://github.com/jashkenas/coffee-script/issues/1687))\n\n### 0.6.3\n- Added pipe operator: `f! => g _` => `_ = f!; g _`\n- Fixed identifier lexing as per ES5.\n- Improved label handlings.\n- Helper functions are now declared last.\n  ([coffee#1638](https://github.com/jashkenas/coffee-script/issues/1638))\n\n### 0.6.2\n- Added character ranges: `[\\a to \\d]` => `[\\a \\b \\c \\d]`\n- Added named destructuring: `{p, q}:o = f!` => `o = f!; {p, q} = o`\n- Numbers can no longer start with `.`.\n- `function` can no longer prefix `->`/`~>`.\n  Use `~function` to declare bound functions instead.\n\n### 0.6.1\n- Allowed line folding after `for` prepositions.\n- `import`ing onto a soaked expression is now safe.\n- `--json` now modifies `--ast` or `--compile`.\n- Fixed [#81](https://github.com/satyr/coco/issues/81) etc.\n\n### 0.6.0\n\n#### Additions\n- Added [soak assign](https://github.com/satyr/coco/issues/71).\n- Added [`<?` and `>?` operators](https://github.com/satyr/coco/issues/66).\n- Loops can now have [`else` clause](https://github.com/satyr/coco/issues/75).\n- `import x` is now short for `this <<< x`.\n- `,` after `(`, `[` or another `,` now implies `void`.\n\n#### Changes\n- Added [object slice](https://github.com/satyr/coco/issues/77).\n- Added bang call: `f!` => `f()`\n- Revised clone syntax from `x{}` to `^x`.\n- Revised semiautovivification syntax from `.!`/`.@` to `.@`/`.@@`.\n- Variable interpolations no longer require braces:\n  `\"(#id)\"` => `\"(\" + id + \")\"`\n- Spaced dots now close implicit calls.\n  See [coffee#1407](https://github.com/jashkenas/coffee-script/issues/1407).\n- Direct calls to `super` now delegate `this`.\n- [`extended` hook](https://github.com/jashkenas/coffee-script/issues/516) is back.\n- `from` of `for` is now optional, meaning `from 0`.\n  `til`less `from` is no longer allowed.\n\n### 0.5.4\n- `while`/`until` can now have update clause after test clause:\n  `continue while f(), g()` => `for (; f(); g()) {}`\n- `that` no longer triggers anaphoric conversion under `unless`/`until`.\n- Disallowed `a.=b = c` `p:~ (a, b) ->` `f ..., a` etc.\n- Fixed [coffee#1416](https://github.com/jashkenas/coffee-script/issues/1416).\n\n### 0.5.3\n- Added `do`-`while`/`until` construction.\n- Added `$` flag to regexes. Same as `.source`, but more efficient.\n- Suppressed implicit return on `new`ed/setter functions.\n- Sped up lexer.\n\n### 0.5.2\n- Added `!?` (inexistence) operator.\n- `function` no longer requires parens around parameters.\n- `class` block is now mandatory.\n- Bug fixes:\n  [coffee#1352](https://github.com/jashkenas/coffee-script/issues/1352)\n  [coffee#1354](https://github.com/jashkenas/coffee-script/issues/1354)\n\n### 0.5.1\n- `a.b.c?.=d.e` now works as expected.\n- `a[b, c] = d` now works as expected.\n- _extras/coco.js_ works again on WSH.\n- `--output` implies `--compile` again.\n\n### 0.5.0\n- Added `**` operator.\n- Overloaded `+`/`-`/`/` (in addition to `*`) for arrays and strings.\n- Revised `let`: `let (a) ~>` => `let a then`\n- Allowed underscores within number literals.\n- Major regex changes:\n  - Dieted heregex: `/// re ///` => `// re //`\n  - Allowed leading whitespace in normal regex literals when unambiguous.\n  - No longer accepts invalid regexes.\n- `->` is now optional when `function` is used.\n- `case` accepts comma-separated tests again.\n- `return`/`throw` can now take a block.\n- REPL now uses _^J_ to continue lines.\n\n### 0.4.2\n- Enabled:\n  - ADI on `?.`\n  - ACI on `++`/`--`\n  - conditional destructuring assignments\n  - colors and tab completion in REPL\n- Made leading `*`s serve like list markers.\n\n### 0.4.1\n- Added string/array multiplication.\n- Added label support.\n- Aliased `constructor` as `..`.\n\n### 0.4.0\n- Added `let`. Unary `do` is back at being simple call.\n- Added `with`.\n- Added semiautovivification.\n- Made `::` a pure sugar for `prototype`, which can now directly refer to `@::` under class body.\n- `?.` can now appear anywhere a normal dot can be used.\n- `~.` is changed to `. ~`.\n- `new` no longer accepts splatted arguments.\n- `--interactive` now works with `--compile` and `--bare`.\n- Renamed `--nodes` option and `.nodes` method to `--ast`/`.ast`.\n- Fixed [the performance bug](https://github.com/jashkenas/coffee-script/issues/1033) wrt long method chains.\n- Quit supporting Node.js 0.3.x or lower.\n\n### 0.3.2\n- Unrestricted ADI for identifiers beyond `@` and `::`.\n- Expanded property shorthands beyond `@foo`.\n- Added `typeof!`, which inspects the internal _[[Class]]_ property.\n- Added shebang support.\n- REPL results now evaluate more intuitively.\n- Disallowed whitespace mixup for indentations.\n\n### 0.3.1\n- `debugger` now works anywhere.\n- Revised heregex flag syntax: `///#{x}#{y}///?` -> `RegExp('' + x, y);`\n- Removed `Coco.eval`.\n- Made _extras/coco.js_ work as a mini-compiler on WSH.\n- Added _extras/mode-coco.js_, an editing mode for [Ace](http://ace.ajax.org).\n- Added `--json` option.\n\n### 0.3.0\n\n#### Pure Additions\n- Added _backcall_, a sugar to flatten nested callbacks.\n- `do` block can now work as a pair of normal parentheses.\n- Improved _ACI_ (automatic comma insertion): `f {} [] x` -> `f({}, [], x);`\n- Improved _ADI_ (automatic dot insertion): `@@0'!'` -> `arguments[0]['!'];`\n- Multiline block on the RHS of object property now works as an implicit array.\n- Heregexes now support dynamic flags: `/// x #{? y } ///` -> `RegExp('x', y);`\n- Enabled compound _accessigns_: `a.+=b` -> `a += a.b;`\n- `...` in array destructuring (same as `...[]`) now skips items rather than `slice`ing them. ([coffee#870](https://github.com/jashkenas/coffee-script/issues/870))\n- Compilation errors now report line numbers.\n- `Coco` object now emits more events for use with `--require`.\n\n#### Incompatible Changes\n- <del>`=>`</del> -> <ins>`~>`</ins>\n- <del>`&.`</del> -> <ins>`~.`</ins>\n- Braceless objects no longer consume property shorthands.\n  ([coffee#618](https://github.com/jashkenas/coffee-script/issues/618))\n- Indentations within non-here strings are now stripped.\n- [Fixed](https://github.com/jashkenas/coffee-script/issues/1050)\n  block comment syntax to good ol' `/* */`.\n- `@0` is now `this[0]` rather than `arguments[0]`.\n\n### 0.2.2\n- `is not` is the new `isnt`.\n- `@'++'` is now valid as a shorthand for `@['++']`.\n- Commas between primitive values are now optional.\n- _coke_ now automatically aliases tasks.\n- _extras/coco.js_ now works as a Gecko JS Module.\n- Grouped documentation suite into _doc/_ for portability.\n- Rewrote _src/optparse.co_.\n\n### 0.2.1\n- Added numeric ranges.\n- Destructuring assignments can now specify default values using logical operators.\n  Default arguments syntax has been changed accordingly.\n  (`(a || b) ->` instead of `(a ||= b) ->`)\n- `do` now performs special conversions against function literals with parameters,\n  making it work as pseudo-`let` and Coffee 1.0.0 compliant.\n- Allowed `for i from x then` as a sugar for `for i from 0 til x then`.\n- Disallowed duplicate formal arguments.\n- Improved syntax-highlight in _src/index.html_.\n\n### 0.2.0\n- Version bump for Xmas, in concert with [Coffee 1.0.0](http://news.ycombinator.com/item?id=2037801).\n- `@@` is now a shorthand for `arguments`.\n- `do` can now indicate a call against indented arguments.\n- `and` and `or` now close implicit calls, making you write even less parens:\n  `f x and g y or z` -> `f(x) && g(y) || z;`\n- `catch`'s variable declaration is no longer required.\n- `a<[ b c ]>` is now equivalent to `a[\\b, \\c]` (was `a(\\b, \\c)`).\n- `case` now requires brackets to have multiple conditions.\n- Added `--nodejs` option. See [coffee#910](https://github.com/jashkenas/coffee-script/issues/910).\n- Renamed `--stdio` to `--stdin`.\n\n### 0.1.6\n- Added character/word literal:\n  `\\C + \\++` -> `'C' + '++';`\n- Retrieving multiple properties at once is now possible:\n  `a[b, c]` -> `[a[b], a[c]];`\n- Destructuring into an object's properties is now possible:\n  - `a[b, c] = d` -> `a[b] = d[0], a[c] = d[1];`\n  - `a{b, c} = d` -> `a.b = d.b, a.c = d.c;`\n- Compound assignments can now destructure:\n  `[@a, @b] /= c` -> `this.a /= c[0], this.b /= c[1];`\n\n### 0.1.5\n- Conditional control structures can now be anaphoric;\n  `that` within `if`, `while` or `case` block now refers to the condition value.\n- Decimal numbers can now have arbitrary trailing alphabets as comments.\n  e.g. `9times`, `1.5s`\n- Added `<<<`/`<<<<` as aliases to `import`/`import all`\n- non-ASCII identifiers are now allowed.\n\n### 0.1.4\n- `.` and its families can now be used with numbers and strings, instead of `[]`.\n  `a.0.'0'` compiles to `a[0]['0']`.\n- Added syntax for cloning objects;\n  `obj{key:val}` acts like a simple version of ES5 `Object.create`,\n  creating a prototypal child of `obj` and assigning to `.key` with `val`.\n- default arguments can now choose to use `||`/`&&`.\n- `super` under a class block now refers to the superclass.\n- _.coffee_ extension is no longer supported.\n\n### 0.1.3\n- Compilation now prefers single quotes.\n- AST now compiles faster, roughly 1.4 times than 0.1.2.\n- `[]`/`{}` can now be safely used as an placeholder within array destructuring.\n- Improved `--nodes` output.\n\n### 0.1.2\n- `...` is now prefix.\n- `{0: first, (*-1): last} = array` now works.\n- Added `--lex` to the `coco` utility. Removed `--lint`.\n- _src/_ now has [doc view](http://satyr.github.com/coco/src/).\n\n### 0.1.1\nRelease.\n","_id":"coco@0.8.0","dist":{"shasum":"81b08f5c49be9502270b0b77984ecc77da73e162","tarball":"https://registry.npmjs.org/coco/-/coco-0.8.0.tgz","integrity":"sha512-9dyFjcdMk8YsIbQJgnkiECzEyzGYf2gG6s8MNNCJaripiUEgjxsp1FW3oDaFuSoC3irQyS76n34HofXf5JR7sw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIArcJzz7795Bw67/UtjCltG6W8VEc9edNjKuJpHFydkIAiEAzjSc4l1dsezlOGt3dERHncH0F7iYL7MGjBYo56vfqG4="}]},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.8.1":{"name":"coco","version":"0.8.1","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.2.6"},"readme":"# Coco\nis a [CoffeeScript](http://coffeescript.org) dialect\nthat aims to be more radical and practical.\n\n## Why\nOn its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks:\n[horrible variable scope](https://github.com/jashkenas/coffee-script/issues/712),\n[awkward ranges](https://github.com/jashkenas/coffee-script/issues/746),\n[confusing](https://github.com/jashkenas/coffee-script/issues/702)\n[and/or](https://github.com/jashkenas/coffee-script/issues/785)\n[pointless](https://github.com/jashkenas/coffee-script/issues/813)\nkeywords, verbose file extension,\n[and so on](https://github.com/satyr/coco/wiki/wtfcs).\nCoco tries to amend them, entwining good parts of both.\n\n## Principles\n- Respect JS semantics and idioms.\n- Die for [DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).\n- Perl over Ruby.\n- Fewer keywords, punctuations and runtime errors.\n\n## Differences\n- [Improvements](https://github.com/satyr/coco/wiki/improvements)\n- [Incompatibilities](https://github.com/satyr/coco/wiki/incompatibilities)\n- [Side by Side Comparison](https://github.com/satyr/coco/wiki/side-by-side-comparison)\n\n## Documents\n- [Additions](https://github.com/satyr/coco/wiki/additions)\n- [Glossary](https://github.com/satyr/coco/wiki/glossary)\n- [Annotated Source](http://satyr.github.com/coco/src/)\n\n## Installation\nGet [Node.js](http://nodejs.org) and [npm](http://npmjs.org), then:\n\n- `npm i -g coco`\n- `git clone git://github.com/satyr/coco.git && cd coco && bin/coke i`\n\n## Changelog\n### 0.8.1\n- Fixed [#162](https://github.com/satyr/coco/issues/162).\n\n### 0.8.0\n- Allowed hyphenated alphabets within identifiers as alias to their upper case:\n  `encode-URI-component` => `encodeURIComponent`\n- Added cascade. ([#72](https://github.com/satyr/coco/issues/72)\n- Changed the pipe operator to `|>`.\n- Revised `=>` as another block creation operator.\n- `export`/`import`/`const`/`var` can now appear anywhere.\n- `catch`ed variables are now function-scoped.\n  ([coffee#2422](https://github.com/jashkenas/coffee-script/issues/2422))\n- Generated variables now get postfix `$` rather than prefix `__`.\n\n### 0.7.6\n- Added `export const`.\n- Enabled object splat within brace objects via `...:`.\n- Allowed array repetition to work on slices and comprehensions.\n- Disallowed malformed hex/unicode escape sequence in string.\n- Quit overloading `+` for array concatenation.\n- `class` can be bodyless again.\n- `super` no longer auto-`.call`s more than once.\n\n### 0.7.5\n- Implemented `implements`. ([#144](https://github.com/satyr/coco/issues/144))\n- Top-level `void`s are now simply ignored and usable like Python's __pass__.\n\n### 0.7.4\n- Added `import` declaration in place of the implicit `this import`:\n  `import a, b` => `this <<< a <<< b`\n- Made `super` work in accessor methods.\n- Disallowed redeclarations via `var`.\n- Improved handling of nonexistent files.\n\n### 0.7.3\n- Node.js 0.8.x.\n- Added `const` and `var`. ([#139](https://github.com/satyr/coco/issues/139))\n- Made `function` variables read-only.\n- Removed `-n` shorthand for `--nodejs`.\n  ([#142](https://github.com/satyr/coco/issues/142))\n- Bug fixes:\n  - `super` with nested classes and methods\n  - `f a, while b then c` etc.\n  - and others:\n    [#138](https://github.com/satyr/coco/issues/138)\n    [#141](https://github.com/satyr/coco/issues/141)\n    [#143](https://github.com/satyr/coco/issues/143)\n\n### 0.7.2\n- Revised accessor. ([#5](https://github.com/satyr/coco/issues/5))\n- Allowed implicit array after some unary operators.\n- Added named backcall: `<-:f g` => `g(:f ->)`\n- Made `{[q]:p}` short for `{p: [q]:p}`.\n\n### 0.7.1\n- Added `export` statement. ([#121](https://github.com/satyr/coco/issues/121))\n- Made `{{q}:p}` short for `{p: {q}:p}`.\n- Allowed keyword literals as object shorthand: `{true}` => `{true: true}`\n- Allowed decimals and `$` in number comments.\n- Removed uppercase radix prefixes and exponential notation as per\n  [coffee#2061](https://github.com/jashkenas/coffee-script/issues/2061).\n- Labelling a function (literal or IIFE sugar) now names it.\n  E.g. `:f ->` compiles to `(function f(){})`.\n- `super` call to a bound class now works as expected.\n- All compiler-generated variables are now double-underscore prefixed.\n- `--interactive` no longer implies `--bare`.\n  Use `-bi` when you want top-level variables to persist.\n\n### 0.7.0\n- Caught up Node.js 0.6.x.\n- `!` against function/backcall now suppresses its auto-return.\n- `superclass` now points to the constructor that the `class extends`.\n- `super` now relies solely on `superclass` rather than requiring special forms like `C::m = ->`.\n- `of` no longer delegates to `Array::indexOf`, making it consistent with `for`-`of` behavior.\n- Inline implicit objects now close at newline or `if`/`for`/`while`/`until`.\n- `--print` no longer implies `--compile`.\n- `--watch` now works on Windows.\n\n### 0.6.7\n- Fixed [coffee#1715](https://github.com/jashkenas/coffee-script/issues/1715) etc.\n- Trivial improvements.\n\n### 0.6.6\n- Added unary assignments: `!! = x` => `x = !!x`\n- Made `a? <<< b` short for `a <<< b if a?`.\n- Improved stack traces from directly run .co files.\n\n### 0.6.5\n- `case`/`of`/`instanceof` now works better with array slice.\n- `instanceof` now rejects invalid right operands.\n\n### 0.6.4\n- Unary operators now spread into an array operand: `+[a, b]` => `[+a, +b]`\n- `..` now points to the constructor under `class`.\n- _coke_ now works from subdirectories.\n  ([coffee#1687](https://github.com/jashkenas/coffee-script/issues/1687))\n\n### 0.6.3\n- Added pipe operator: `f! => g _` => `_ = f!; g _`\n- Fixed identifier lexing as per ES5.\n- Improved label handlings.\n- Helper functions are now declared last.\n  ([coffee#1638](https://github.com/jashkenas/coffee-script/issues/1638))\n\n### 0.6.2\n- Added character ranges: `[\\a to \\d]` => `[\\a \\b \\c \\d]`\n- Added named destructuring: `{p, q}:o = f!` => `o = f!; {p, q} = o`\n- Numbers can no longer start with `.`.\n- `function` can no longer prefix `->`/`~>`.\n  Use `~function` to declare bound functions instead.\n\n### 0.6.1\n- Allowed line folding after `for` prepositions.\n- `import`ing onto a soaked expression is now safe.\n- `--json` now modifies `--ast` or `--compile`.\n- Fixed [#81](https://github.com/satyr/coco/issues/81) etc.\n\n### 0.6.0\n\n#### Additions\n- Added [soak assign](https://github.com/satyr/coco/issues/71).\n- Added [`<?` and `>?` operators](https://github.com/satyr/coco/issues/66).\n- Loops can now have [`else` clause](https://github.com/satyr/coco/issues/75).\n- `import x` is now short for `this <<< x`.\n- `,` after `(`, `[` or another `,` now implies `void`.\n\n#### Changes\n- Added [object slice](https://github.com/satyr/coco/issues/77).\n- Added bang call: `f!` => `f()`\n- Revised clone syntax from `x{}` to `^x`.\n- Revised semiautovivification syntax from `.!`/`.@` to `.@`/`.@@`.\n- Variable interpolations no longer require braces:\n  `\"(#id)\"` => `\"(\" + id + \")\"`\n- Spaced dots now close implicit calls.\n  See [coffee#1407](https://github.com/jashkenas/coffee-script/issues/1407).\n- Direct calls to `super` now delegate `this`.\n- [`extended` hook](https://github.com/jashkenas/coffee-script/issues/516) is back.\n- `from` of `for` is now optional, meaning `from 0`.\n  `til`less `from` is no longer allowed.\n\n### 0.5.4\n- `while`/`until` can now have update clause after test clause:\n  `continue while f(), g()` => `for (; f(); g()) {}`\n- `that` no longer triggers anaphoric conversion under `unless`/`until`.\n- Disallowed `a.=b = c` `p:~ (a, b) ->` `f ..., a` etc.\n- Fixed [coffee#1416](https://github.com/jashkenas/coffee-script/issues/1416).\n\n### 0.5.3\n- Added `do`-`while`/`until` construction.\n- Added `$` flag to regexes. Same as `.source`, but more efficient.\n- Suppressed implicit return on `new`ed/setter functions.\n- Sped up lexer.\n\n### 0.5.2\n- Added `!?` (inexistence) operator.\n- `function` no longer requires parens around parameters.\n- `class` block is now mandatory.\n- Bug fixes:\n  [coffee#1352](https://github.com/jashkenas/coffee-script/issues/1352)\n  [coffee#1354](https://github.com/jashkenas/coffee-script/issues/1354)\n\n### 0.5.1\n- `a.b.c?.=d.e` now works as expected.\n- `a[b, c] = d` now works as expected.\n- _extras/coco.js_ works again on WSH.\n- `--output` implies `--compile` again.\n\n### 0.5.0\n- Added `**` operator.\n- Overloaded `+`/`-`/`/` (in addition to `*`) for arrays and strings.\n- Revised `let`: `let (a) ~>` => `let a then`\n- Allowed underscores within number literals.\n- Major regex changes:\n  - Dieted heregex: `/// re ///` => `// re //`\n  - Allowed leading whitespace in normal regex literals when unambiguous.\n  - No longer accepts invalid regexes.\n- `->` is now optional when `function` is used.\n- `case` accepts comma-separated tests again.\n- `return`/`throw` can now take a block.\n- REPL now uses _^J_ to continue lines.\n\n### 0.4.2\n- Enabled:\n  - ADI on `?.`\n  - ACI on `++`/`--`\n  - conditional destructuring assignments\n  - colors and tab completion in REPL\n- Made leading `*`s serve like list markers.\n\n### 0.4.1\n- Added string/array multiplication.\n- Added label support.\n- Aliased `constructor` as `..`.\n\n### 0.4.0\n- Added `let`. Unary `do` is back at being simple call.\n- Added `with`.\n- Added semiautovivification.\n- Made `::` a pure sugar for `prototype`, which can now directly refer to `@::` under class body.\n- `?.` can now appear anywhere a normal dot can be used.\n- `~.` is changed to `. ~`.\n- `new` no longer accepts splatted arguments.\n- `--interactive` now works with `--compile` and `--bare`.\n- Renamed `--nodes` option and `.nodes` method to `--ast`/`.ast`.\n- Fixed [the performance bug](https://github.com/jashkenas/coffee-script/issues/1033) wrt long method chains.\n- Quit supporting Node.js 0.3.x or lower.\n\n### 0.3.2\n- Unrestricted ADI for identifiers beyond `@` and `::`.\n- Expanded property shorthands beyond `@foo`.\n- Added `typeof!`, which inspects the internal _[[Class]]_ property.\n- Added shebang support.\n- REPL results now evaluate more intuitively.\n- Disallowed whitespace mixup for indentations.\n\n### 0.3.1\n- `debugger` now works anywhere.\n- Revised heregex flag syntax: `///#{x}#{y}///?` -> `RegExp('' + x, y);`\n- Removed `Coco.eval`.\n- Made _extras/coco.js_ work as a mini-compiler on WSH.\n- Added _extras/mode-coco.js_, an editing mode for [Ace](http://ace.ajax.org).\n- Added `--json` option.\n\n### 0.3.0\n\n#### Pure Additions\n- Added _backcall_, a sugar to flatten nested callbacks.\n- `do` block can now work as a pair of normal parentheses.\n- Improved _ACI_ (automatic comma insertion): `f {} [] x` -> `f({}, [], x);`\n- Improved _ADI_ (automatic dot insertion): `@@0'!'` -> `arguments[0]['!'];`\n- Multiline block on the RHS of object property now works as an implicit array.\n- Heregexes now support dynamic flags: `/// x #{? y } ///` -> `RegExp('x', y);`\n- Enabled compound _accessigns_: `a.+=b` -> `a += a.b;`\n- `...` in array destructuring (same as `...[]`) now skips items rather than `slice`ing them. ([coffee#870](https://github.com/jashkenas/coffee-script/issues/870))\n- Compilation errors now report line numbers.\n- `Coco` object now emits more events for use with `--require`.\n\n#### Incompatible Changes\n- <del>`=>`</del> -> <ins>`~>`</ins>\n- <del>`&.`</del> -> <ins>`~.`</ins>\n- Braceless objects no longer consume property shorthands.\n  ([coffee#618](https://github.com/jashkenas/coffee-script/issues/618))\n- Indentations within non-here strings are now stripped.\n- [Fixed](https://github.com/jashkenas/coffee-script/issues/1050)\n  block comment syntax to good ol' `/* */`.\n- `@0` is now `this[0]` rather than `arguments[0]`.\n\n### 0.2.2\n- `is not` is the new `isnt`.\n- `@'++'` is now valid as a shorthand for `@['++']`.\n- Commas between primitive values are now optional.\n- _coke_ now automatically aliases tasks.\n- _extras/coco.js_ now works as a Gecko JS Module.\n- Grouped documentation suite into _doc/_ for portability.\n- Rewrote _src/optparse.co_.\n\n### 0.2.1\n- Added numeric ranges.\n- Destructuring assignments can now specify default values using logical operators.\n  Default arguments syntax has been changed accordingly.\n  (`(a || b) ->` instead of `(a ||= b) ->`)\n- `do` now performs special conversions against function literals with parameters,\n  making it work as pseudo-`let` and Coffee 1.0.0 compliant.\n- Allowed `for i from x then` as a sugar for `for i from 0 til x then`.\n- Disallowed duplicate formal arguments.\n- Improved syntax-highlight in _src/index.html_.\n\n### 0.2.0\n- Version bump for Xmas, in concert with [Coffee 1.0.0](http://news.ycombinator.com/item?id=2037801).\n- `@@` is now a shorthand for `arguments`.\n- `do` can now indicate a call against indented arguments.\n- `and` and `or` now close implicit calls, making you write even less parens:\n  `f x and g y or z` -> `f(x) && g(y) || z;`\n- `catch`'s variable declaration is no longer required.\n- `a<[ b c ]>` is now equivalent to `a[\\b, \\c]` (was `a(\\b, \\c)`).\n- `case` now requires brackets to have multiple conditions.\n- Added `--nodejs` option. See [coffee#910](https://github.com/jashkenas/coffee-script/issues/910).\n- Renamed `--stdio` to `--stdin`.\n\n### 0.1.6\n- Added character/word literal:\n  `\\C + \\++` -> `'C' + '++';`\n- Retrieving multiple properties at once is now possible:\n  `a[b, c]` -> `[a[b], a[c]];`\n- Destructuring into an object's properties is now possible:\n  - `a[b, c] = d` -> `a[b] = d[0], a[c] = d[1];`\n  - `a{b, c} = d` -> `a.b = d.b, a.c = d.c;`\n- Compound assignments can now destructure:\n  `[@a, @b] /= c` -> `this.a /= c[0], this.b /= c[1];`\n\n### 0.1.5\n- Conditional control structures can now be anaphoric;\n  `that` within `if`, `while` or `case` block now refers to the condition value.\n- Decimal numbers can now have arbitrary trailing alphabets as comments.\n  e.g. `9times`, `1.5s`\n- Added `<<<`/`<<<<` as aliases to `import`/`import all`\n- non-ASCII identifiers are now allowed.\n\n### 0.1.4\n- `.` and its families can now be used with numbers and strings, instead of `[]`.\n  `a.0.'0'` compiles to `a[0]['0']`.\n- Added syntax for cloning objects;\n  `obj{key:val}` acts like a simple version of ES5 `Object.create`,\n  creating a prototypal child of `obj` and assigning to `.key` with `val`.\n- default arguments can now choose to use `||`/`&&`.\n- `super` under a class block now refers to the superclass.\n- _.coffee_ extension is no longer supported.\n\n### 0.1.3\n- Compilation now prefers single quotes.\n- AST now compiles faster, roughly 1.4 times than 0.1.2.\n- `[]`/`{}` can now be safely used as an placeholder within array destructuring.\n- Improved `--nodes` output.\n\n### 0.1.2\n- `...` is now prefix.\n- `{0: first, (*-1): last} = array` now works.\n- Added `--lex` to the `coco` utility. Removed `--lint`.\n- _src/_ now has [doc view](http://satyr.github.com/coco/src/).\n\n### 0.1.1\nRelease.\n","_id":"coco@0.8.1","dist":{"shasum":"58f2a1786aab24e3a10cd8c1d635c348ccd0b57e","tarball":"https://registry.npmjs.org/coco/-/coco-0.8.1.tgz","integrity":"sha512-vA/1AE9NovxjIOKdHIOc4DxCskYKPe7axa5WNd5PlUPuue4bEbuxgfW07HvgWX6lNWrfB3P0DsbeCsVCDdLwdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDpc5bqEYuQvtwT6jiVWVAQVxBJ1xq8E9NJi5EkrMMH3AiEA2UzTOnTOCwls0CU50F11LSroBjKT7Jhz/Yd0GlvLyDc="}]},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.8.2":{"name":"coco","version":"0.8.2","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.3.3"},"readme":"# Coco\nis a [CoffeeScript](http://coffeescript.org) dialect\nthat aims to be more radical and practical.\n\n## Why\nOn its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks:\n[horrible variable scope](https://github.com/jashkenas/coffee-script/issues/712),\n[awkward ranges](https://github.com/jashkenas/coffee-script/issues/746),\n[confusing](https://github.com/jashkenas/coffee-script/issues/702)\n[and/or](https://github.com/jashkenas/coffee-script/issues/785)\n[pointless](https://github.com/jashkenas/coffee-script/issues/813)\nkeywords, verbose file extension,\n[and so on](https://github.com/satyr/coco/wiki/wtfcs).\nCoco tries to amend them, entwining good parts of both.\n\n## Principles\n- Respect JS semantics and idioms.\n- Die for [DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).\n- Perl over Ruby.\n- Fewer keywords, punctuations and runtime errors.\n\n## Differences\n- [Improvements](https://github.com/satyr/coco/wiki/improvements)\n- [Incompatibilities](https://github.com/satyr/coco/wiki/incompatibilities)\n- [Side by Side Comparison](https://github.com/satyr/coco/wiki/side-by-side-comparison)\n\n## Documents\n- [Additions](https://github.com/satyr/coco/wiki/additions)\n- [Glossary](https://github.com/satyr/coco/wiki/glossary)\n- [Annotated Source](http://satyr.github.com/coco/src/)\n\n## Installation\nGet [Node.js](http://nodejs.org) and [npm](http://npmjs.org), then:\n\n- `npm i -g coco`\n- `git clone git://github.com/satyr/coco.git && cd coco && bin/coke i`\n\n## Changelog\n### 0.8.2\n- Fixed:\n  - [#165](https://github.com/satyr/coco/issues/165)\n  - [#168](https://github.com/satyr/coco/issues/168)\n  - [coffee#2496](https://github.com/jashkenas/coffee-script/issues/2496)\n  - [coffee#2506](https://github.com/jashkenas/coffee-script/issues/2506)\n\n### 0.8.1\n- Fixed [#162](https://github.com/satyr/coco/issues/162).\n\n### 0.8.0\n- Allowed hyphenated alphabets within identifiers as alias to their upper case:\n  `encode-URI-component` => `encodeURIComponent`\n- Added cascade. ([#72](https://github.com/satyr/coco/issues/72)\n- Changed the pipe operator to `|>`.\n- Revised `=>` as another block creation operator.\n- `export`/`import`/`const`/`var` can now appear anywhere.\n- `catch`ed variables are now function-scoped.\n  ([coffee#2422](https://github.com/jashkenas/coffee-script/issues/2422))\n- Generated variables now get postfix `$` rather than prefix `__`.\n\n### 0.7.6\n- Added `export const`.\n- Enabled object splat within brace objects via `...:`.\n- Allowed array repetition to work on slices and comprehensions.\n- Disallowed malformed hex/unicode escape sequence in string.\n- Quit overloading `+` for array concatenation.\n- `class` can be bodyless again.\n- `super` no longer auto-`.call`s more than once.\n\n### 0.7.5\n- Implemented `implements`. ([#144](https://github.com/satyr/coco/issues/144))\n- Top-level `void`s are now simply ignored and usable like Python's __pass__.\n\n### 0.7.4\n- Added `import` declaration in place of the implicit `this import`:\n  `import a, b` => `this <<< a <<< b`\n- Made `super` work in accessor methods.\n- Disallowed redeclarations via `var`.\n- Improved handling of nonexistent files.\n\n### 0.7.3\n- Node.js 0.8.x.\n- Added `const` and `var`. ([#139](https://github.com/satyr/coco/issues/139))\n- Made `function` variables read-only.\n- Removed `-n` shorthand for `--nodejs`.\n  ([#142](https://github.com/satyr/coco/issues/142))\n- Bug fixes:\n  - `super` with nested classes and methods\n  - `f a, while b then c` etc.\n  - and others:\n    [#138](https://github.com/satyr/coco/issues/138)\n    [#141](https://github.com/satyr/coco/issues/141)\n    [#143](https://github.com/satyr/coco/issues/143)\n\n### 0.7.2\n- Revised accessor. ([#5](https://github.com/satyr/coco/issues/5))\n- Allowed implicit array after some unary operators.\n- Added named backcall: `<-:f g` => `g(:f ->)`\n- Made `{[q]:p}` short for `{p: [q]:p}`.\n\n### 0.7.1\n- Added `export` statement. ([#121](https://github.com/satyr/coco/issues/121))\n- Made `{{q}:p}` short for `{p: {q}:p}`.\n- Allowed keyword literals as object shorthand: `{true}` => `{true: true}`\n- Allowed decimals and `$` in number comments.\n- Removed uppercase radix prefixes and exponential notation as per\n  [coffee#2061](https://github.com/jashkenas/coffee-script/issues/2061).\n- Labelling a function (literal or IIFE sugar) now names it.\n  E.g. `:f ->` compiles to `(function f(){})`.\n- `super` call to a bound class now works as expected.\n- All compiler-generated variables are now double-underscore prefixed.\n- `--interactive` no longer implies `--bare`.\n  Use `-bi` when you want top-level variables to persist.\n\n### 0.7.0\n- Caught up Node.js 0.6.x.\n- `!` against function/backcall now suppresses its auto-return.\n- `superclass` now points to the constructor that the `class extends`.\n- `super` now relies solely on `superclass` rather than requiring special forms like `C::m = ->`.\n- `of` no longer delegates to `Array::indexOf`, making it consistent with `for`-`of` behavior.\n- Inline implicit objects now close at newline or `if`/`for`/`while`/`until`.\n- `--print` no longer implies `--compile`.\n- `--watch` now works on Windows.\n\n### 0.6.7\n- Fixed [coffee#1715](https://github.com/jashkenas/coffee-script/issues/1715) etc.\n- Trivial improvements.\n\n### 0.6.6\n- Added unary assignments: `!! = x` => `x = !!x`\n- Made `a? <<< b` short for `a <<< b if a?`.\n- Improved stack traces from directly run .co files.\n\n### 0.6.5\n- `case`/`of`/`instanceof` now works better with array slice.\n- `instanceof` now rejects invalid right operands.\n\n### 0.6.4\n- Unary operators now spread into an array operand: `+[a, b]` => `[+a, +b]`\n- `..` now points to the constructor under `class`.\n- _coke_ now works from subdirectories.\n  ([coffee#1687](https://github.com/jashkenas/coffee-script/issues/1687))\n\n### 0.6.3\n- Added pipe operator: `f! => g _` => `_ = f!; g _`\n- Fixed identifier lexing as per ES5.\n- Improved label handlings.\n- Helper functions are now declared last.\n  ([coffee#1638](https://github.com/jashkenas/coffee-script/issues/1638))\n\n### 0.6.2\n- Added character ranges: `[\\a to \\d]` => `[\\a \\b \\c \\d]`\n- Added named destructuring: `{p, q}:o = f!` => `o = f!; {p, q} = o`\n- Numbers can no longer start with `.`.\n- `function` can no longer prefix `->`/`~>`.\n  Use `~function` to declare bound functions instead.\n\n### 0.6.1\n- Allowed line folding after `for` prepositions.\n- `import`ing onto a soaked expression is now safe.\n- `--json` now modifies `--ast` or `--compile`.\n- Fixed [#81](https://github.com/satyr/coco/issues/81) etc.\n\n### 0.6.0\n\n#### Additions\n- Added [soak assign](https://github.com/satyr/coco/issues/71).\n- Added [`<?` and `>?` operators](https://github.com/satyr/coco/issues/66).\n- Loops can now have [`else` clause](https://github.com/satyr/coco/issues/75).\n- `import x` is now short for `this <<< x`.\n- `,` after `(`, `[` or another `,` now implies `void`.\n\n#### Changes\n- Added [object slice](https://github.com/satyr/coco/issues/77).\n- Added bang call: `f!` => `f()`\n- Revised clone syntax from `x{}` to `^x`.\n- Revised semiautovivification syntax from `.!`/`.@` to `.@`/`.@@`.\n- Variable interpolations no longer require braces:\n  `\"(#id)\"` => `\"(\" + id + \")\"`\n- Spaced dots now close implicit calls.\n  See [coffee#1407](https://github.com/jashkenas/coffee-script/issues/1407).\n- Direct calls to `super` now delegate `this`.\n- [`extended` hook](https://github.com/jashkenas/coffee-script/issues/516) is back.\n- `from` of `for` is now optional, meaning `from 0`.\n  `til`less `from` is no longer allowed.\n\n### 0.5.4\n- `while`/`until` can now have update clause after test clause:\n  `continue while f(), g()` => `for (; f(); g()) {}`\n- `that` no longer triggers anaphoric conversion under `unless`/`until`.\n- Disallowed `a.=b = c` `p:~ (a, b) ->` `f ..., a` etc.\n- Fixed [coffee#1416](https://github.com/jashkenas/coffee-script/issues/1416).\n\n### 0.5.3\n- Added `do`-`while`/`until` construction.\n- Added `$` flag to regexes. Same as `.source`, but more efficient.\n- Suppressed implicit return on `new`ed/setter functions.\n- Sped up lexer.\n\n### 0.5.2\n- Added `!?` (inexistence) operator.\n- `function` no longer requires parens around parameters.\n- `class` block is now mandatory.\n- Bug fixes:\n  [coffee#1352](https://github.com/jashkenas/coffee-script/issues/1352)\n  [coffee#1354](https://github.com/jashkenas/coffee-script/issues/1354)\n\n### 0.5.1\n- `a.b.c?.=d.e` now works as expected.\n- `a[b, c] = d` now works as expected.\n- _extras/coco.js_ works again on WSH.\n- `--output` implies `--compile` again.\n\n### 0.5.0\n- Added `**` operator.\n- Overloaded `+`/`-`/`/` (in addition to `*`) for arrays and strings.\n- Revised `let`: `let (a) ~>` => `let a then`\n- Allowed underscores within number literals.\n- Major regex changes:\n  - Dieted heregex: `/// re ///` => `// re //`\n  - Allowed leading whitespace in normal regex literals when unambiguous.\n  - No longer accepts invalid regexes.\n- `->` is now optional when `function` is used.\n- `case` accepts comma-separated tests again.\n- `return`/`throw` can now take a block.\n- REPL now uses _^J_ to continue lines.\n\n### 0.4.2\n- Enabled:\n  - ADI on `?.`\n  - ACI on `++`/`--`\n  - conditional destructuring assignments\n  - colors and tab completion in REPL\n- Made leading `*`s serve like list markers.\n\n### 0.4.1\n- Added string/array multiplication.\n- Added label support.\n- Aliased `constructor` as `..`.\n\n### 0.4.0\n- Added `let`. Unary `do` is back at being simple call.\n- Added `with`.\n- Added semiautovivification.\n- Made `::` a pure sugar for `prototype`, which can now directly refer to `@::` under class body.\n- `?.` can now appear anywhere a normal dot can be used.\n- `~.` is changed to `. ~`.\n- `new` no longer accepts splatted arguments.\n- `--interactive` now works with `--compile` and `--bare`.\n- Renamed `--nodes` option and `.nodes` method to `--ast`/`.ast`.\n- Fixed [the performance bug](https://github.com/jashkenas/coffee-script/issues/1033) wrt long method chains.\n- Quit supporting Node.js 0.3.x or lower.\n\n### 0.3.2\n- Unrestricted ADI for identifiers beyond `@` and `::`.\n- Expanded property shorthands beyond `@foo`.\n- Added `typeof!`, which inspects the internal _[[Class]]_ property.\n- Added shebang support.\n- REPL results now evaluate more intuitively.\n- Disallowed whitespace mixup for indentations.\n\n### 0.3.1\n- `debugger` now works anywhere.\n- Revised heregex flag syntax: `///#{x}#{y}///?` -> `RegExp('' + x, y);`\n- Removed `Coco.eval`.\n- Made _extras/coco.js_ work as a mini-compiler on WSH.\n- Added _extras/mode-coco.js_, an editing mode for [Ace](http://ace.ajax.org).\n- Added `--json` option.\n\n### 0.3.0\n\n#### Pure Additions\n- Added _backcall_, a sugar to flatten nested callbacks.\n- `do` block can now work as a pair of normal parentheses.\n- Improved _ACI_ (automatic comma insertion): `f {} [] x` -> `f({}, [], x);`\n- Improved _ADI_ (automatic dot insertion): `@@0'!'` -> `arguments[0]['!'];`\n- Multiline block on the RHS of object property now works as an implicit array.\n- Heregexes now support dynamic flags: `/// x #{? y } ///` -> `RegExp('x', y);`\n- Enabled compound _accessigns_: `a.+=b` -> `a += a.b;`\n- `...` in array destructuring (same as `...[]`) now skips items rather than `slice`ing them. ([coffee#870](https://github.com/jashkenas/coffee-script/issues/870))\n- Compilation errors now report line numbers.\n- `Coco` object now emits more events for use with `--require`.\n\n#### Incompatible Changes\n- <del>`=>`</del> -> <ins>`~>`</ins>\n- <del>`&.`</del> -> <ins>`~.`</ins>\n- Braceless objects no longer consume property shorthands.\n  ([coffee#618](https://github.com/jashkenas/coffee-script/issues/618))\n- Indentations within non-here strings are now stripped.\n- [Fixed](https://github.com/jashkenas/coffee-script/issues/1050)\n  block comment syntax to good ol' `/* */`.\n- `@0` is now `this[0]` rather than `arguments[0]`.\n\n### 0.2.2\n- `is not` is the new `isnt`.\n- `@'++'` is now valid as a shorthand for `@['++']`.\n- Commas between primitive values are now optional.\n- _coke_ now automatically aliases tasks.\n- _extras/coco.js_ now works as a Gecko JS Module.\n- Grouped documentation suite into _doc/_ for portability.\n- Rewrote _src/optparse.co_.\n\n### 0.2.1\n- Added numeric ranges.\n- Destructuring assignments can now specify default values using logical operators.\n  Default arguments syntax has been changed accordingly.\n  (`(a || b) ->` instead of `(a ||= b) ->`)\n- `do` now performs special conversions against function literals with parameters,\n  making it work as pseudo-`let` and Coffee 1.0.0 compliant.\n- Allowed `for i from x then` as a sugar for `for i from 0 til x then`.\n- Disallowed duplicate formal arguments.\n- Improved syntax-highlight in _src/index.html_.\n\n### 0.2.0\n- Version bump for Xmas, in concert with [Coffee 1.0.0](http://news.ycombinator.com/item?id=2037801).\n- `@@` is now a shorthand for `arguments`.\n- `do` can now indicate a call against indented arguments.\n- `and` and `or` now close implicit calls, making you write even less parens:\n  `f x and g y or z` -> `f(x) && g(y) || z;`\n- `catch`'s variable declaration is no longer required.\n- `a<[ b c ]>` is now equivalent to `a[\\b, \\c]` (was `a(\\b, \\c)`).\n- `case` now requires brackets to have multiple conditions.\n- Added `--nodejs` option. See [coffee#910](https://github.com/jashkenas/coffee-script/issues/910).\n- Renamed `--stdio` to `--stdin`.\n\n### 0.1.6\n- Added character/word literal:\n  `\\C + \\++` -> `'C' + '++';`\n- Retrieving multiple properties at once is now possible:\n  `a[b, c]` -> `[a[b], a[c]];`\n- Destructuring into an object's properties is now possible:\n  - `a[b, c] = d` -> `a[b] = d[0], a[c] = d[1];`\n  - `a{b, c} = d` -> `a.b = d.b, a.c = d.c;`\n- Compound assignments can now destructure:\n  `[@a, @b] /= c` -> `this.a /= c[0], this.b /= c[1];`\n\n### 0.1.5\n- Conditional control structures can now be anaphoric;\n  `that` within `if`, `while` or `case` block now refers to the condition value.\n- Decimal numbers can now have arbitrary trailing alphabets as comments.\n  e.g. `9times`, `1.5s`\n- Added `<<<`/`<<<<` as aliases to `import`/`import all`\n- non-ASCII identifiers are now allowed.\n\n### 0.1.4\n- `.` and its families can now be used with numbers and strings, instead of `[]`.\n  `a.0.'0'` compiles to `a[0]['0']`.\n- Added syntax for cloning objects;\n  `obj{key:val}` acts like a simple version of ES5 `Object.create`,\n  creating a prototypal child of `obj` and assigning to `.key` with `val`.\n- default arguments can now choose to use `||`/`&&`.\n- `super` under a class block now refers to the superclass.\n- _.coffee_ extension is no longer supported.\n\n### 0.1.3\n- Compilation now prefers single quotes.\n- AST now compiles faster, roughly 1.4 times than 0.1.2.\n- `[]`/`{}` can now be safely used as an placeholder within array destructuring.\n- Improved `--nodes` output.\n\n### 0.1.2\n- `...` is now prefix.\n- `{0: first, (*-1): last} = array` now works.\n- Added `--lex` to the `coco` utility. Removed `--lint`.\n- _src/_ now has [doc view](http://satyr.github.com/coco/src/).\n\n### 0.1.1\nRelease.\n","_id":"coco@0.8.2","dist":{"shasum":"72c57e3146b5416a3b92e7d9444676d84f3faa75","tarball":"https://registry.npmjs.org/coco/-/coco-0.8.2.tgz","integrity":"sha512-2dgzxrY4XH+EAiX4suKbtglg1PQGtWQPguXK/gn8nLetxsLcOKCZ2JN3D9vki+LsXvcRTddsGpJeNfUO4aAiJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOcYWD48/Z53ETK1H5MkYiS4eCvVq8oCnENeXG+SGTWQIhAMYVPjPxCmcBd992SbvR1/pkpQHbKyTx6RXfBHWs5070"}]},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.9.0":{"name":"coco","version":"0.9.0","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"1.3.3"},"readme":"# Coco\nis a [CoffeeScript](http://coffeescript.org) dialect\nthat aims to be more radical and practical.\n\n## Why\nOn its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks:\n[horrible variable scope](https://github.com/jashkenas/coffee-script/issues/712),\n[awkward ranges](https://github.com/jashkenas/coffee-script/issues/746),\n[confusing](https://github.com/jashkenas/coffee-script/issues/702)\n[and/or](https://github.com/jashkenas/coffee-script/issues/785)\n[pointless](https://github.com/jashkenas/coffee-script/issues/813)\nkeywords, verbose file extension,\n[and so on](https://github.com/satyr/coco/wiki/wtfcs).\nCoco tries to amend them, entwining good parts of both.\n\n## Principles\n- Respect JS semantics and idioms.\n- Die for [DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).\n- Perl over Ruby.\n- Fewer keywords, punctuations and runtime errors.\n\n## Differences\n- [Improvements](https://github.com/satyr/coco/wiki/improvements)\n- [Incompatibilities](https://github.com/satyr/coco/wiki/incompatibilities)\n- [Side by Side Comparison](https://github.com/satyr/coco/wiki/side-by-side-comparison)\n\n## Documents\n- [Additions](https://github.com/satyr/coco/wiki/additions)\n- [Glossary](https://github.com/satyr/coco/wiki/glossary)\n- [Annotated Source](http://satyr.github.com/coco/src/)\n\n## Installation\nGet [Node.js](http://nodejs.org) and [npm](http://npmjs.org), then:\n\n- `npm i -g coco`\n- `git clone git://github.com/satyr/coco.git && cd coco && bin/coke i`\n\n## Changelog\n### 0.9.0\n- Literal `&` is now used to reference several new targets:\n  - Left hand of `|>` (in place of `_`).\n  - Current item of newly added quick map: `for [0 1] => &+2  # [2 3]`\n  - Subject of new `with` as proposed\n    in [#172](https://github.com/satyr/coco/issues/172).\n- Made cascade, now `with` in disguise, require at least one `&` in body.\n  ([#179](https://github.com/satyr/coco/issues/179))\n- Made `let` accept `this =` on the first assignment to substitute old `with`.\n- Made bodyless `catch` return the catchee.\n- Made `by -1` implied on downward ranges.\n- Made interpolation apply to `#&` and `#@`.\n- Quit expanding `super` followed by `::` to parent method,\n  so that call to `super::anotherMethod` works as expected.\n- Fixed:\n  - [#175](https://github.com/satyr/coco/issues/175)\n  - [#178](https://github.com/satyr/coco/issues/178)\n  - [#185](https://github.com/satyr/coco/issues/185)\n  - [#190](https://github.com/satyr/coco/issues/190)\n  - [#192](https://github.com/satyr/coco/issues/192)\n  - [coffee#1188](https://github.com/jashkenas/coffee-script/issues/1188)\n\n### 0.8.2\n- Fixed:\n  - [#165](https://github.com/satyr/coco/issues/165)\n  - [#168](https://github.com/satyr/coco/issues/168)\n  - [coffee#2496](https://github.com/jashkenas/coffee-script/issues/2496)\n  - [coffee#2506](https://github.com/jashkenas/coffee-script/issues/2506)\n\n### 0.8.1\n- Fixed [#162](https://github.com/satyr/coco/issues/162).\n\n### 0.8.0\n- Allowed hyphenated alphabets within identifiers as alias to their upper case:\n  `encode-URI-component` => `encodeURIComponent`\n- Added cascade. ([#72](https://github.com/satyr/coco/issues/72)\n- Changed the pipe operator to `|>`.\n- Revised `=>` as another block creation operator.\n- `export`/`import`/`const`/`var` can now appear anywhere.\n- `catch`ed variables are now function-scoped.\n  ([coffee#2422](https://github.com/jashkenas/coffee-script/issues/2422))\n- Generated variables now get postfix `$` rather than prefix `__`.\n\n### 0.7.6\n- Added `export const`.\n- Enabled object splat within brace objects via `...:`.\n- Allowed array repetition to work on slices and comprehensions.\n- Disallowed malformed hex/unicode escape sequence in string.\n- Quit overloading `+` for array concatenation.\n- `class` can be bodyless again.\n- `super` no longer auto-`.call`s more than once.\n\n### 0.7.5\n- Implemented `implements`. ([#144](https://github.com/satyr/coco/issues/144))\n- Top-level `void`s are now simply ignored and usable like Python's __pass__.\n\n### 0.7.4\n- Added `import` declaration in place of the implicit `this import`:\n  `import a, b` => `this <<< a <<< b`\n- Made `super` work in accessor methods.\n- Disallowed redeclarations via `var`.\n- Improved handling of nonexistent files.\n\n### 0.7.3\n- Node.js 0.8.x.\n- Added `const` and `var`. ([#139](https://github.com/satyr/coco/issues/139))\n- Made `function` variables read-only.\n- Removed `-n` shorthand for `--nodejs`.\n  ([#142](https://github.com/satyr/coco/issues/142))\n- Bug fixes:\n  - `super` with nested classes and methods\n  - `f a, while b then c` etc.\n  - and others:\n    [#138](https://github.com/satyr/coco/issues/138)\n    [#141](https://github.com/satyr/coco/issues/141)\n    [#143](https://github.com/satyr/coco/issues/143)\n\n### 0.7.2\n- Revised accessor. ([#5](https://github.com/satyr/coco/issues/5))\n- Allowed implicit array after some unary operators.\n- Added named backcall: `<-:f g` => `g(:f ->)`\n- Made `{[q]:p}` short for `{p: [q]:p}`.\n\n### 0.7.1\n- Added `export` statement. ([#121](https://github.com/satyr/coco/issues/121))\n- Made `{{q}:p}` short for `{p: {q}:p}`.\n- Allowed keyword literals as object shorthand: `{true}` => `{true: true}`\n- Allowed decimals and `$` in number comments.\n- Removed uppercase radix prefixes and exponential notation as per\n  [coffee#2061](https://github.com/jashkenas/coffee-script/issues/2061).\n- Labelling a function (literal or IIFE sugar) now names it.\n  E.g. `:f ->` compiles to `(function f(){})`.\n- `super` call to a bound class now works as expected.\n- All compiler-generated variables are now double-underscore prefixed.\n- `--interactive` no longer implies `--bare`.\n  Use `-bi` when you want top-level variables to persist.\n\n### 0.7.0\n- Caught up Node.js 0.6.x.\n- `!` against function/backcall now suppresses its auto-return.\n- `superclass` now points to the constructor that the `class extends`.\n- `super` now relies solely on `superclass` rather than requiring special forms like `C::m = ->`.\n- `of` no longer delegates to `Array::indexOf`, making it consistent with `for`-`of` behavior.\n- Inline implicit objects now close at newline or `if`/`for`/`while`/`until`.\n- `--print` no longer implies `--compile`.\n- `--watch` now works on Windows.\n\n### 0.6.7\n- Fixed [coffee#1715](https://github.com/jashkenas/coffee-script/issues/1715) etc.\n- Trivial improvements.\n\n### 0.6.6\n- Added unary assignments: `!! = x` => `x = !!x`\n- Made `a? <<< b` short for `a <<< b if a?`.\n- Improved stack traces from directly run .co files.\n\n### 0.6.5\n- `case`/`of`/`instanceof` now works better with array slice.\n- `instanceof` now rejects invalid right operands.\n\n### 0.6.4\n- Unary operators now spread into an array operand: `+[a, b]` => `[+a, +b]`\n- `..` now points to the constructor under `class`.\n- _coke_ now works from subdirectories.\n  ([coffee#1687](https://github.com/jashkenas/coffee-script/issues/1687))\n\n### 0.6.3\n- Added pipe operator: `f! => g _` => `_ = f!; g _`\n- Fixed identifier lexing as per ES5.\n- Improved label handlings.\n- Helper functions are now declared last.\n  ([coffee#1638](https://github.com/jashkenas/coffee-script/issues/1638))\n\n### 0.6.2\n- Added character ranges: `[\\a to \\d]` => `[\\a \\b \\c \\d]`\n- Added named destructuring: `{p, q}:o = f!` => `o = f!; {p, q} = o`\n- Numbers can no longer start with `.`.\n- `function` can no longer prefix `->`/`~>`.\n  Use `~function` to declare bound functions instead.\n\n### 0.6.1\n- Allowed line folding after `for` prepositions.\n- `import`ing onto a soaked expression is now safe.\n- `--json` now modifies `--ast` or `--compile`.\n- Fixed [#81](https://github.com/satyr/coco/issues/81) etc.\n\n### 0.6.0\n\n#### Additions\n- Added [soak assign](https://github.com/satyr/coco/issues/71).\n- Added [`<?` and `>?` operators](https://github.com/satyr/coco/issues/66).\n- Loops can now have [`else` clause](https://github.com/satyr/coco/issues/75).\n- `import x` is now short for `this <<< x`.\n- `,` after `(`, `[` or another `,` now implies `void`.\n\n#### Changes\n- Added [object slice](https://github.com/satyr/coco/issues/77).\n- Added bang call: `f!` => `f()`\n- Revised clone syntax from `x{}` to `^x`.\n- Revised semiautovivification syntax from `.!`/`.@` to `.@`/`.@@`.\n- Variable interpolations no longer require braces:\n  `\"(#id)\"` => `\"(\" + id + \")\"`\n- Spaced dots now close implicit calls.\n  See [coffee#1407](https://github.com/jashkenas/coffee-script/issues/1407).\n- Direct calls to `super` now delegate `this`.\n- [`extended` hook](https://github.com/jashkenas/coffee-script/issues/516) is back.\n- `from` of `for` is now optional, meaning `from 0`.\n  `til`less `from` is no longer allowed.\n\n### 0.5.4\n- `while`/`until` can now have update clause after test clause:\n  `continue while f(), g()` => `for (; f(); g()) {}`\n- `that` no longer triggers anaphoric conversion under `unless`/`until`.\n- Disallowed `a.=b = c` `p:~ (a, b) ->` `f ..., a` etc.\n- Fixed [coffee#1416](https://github.com/jashkenas/coffee-script/issues/1416).\n\n### 0.5.3\n- Added `do`-`while`/`until` construction.\n- Added `$` flag to regexes. Same as `.source`, but more efficient.\n- Suppressed implicit return on `new`ed/setter functions.\n- Sped up lexer.\n\n### 0.5.2\n- Added `!?` (inexistence) operator.\n- `function` no longer requires parens around parameters.\n- `class` block is now mandatory.\n- Bug fixes:\n  [coffee#1352](https://github.com/jashkenas/coffee-script/issues/1352)\n  [coffee#1354](https://github.com/jashkenas/coffee-script/issues/1354)\n\n### 0.5.1\n- `a.b.c?.=d.e` now works as expected.\n- `a[b, c] = d` now works as expected.\n- _extras/coco.js_ works again on WSH.\n- `--output` implies `--compile` again.\n\n### 0.5.0\n- Added `**` operator.\n- Overloaded `+`/`-`/`/` (in addition to `*`) for arrays and strings.\n- Revised `let`: `let (a) ~>` => `let a then`\n- Allowed underscores within number literals.\n- Major regex changes:\n  - Dieted heregex: `/// re ///` => `// re //`\n  - Allowed leading whitespace in normal regex literals when unambiguous.\n  - No longer accepts invalid regexes.\n- `->` is now optional when `function` is used.\n- `case` accepts comma-separated tests again.\n- `return`/`throw` can now take a block.\n- REPL now uses _^J_ to continue lines.\n\n### 0.4.2\n- Enabled:\n  - ADI on `?.`\n  - ACI on `++`/`--`\n  - conditional destructuring assignments\n  - colors and tab completion in REPL\n- Made leading `*`s serve like list markers.\n\n### 0.4.1\n- Added string/array multiplication.\n- Added label support.\n- Aliased `constructor` as `..`.\n\n### 0.4.0\n- Added `let`. Unary `do` is back at being simple call.\n- Added `with`.\n- Added semiautovivification.\n- Made `::` a pure sugar for `prototype`, which can now directly refer to `@::` under class body.\n- `?.` can now appear anywhere a normal dot can be used.\n- `~.` is changed to `. ~`.\n- `new` no longer accepts splatted arguments.\n- `--interactive` now works with `--compile` and `--bare`.\n- Renamed `--nodes` option and `.nodes` method to `--ast`/`.ast`.\n- Fixed [the performance bug](https://github.com/jashkenas/coffee-script/issues/1033) wrt long method chains.\n- Quit supporting Node.js 0.3.x or lower.\n\n### 0.3.2\n- Unrestricted ADI for identifiers beyond `@` and `::`.\n- Expanded property shorthands beyond `@foo`.\n- Added `typeof!`, which inspects the internal _[[Class]]_ property.\n- Added shebang support.\n- REPL results now evaluate more intuitively.\n- Disallowed whitespace mixup for indentations.\n\n### 0.3.1\n- `debugger` now works anywhere.\n- Revised heregex flag syntax: `///#{x}#{y}///?` -> `RegExp('' + x, y);`\n- Removed `Coco.eval`.\n- Made _extras/coco.js_ work as a mini-compiler on WSH.\n- Added _extras/mode-coco.js_, an editing mode for [Ace](http://ace.ajax.org).\n- Added `--json` option.\n\n### 0.3.0\n\n#### Pure Additions\n- Added _backcall_, a sugar to flatten nested callbacks.\n- `do` block can now work as a pair of normal parentheses.\n- Improved _ACI_ (automatic comma insertion): `f {} [] x` -> `f({}, [], x);`\n- Improved _ADI_ (automatic dot insertion): `@@0'!'` -> `arguments[0]['!'];`\n- Multiline block on the RHS of object property now works as an implicit array.\n- Heregexes now support dynamic flags: `/// x #{? y } ///` -> `RegExp('x', y);`\n- Enabled compound _accessigns_: `a.+=b` -> `a += a.b;`\n- `...` in array destructuring (same as `...[]`) now skips items rather than `slice`ing them. ([coffee#870](https://github.com/jashkenas/coffee-script/issues/870))\n- Compilation errors now report line numbers.\n- `Coco` object now emits more events for use with `--require`.\n\n#### Incompatible Changes\n- <del>`=>`</del> -> <ins>`~>`</ins>\n- <del>`&.`</del> -> <ins>`~.`</ins>\n- Braceless objects no longer consume property shorthands.\n  ([coffee#618](https://github.com/jashkenas/coffee-script/issues/618))\n- Indentations within non-here strings are now stripped.\n- [Fixed](https://github.com/jashkenas/coffee-script/issues/1050)\n  block comment syntax to good ol' `/* */`.\n- `@0` is now `this[0]` rather than `arguments[0]`.\n\n### 0.2.2\n- `is not` is the new `isnt`.\n- `@'++'` is now valid as a shorthand for `@['++']`.\n- Commas between primitive values are now optional.\n- _coke_ now automatically aliases tasks.\n- _extras/coco.js_ now works as a Gecko JS Module.\n- Grouped documentation suite into _doc/_ for portability.\n- Rewrote _src/optparse.co_.\n\n### 0.2.1\n- Added numeric ranges.\n- Destructuring assignments can now specify default values using logical operators.\n  Default arguments syntax has been changed accordingly.\n  (`(a || b) ->` instead of `(a ||= b) ->`)\n- `do` now performs special conversions against function literals with parameters,\n  making it work as pseudo-`let` and Coffee 1.0.0 compliant.\n- Allowed `for i from x then` as a sugar for `for i from 0 til x then`.\n- Disallowed duplicate formal arguments.\n- Improved syntax-highlight in _src/index.html_.\n\n### 0.2.0\n- Version bump for Xmas, in concert with [Coffee 1.0.0](http://news.ycombinator.com/item?id=2037801).\n- `@@` is now a shorthand for `arguments`.\n- `do` can now indicate a call against indented arguments.\n- `and` and `or` now close implicit calls, making you write even less parens:\n  `f x and g y or z` -> `f(x) && g(y) || z;`\n- `catch`'s variable declaration is no longer required.\n- `a<[ b c ]>` is now equivalent to `a[\\b, \\c]` (was `a(\\b, \\c)`).\n- `case` now requires brackets to have multiple conditions.\n- Added `--nodejs` option. See [coffee#910](https://github.com/jashkenas/coffee-script/issues/910).\n- Renamed `--stdio` to `--stdin`.\n\n### 0.1.6\n- Added character/word literal:\n  `\\C + \\++` -> `'C' + '++';`\n- Retrieving multiple properties at once is now possible:\n  `a[b, c]` -> `[a[b], a[c]];`\n- Destructuring into an object's properties is now possible:\n  - `a[b, c] = d` -> `a[b] = d[0], a[c] = d[1];`\n  - `a{b, c} = d` -> `a.b = d.b, a.c = d.c;`\n- Compound assignments can now destructure:\n  `[@a, @b] /= c` -> `this.a /= c[0], this.b /= c[1];`\n\n### 0.1.5\n- Conditional control structures can now be anaphoric;\n  `that` within `if`, `while` or `case` block now refers to the condition value.\n- Decimal numbers can now have arbitrary trailing alphabets as comments.\n  e.g. `9times`, `1.5s`\n- Added `<<<`/`<<<<` as aliases to `import`/`import all`\n- non-ASCII identifiers are now allowed.\n\n### 0.1.4\n- `.` and its families can now be used with numbers and strings, instead of `[]`.\n  `a.0.'0'` compiles to `a[0]['0']`.\n- Added syntax for cloning objects;\n  `obj{key:val}` acts like a simple version of ES5 `Object.create`,\n  creating a prototypal child of `obj` and assigning to `.key` with `val`.\n- default arguments can now choose to use `||`/`&&`.\n- `super` under a class block now refers to the superclass.\n- _.coffee_ extension is no longer supported.\n\n### 0.1.3\n- Compilation now prefers single quotes.\n- AST now compiles faster, roughly 1.4 times than 0.1.2.\n- `[]`/`{}` can now be safely used as an placeholder within array destructuring.\n- Improved `--nodes` output.\n\n### 0.1.2\n- `...` is now prefix.\n- `{0: first, (*-1): last} = array` now works.\n- Added `--lex` to the `coco` utility. Removed `--lint`.\n- _src/_ now has [doc view](http://satyr.github.com/coco/src/).\n\n### 0.1.1\nRelease.\n","_id":"coco@0.9.0","dist":{"shasum":"8c63076c96e76b8093664ec0018ffb5c99e19ca6","tarball":"https://registry.npmjs.org/coco/-/coco-0.9.0.tgz","integrity":"sha512-pOGh/nGxLJ2J5CUN5tEvVWmEx1KCA1u7YcfZ8vAUSK1Ewfpwsmjvc36ihMHgXd9en1x9ksip2R6AXoHG+8+4HA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzzBBg4NVNIo8zbNoj9wdLKgatKsUFPbEtumHdNghm9gIgVzTaGO8tyRTuw6obvyr64szzP2vJ5dJj+uNXljeOjSk="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"satyr","email":"murky.satyr@gmail.com"},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]},"0.9.1":{"name":"coco","version":"0.9.1","description":"Unfancy CoffeeScript","keywords":["language","compiler","coffeescript","javascript"],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"homepage":"http://satyr.github.com/coco/","bugs":"https://github.com/satyr/coco/issues","licenses":[{"type":"MIT","url":"https://raw.github.com/satyr/coco/master/LICENSE"}],"engines":{"node":">= 0.8.0"},"directories":{"lib":"./lib"},"files":["lib"],"main":"./lib/coco","bin":{"coco":"./lib/command.js","coke":"./lib/coke.js"},"preferGlobal":true,"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"devDependencies":{"jison":"0.2.1","uglify-js":"2.2.5"},"readme":"# Coco\nis a [CoffeeScript](http://coffeescript.org) dialect\nthat aims to be more radical and practical.\n\n## Why\nOn its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks:\n[horrible variable scope](https://github.com/jashkenas/coffee-script/issues/712),\n[awkward ranges](https://github.com/jashkenas/coffee-script/issues/746),\n[confusing](https://github.com/jashkenas/coffee-script/issues/702)\n[and/or](https://github.com/jashkenas/coffee-script/issues/785)\n[pointless](https://github.com/jashkenas/coffee-script/issues/813)\nkeywords, verbose file extension,\n[and so on](https://github.com/satyr/coco/wiki/wtfcs).\nCoco tries to amend them, entwining good parts of both.\n\n## Principles\n- Respect JS semantics and idioms.\n- Die for [DRY](http://en.wikipedia.org/wiki/Don%27t_repeat_yourself).\n- Perl over Ruby.\n- Fewer keywords, punctuations and runtime errors.\n\n## Differences\n- [Improvements](https://github.com/satyr/coco/wiki/improvements)\n- [Incompatibilities](https://github.com/satyr/coco/wiki/incompatibilities)\n- [Side by Side Comparison](https://github.com/satyr/coco/wiki/side-by-side-comparison)\n\n## Documents\n- [Additions](https://github.com/satyr/coco/wiki/additions)\n- [Glossary](https://github.com/satyr/coco/wiki/glossary)\n- [Annotated Source](http://satyr.github.com/coco/src/)\n\n## Installation\nGet [Node.js](http://nodejs.org) and [npm](http://npmjs.org), then:\n\n- `npm i -g coco`\n- `git clone git://github.com/satyr/coco.git && cd coco && bin/coke i`\n\n## Changelog\n### 0.9.1\n- Added `if`-block. ([#151](https://github.com/satyr/coco/issues/151))\n- Added `<>` aka _lef_. ([#180](https://github.com/satyr/coco/issues/180))\n- Added `for`-`let`. ([#164](https://github.com/satyr/coco/issues/164))\n- Gave `|>` the lowest precedence.\n- Made block constructions directly dot-accessible.\n- Made JS literal Markdown-esque. To include N `` ` ``, close with N+1 `` ` ``:\n  ```` ``` '``' ``` ````\n- Quit reusing temporary variables.\n- File extensions like _co.json_, _coon_, or _cocoon_ now imply `--json`.\n- Fixed:\n  - [#193](https://github.com/satyr/coco/issues/193)\n  - [#195](https://github.com/satyr/coco/issues/195)\n  - [#199](https://github.com/satyr/coco/issues/199)\n  - [#200](https://github.com/satyr/coco/issues/200)\n  - [gkz/LiveScript#273](https://github.com/gkz/LiveScript/issues/273)\n  - [gkz/LiveScript#279](https://github.com/gkz/LiveScript/issues/279)\n\n### 0.9.0\n- Literal `&` is now used to reference several new targets:\n  - Left hand of `|>` (in place of `_`).\n  - Current item of newly added quick map: `for [0 1] => &+2  # [2 3]`\n  - Subject of new `with` as proposed\n    in [#172](https://github.com/satyr/coco/issues/172).\n- Made cascade, now `with` in disguise, require at least one `&` in body.\n  ([#179](https://github.com/satyr/coco/issues/179))\n- Made `let` accept `this =` on the first assignment to substitute old `with`.\n- Made bodyless `catch` return the catchee.\n- Made `by -1` implied on downward ranges.\n- Made interpolation apply to `#&` and `#@`.\n- Quit expanding `super` followed by `::` to parent method,\n  so that call to `super::anotherMethod` works as expected.\n- Fixed:\n  - [#175](https://github.com/satyr/coco/issues/175)\n  - [#178](https://github.com/satyr/coco/issues/178)\n  - [#185](https://github.com/satyr/coco/issues/185)\n  - [#190](https://github.com/satyr/coco/issues/190)\n  - [#192](https://github.com/satyr/coco/issues/192)\n  - [coffee#1188](https://github.com/jashkenas/coffee-script/issues/1188)\n\n### 0.8.2\n- Fixed:\n  - [#165](https://github.com/satyr/coco/issues/165)\n  - [#168](https://github.com/satyr/coco/issues/168)\n  - [coffee#2496](https://github.com/jashkenas/coffee-script/issues/2496)\n  - [coffee#2506](https://github.com/jashkenas/coffee-script/issues/2506)\n\n### 0.8.1\n- Fixed [#162](https://github.com/satyr/coco/issues/162).\n\n### 0.8.0\n- Allowed hyphenated alphabets within identifiers as alias to their upper case:\n  `encode-URI-component` => `encodeURIComponent`\n- Added cascade. ([#72](https://github.com/satyr/coco/issues/72)\n- Changed the pipe operator to `|>`.\n- Revised `=>` as another block creation operator.\n- `export`/`import`/`const`/`var` can now appear anywhere.\n- `catch`ed variables are now function-scoped.\n  ([coffee#2422](https://github.com/jashkenas/coffee-script/issues/2422))\n- Generated variables now get postfix `$` rather than prefix `__`.\n\n### 0.7.6\n- Added `export const`.\n- Enabled object splat within brace objects via `...:`.\n- Allowed array repetition to work on slices and comprehensions.\n- Disallowed malformed hex/unicode escape sequence in string.\n- Quit overloading `+` for array concatenation.\n- `class` can be bodyless again.\n- `super` no longer auto-`.call`s more than once.\n\n### 0.7.5\n- Implemented `implements`. ([#144](https://github.com/satyr/coco/issues/144))\n- Top-level `void`s are now simply ignored and usable like Python's __pass__.\n\n### 0.7.4\n- Added `import` declaration in place of the implicit `this import`:\n  `import a, b` => `this <<< a <<< b`\n- Made `super` work in accessor methods.\n- Disallowed redeclarations via `var`.\n- Improved handling of nonexistent files.\n\n### 0.7.3\n- Node.js 0.8.x.\n- Added `const` and `var`. ([#139](https://github.com/satyr/coco/issues/139))\n- Made `function` variables read-only.\n- Removed `-n` shorthand for `--nodejs`.\n  ([#142](https://github.com/satyr/coco/issues/142))\n- Bug fixes:\n  - `super` with nested classes and methods\n  - `f a, while b then c` etc.\n  - and others:\n    [#138](https://github.com/satyr/coco/issues/138)\n    [#141](https://github.com/satyr/coco/issues/141)\n    [#143](https://github.com/satyr/coco/issues/143)\n\n### 0.7.2\n- Revised accessor. ([#5](https://github.com/satyr/coco/issues/5))\n- Allowed implicit array after some unary operators.\n- Added named backcall: `<-:f g` => `g(:f ->)`\n- Made `{[q]:p}` short for `{p: [q]:p}`.\n\n### 0.7.1\n- Added `export` statement. ([#121](https://github.com/satyr/coco/issues/121))\n- Made `{{q}:p}` short for `{p: {q}:p}`.\n- Allowed keyword literals as object shorthand: `{true}` => `{true: true}`\n- Allowed decimals and `$` in number comments.\n- Removed uppercase radix prefixes and exponential notation as per\n  [coffee#2061](https://github.com/jashkenas/coffee-script/issues/2061).\n- Labelling a function (literal or IIFE sugar) now names it.\n  E.g. `:f ->` compiles to `(function f(){})`.\n- `super` call to a bound class now works as expected.\n- All compiler-generated variables are now double-underscore prefixed.\n- `--interactive` no longer implies `--bare`.\n  Use `-bi` when you want top-level variables to persist.\n\n### 0.7.0\n- Caught up Node.js 0.6.x.\n- `!` against function/backcall now suppresses its auto-return.\n- `superclass` now points to the constructor that the `class extends`.\n- `super` now relies solely on `superclass` rather than requiring special forms like `C::m = ->`.\n- `of` no longer delegates to `Array::indexOf`, making it consistent with `for`-`of` behavior.\n- Inline implicit objects now close at newline or `if`/`for`/`while`/`until`.\n- `--print` no longer implies `--compile`.\n- `--watch` now works on Windows.\n\n### 0.6.7\n- Fixed [coffee#1715](https://github.com/jashkenas/coffee-script/issues/1715) etc.\n- Trivial improvements.\n\n### 0.6.6\n- Added unary assignments: `!! = x` => `x = !!x`\n- Made `a? <<< b` short for `a <<< b if a?`.\n- Improved stack traces from directly run .co files.\n\n### 0.6.5\n- `case`/`of`/`instanceof` now works better with array slice.\n- `instanceof` now rejects invalid right operands.\n\n### 0.6.4\n- Unary operators now spread into an array operand: `+[a, b]` => `[+a, +b]`\n- `..` now points to the constructor under `class`.\n- _coke_ now works from subdirectories.\n  ([coffee#1687](https://github.com/jashkenas/coffee-script/issues/1687))\n\n### 0.6.3\n- Added pipe operator: `f! => g _` => `_ = f!; g _`\n- Fixed identifier lexing as per ES5.\n- Improved label handlings.\n- Helper functions are now declared last.\n  ([coffee#1638](https://github.com/jashkenas/coffee-script/issues/1638))\n\n### 0.6.2\n- Added character ranges: `[\\a to \\d]` => `[\\a \\b \\c \\d]`\n- Added named destructuring: `{p, q}:o = f!` => `o = f!; {p, q} = o`\n- Numbers can no longer start with `.`.\n- `function` can no longer prefix `->`/`~>`.\n  Use `~function` to declare bound functions instead.\n\n### 0.6.1\n- Allowed line folding after `for` prepositions.\n- `import`ing onto a soaked expression is now safe.\n- `--json` now modifies `--ast` or `--compile`.\n- Fixed [#81](https://github.com/satyr/coco/issues/81) etc.\n\n### 0.6.0\n\n#### Additions\n- Added [soak assign](https://github.com/satyr/coco/issues/71).\n- Added [`<?` and `>?` operators](https://github.com/satyr/coco/issues/66).\n- Loops can now have [`else` clause](https://github.com/satyr/coco/issues/75).\n- `import x` is now short for `this <<< x`.\n- `,` after `(`, `[` or another `,` now implies `void`.\n\n#### Changes\n- Added [object slice](https://github.com/satyr/coco/issues/77).\n- Added bang call: `f!` => `f()`\n- Revised clone syntax from `x{}` to `^x`.\n- Revised semiautovivification syntax from `.!`/`.@` to `.@`/`.@@`.\n- Variable interpolations no longer require braces:\n  `\"(#id)\"` => `\"(\" + id + \")\"`\n- Spaced dots now close implicit calls.\n  See [coffee#1407](https://github.com/jashkenas/coffee-script/issues/1407).\n- Direct calls to `super` now delegate `this`.\n- [`extended` hook](https://github.com/jashkenas/coffee-script/issues/516) is back.\n- `from` of `for` is now optional, meaning `from 0`.\n  `til`less `from` is no longer allowed.\n\n### 0.5.4\n- `while`/`until` can now have update clause after test clause:\n  `continue while f(), g()` => `for (; f(); g()) {}`\n- `that` no longer triggers anaphoric conversion under `unless`/`until`.\n- Disallowed `a.=b = c` `p:~ (a, b) ->` `f ..., a` etc.\n- Fixed [coffee#1416](https://github.com/jashkenas/coffee-script/issues/1416).\n\n### 0.5.3\n- Added `do`-`while`/`until` construction.\n- Added `$` flag to regexes. Same as `.source`, but more efficient.\n- Suppressed implicit return on `new`ed/setter functions.\n- Sped up lexer.\n\n### 0.5.2\n- Added `!?` (inexistence) operator.\n- `function` no longer requires parens around parameters.\n- `class` block is now mandatory.\n- Bug fixes:\n  [coffee#1352](https://github.com/jashkenas/coffee-script/issues/1352)\n  [coffee#1354](https://github.com/jashkenas/coffee-script/issues/1354)\n\n### 0.5.1\n- `a.b.c?.=d.e` now works as expected.\n- `a[b, c] = d` now works as expected.\n- _extras/coco.js_ works again on WSH.\n- `--output` implies `--compile` again.\n\n### 0.5.0\n- Added `**` operator.\n- Overloaded `+`/`-`/`/` (in addition to `*`) for arrays and strings.\n- Revised `let`: `let (a) ~>` => `let a then`\n- Allowed underscores within number literals.\n- Major regex changes:\n  - Dieted heregex: `/// re ///` => `// re //`\n  - Allowed leading whitespace in normal regex literals when unambiguous.\n  - No longer accepts invalid regexes.\n- `->` is now optional when `function` is used.\n- `case` accepts comma-separated tests again.\n- `return`/`throw` can now take a block.\n- REPL now uses _^J_ to continue lines.\n\n### 0.4.2\n- Enabled:\n  - ADI on `?.`\n  - ACI on `++`/`--`\n  - conditional destructuring assignments\n  - colors and tab completion in REPL\n- Made leading `*`s serve like list markers.\n\n### 0.4.1\n- Added string/array multiplication.\n- Added label support.\n- Aliased `constructor` as `..`.\n\n### 0.4.0\n- Added `let`. Unary `do` is back at being simple call.\n- Added `with`.\n- Added semiautovivification.\n- Made `::` a pure sugar for `prototype`, which can now directly refer to `@::` under class body.\n- `?.` can now appear anywhere a normal dot can be used.\n- `~.` is changed to `. ~`.\n- `new` no longer accepts splatted arguments.\n- `--interactive` now works with `--compile` and `--bare`.\n- Renamed `--nodes` option and `.nodes` method to `--ast`/`.ast`.\n- Fixed [the performance bug](https://github.com/jashkenas/coffee-script/issues/1033) wrt long method chains.\n- Quit supporting Node.js 0.3.x or lower.\n\n### 0.3.2\n- Unrestricted ADI for identifiers beyond `@` and `::`.\n- Expanded property shorthands beyond `@foo`.\n- Added `typeof!`, which inspects the internal _[[Class]]_ property.\n- Added shebang support.\n- REPL results now evaluate more intuitively.\n- Disallowed whitespace mixup for indentations.\n\n### 0.3.1\n- `debugger` now works anywhere.\n- Revised heregex flag syntax: `///#{x}#{y}///?` -> `RegExp('' + x, y);`\n- Removed `Coco.eval`.\n- Made _extras/coco.js_ work as a mini-compiler on WSH.\n- Added _extras/mode-coco.js_, an editing mode for [Ace](http://ace.ajax.org).\n- Added `--json` option.\n\n### 0.3.0\n\n#### Pure Additions\n- Added _backcall_, a sugar to flatten nested callbacks.\n- `do` block can now work as a pair of normal parentheses.\n- Improved _ACI_ (automatic comma insertion): `f {} [] x` -> `f({}, [], x);`\n- Improved _ADI_ (automatic dot insertion): `@@0'!'` -> `arguments[0]['!'];`\n- Multiline block on the RHS of object property now works as an implicit array.\n- Heregexes now support dynamic flags: `/// x #{? y } ///` -> `RegExp('x', y);`\n- Enabled compound _accessigns_: `a.+=b` -> `a += a.b;`\n- `...` in array destructuring (same as `...[]`) now skips items rather than `slice`ing them. ([coffee#870](https://github.com/jashkenas/coffee-script/issues/870))\n- Compilation errors now report line numbers.\n- `Coco` object now emits more events for use with `--require`.\n\n#### Incompatible Changes\n- <del>`=>`</del> -> <ins>`~>`</ins>\n- <del>`&.`</del> -> <ins>`~.`</ins>\n- Braceless objects no longer consume property shorthands.\n  ([coffee#618](https://github.com/jashkenas/coffee-script/issues/618))\n- Indentations within non-here strings are now stripped.\n- [Fixed](https://github.com/jashkenas/coffee-script/issues/1050)\n  block comment syntax to good ol' `/* */`.\n- `@0` is now `this[0]` rather than `arguments[0]`.\n\n### 0.2.2\n- `is not` is the new `isnt`.\n- `@'++'` is now valid as a shorthand for `@['++']`.\n- Commas between primitive values are now optional.\n- _coke_ now automatically aliases tasks.\n- _extras/coco.js_ now works as a Gecko JS Module.\n- Grouped documentation suite into _doc/_ for portability.\n- Rewrote _src/optparse.co_.\n\n### 0.2.1\n- Added numeric ranges.\n- Destructuring assignments can now specify default values using logical operators.\n  Default arguments syntax has been changed accordingly.\n  (`(a || b) ->` instead of `(a ||= b) ->`)\n- `do` now performs special conversions against function literals with parameters,\n  making it work as pseudo-`let` and Coffee 1.0.0 compliant.\n- Allowed `for i from x then` as a sugar for `for i from 0 til x then`.\n- Disallowed duplicate formal arguments.\n- Improved syntax-highlight in _src/index.html_.\n\n### 0.2.0\n- Version bump for Xmas, in concert with [Coffee 1.0.0](http://news.ycombinator.com/item?id=2037801).\n- `@@` is now a shorthand for `arguments`.\n- `do` can now indicate a call against indented arguments.\n- `and` and `or` now close implicit calls, making you write even less parens:\n  `f x and g y or z` -> `f(x) && g(y) || z;`\n- `catch`'s variable declaration is no longer required.\n- `a<[ b c ]>` is now equivalent to `a[\\b, \\c]` (was `a(\\b, \\c)`).\n- `case` now requires brackets to have multiple conditions.\n- Added `--nodejs` option. See [coffee#910](https://github.com/jashkenas/coffee-script/issues/910).\n- Renamed `--stdio` to `--stdin`.\n\n### 0.1.6\n- Added character/word literal:\n  `\\C + \\++` -> `'C' + '++';`\n- Retrieving multiple properties at once is now possible:\n  `a[b, c]` -> `[a[b], a[c]];`\n- Destructuring into an object's properties is now possible:\n  - `a[b, c] = d` -> `a[b] = d[0], a[c] = d[1];`\n  - `a{b, c} = d` -> `a.b = d.b, a.c = d.c;`\n- Compound assignments can now destructure:\n  `[@a, @b] /= c` -> `this.a /= c[0], this.b /= c[1];`\n\n### 0.1.5\n- Conditional control structures can now be anaphoric;\n  `that` within `if`, `while` or `case` block now refers to the condition value.\n- Decimal numbers can now have arbitrary trailing alphabets as comments.\n  e.g. `9times`, `1.5s`\n- Added `<<<`/`<<<<` as aliases to `import`/`import all`\n- non-ASCII identifiers are now allowed.\n\n### 0.1.4\n- `.` and its families can now be used with numbers and strings, instead of `[]`.\n  `a.0.'0'` compiles to `a[0]['0']`.\n- Added syntax for cloning objects;\n  `obj{key:val}` acts like a simple version of ES5 `Object.create`,\n  creating a prototypal child of `obj` and assigning to `.key` with `val`.\n- default arguments can now choose to use `||`/`&&`.\n- `super` under a class block now refers to the superclass.\n- _.coffee_ extension is no longer supported.\n\n### 0.1.3\n- Compilation now prefers single quotes.\n- AST now compiles faster, roughly 1.4 times than 0.1.2.\n- `[]`/`{}` can now be safely used as an placeholder within array destructuring.\n- Improved `--nodes` output.\n\n### 0.1.2\n- `...` is now prefix.\n- `{0: first, (*-1): last} = array` now works.\n- Added `--lex` to the `coco` utility. Removed `--lint`.\n- _src/_ now has [doc view](http://satyr.github.com/coco/src/).\n\n### 0.1.1\nRelease.\n","_id":"coco@0.9.1","dist":{"shasum":"e3815acc8fac2af939783c0847b226bd1c600d3f","tarball":"https://registry.npmjs.org/coco/-/coco-0.9.1.tgz","integrity":"sha512-xN1rL7wBPxVbzS5vXYk8BVILc7lqoLbNuqAn5x4Mt6wQ52Dp+NxQvmeVOvChduyTvuZdRuFDN/84zb7NxjDf1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyHW934H3zLebq8thJdKvKHtHC3Yht/53Nb31FQqrFMgIhAIDG6jmXzG7Qw/RxqZPpNuXpzQWplOXJXYBKdn0QNSqt"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"satyr","email":"murky.satyr@gmail.com"},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}]}},"maintainers":[{"name":"satyr","email":"murky.satyr@gmail.com"}],"author":{"name":"satyr","email":"murky.satyr@gmail.com","url":"http://satyr.github.com"},"time":{"modified":"2022-06-13T06:24:39.124Z","created":"2010-12-20T20:55:40.058Z","0.1.0":"2010-12-20T20:55:40.058Z","0.1.2":"2010-12-20T20:55:40.058Z","0.1.3":"2010-12-20T20:55:40.058Z","0.1.4":"2010-12-20T20:55:40.058Z","0.1.5":"2010-12-20T20:55:40.058Z","0.1.6":"2010-12-20T20:55:40.058Z","0.2.0":"2010-12-24T20:15:57.784Z","0.2.1":"2011-01-03T08:00:15.619Z","0.2.2":"2011-01-06T15:20:00.257Z","0.3.0":"2011-01-27T05:57:20.251Z","0.3.1":"2011-02-06T01:56:53.047Z","0.3.2":"2011-02-11T11:04:38.871Z","0.3.3":"2011-03-09T17:04:19.642Z","0.4.0":"2011-03-13T19:14:24.877Z","0.4.1":"2011-03-23T13:22:15.075Z","0.4.2":"2011-04-05T06:13:35.417Z","0.5.0":"2011-05-02T09:32:04.998Z","0.5.1":"2011-05-10T11:30:53.570Z","0.5.2":"2011-05-23T05:07:19.578Z","0.5.3":"2011-05-27T13:34:35.016Z","0.5.4":"2011-06-07T17:59:39.527Z","0.6.0":"2011-08-14T06:40:26.955Z","0.6.1":"2011-08-16T07:26:46.296Z","0.6.2":"2011-08-26T00:23:17.002Z","0.6.3":"2011-09-06T20:21:09.009Z","0.6.4":"2011-09-14T06:10:59.523Z","0.6.5":"2011-09-15T14:51:49.489Z","0.6.6":"2011-09-17T08:55:17.122Z","0.6.7":"2011-09-24T20:47:33.181Z","0.7.0":"2011-12-27T17:22:33.090Z","0.7.1":"2012-05-13T19:40:55.679Z","0.7.2":"2012-05-21T23:57:19.034Z","0.7.3":"2012-06-26T02:01:07.969Z","0.7.4":"2012-06-29T21:46:07.291Z","0.7.5":"2012-07-05T18:55:15.691Z","0.7.6":"2012-07-12T20:11:50.148Z","0.8.0":"2012-08-06T13:42:39.833Z","0.8.1":"2012-08-14T07:36:33.469Z","0.8.2":"2012-09-24T04:23:44.592Z","0.9.0":"2012-11-24T00:30:11.412Z","0.9.1":"2013-03-02T20:45:20.744Z"},"repository":{"type":"git","url":"git://github.com/satyr/coco.git"},"users":{"thejh":true}}