* Make `node --harmony bin/cake test` pass on Node 9
Make classMaker() explicitly return an object
* Update Travis and AppVeyor to use --harmony and v9
* Test cases for #4852, get/set oddities
* Fix soak before accessor call to `get` or `set`
* Fixes#4852: More get/set cases; cleanup style
* Check for tokens' existence before referencing them
* fix#3921: inline function without parentheses used in condition
* add grammar rules
* fix issue #2343
* typos
* multiple 'else' in line
* close 'else if'
* First attempt at using AppVeyor
* Maybe it doesn't like the leading dot?
* Versions are an array
* Fix tests on Windows: for some reason, Windows requires `coffee` to be executed as `node coffee` (in the context of `spawnSync`, at least)
* Use npm@latest, see if that's less noisy
* Nevermind, only an issue on Node 6
* Better to see the NPM version before npm install
* Fix#4706: Comments before a PARAM_START token stay before that token
* Simplify nodes
* Add function-in-function test
* Fix#4706: Comments after class name should go after the identifier that's after `class`, not the variable assigned to
* Fix#4706: Top-level identifiers with trailing comments get wrapped in parentheses (around the comment too) so that Flow doesn't interpret it as a JavaScript label
* Cleanup
* If the source has parentheses wrapping an identifier followed by a block comment, output those parentheses rather than optimizing them away; this is a requirement of Flow, to distinguish from JavaScript labels
* More tests for Flow comments
* For local variables with trailing inline herecomments, output the comments up in the variable declarations line for Flow compatibility
* Fix#4706: Comments before a PARAM_START token stay before that token
* Simplify nodes
* Add function-in-function test
* Fix#4706: Comments after class name should go after the identifier that's after `class`, not the variable assigned to
* Fix#4706: Top-level identifiers with trailing comments get wrapped in parentheses (around the comment too) so that Flow doesn't interpret it as a JavaScript label
* Cleanup
* If the source has parentheses wrapping an identifier followed by a block comment, output those parentheses rather than optimizing them away; this is a requirement of Flow, to distinguish from JavaScript labels
* More tests for Flow comments
The handling of hoisted nodes in class bodies was incorrect, as the node
was being unwrapped *before* checking if it was hoisted, meaning nodes
that should have been hoisted would be output normally.
This affected `PassthroughLiteral`s as they were wrapped in a `Value`.
* Fix#4725: apply transpile option to require’d .coffee files
* Use the current module’s options if it has any, before going searching up the tree
* Don’t mutate passed-in options object
* If the REPL is run with `--transpile`, turn transpilation on for both the current REPL input and any files imported by that input
* Use the command.coffee machinery for parsing arguments
* Fix test for Windows
* Fix#4725: apply transpile option to require’d .coffee files
* Use the current module’s options if it has any, before going searching up the tree
* Don’t mutate passed-in options object
* ?
* ??
* Revert the coffee.EXE approach
* Explicitly define the PATH to include only the folders we need
* Get spawnSync working in Windows
* Simplify test to be cross-platform
* Fix#4464: backticked expressions in class body should be left in the body, not hoisted
* Fix#4464: backticked expressions in class body should be left in the body, not hoisted
* Simplify fix for #4464
This uses more of the existing machinery for moving class body
expressions into the initializer.
* Clarify the purpose of Class::addInitializerExpression
* Further clarify the purpose of Class::addInitializerExpression
* Add reference to class fields; format
comment wrapping
* Reapply 1d3af8c432, that got lost because of rebase/force-push shenanigans
* Updated output
* Upgrade Babeli (now babel-minify) which fixes the bug that was forcing us to run Babel twice for transpilation
* Add --transpile option (WIP)
* Node API always compiles a string, so it doesn’t need the option to pass a path to an options file, it can always just pass an object to `transpile`; get `transpile` working with `eval`
* Not allowing argument to `--transpile` so don’t need to cover so many cases
* Don’t need to worry about `sourceMaps` option to pass to Babel, `inputSourceMap` overrides it
* Rewrite Webpack test to use Node API
* Make the compiler safe again for browsers and Webpack/Browserify
* Node version of CoffeeScript.compile passes reference to Babel if transpile is requested
* Test Node API for transpile option
* Test for merged source maps
* Test for Node API error message
* Only stop searching for Babel options if a package.json has a truthy "babel" key
* Update docs