* 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
* Get `coffee` command working again in Node 6, by converting the ‘await’ wrapper in the REPL to use a Promise instead of the ‘await’ keyword; add tests for REPL ‘await’ wrapper, including test to skip async tests if the runtime doesn’t support them
* Fix async tests: now if a test function is a Promise (which an `await` function is), we add it to an array of async test functions and wait for them all to resolve before finishing the test run, so that if any async tests fail we see those failures in the output
* Code review
* Unnecessary
* Let's support Node 6+ if we can
* Simplify the returned promise
* Simplify async check
* Get `coffee` command working again in Node 6, by converting the ‘await’ wrapper in the REPL to use a Promise instead of the ‘await’ keyword; add tests for REPL ‘await’ wrapper, including test to skip async tests if the runtime doesn’t support them
* Code review
* Let's support Node 6+ if we can
* _extends utility instead of Object.assign()
* eqJS test for _extends
* Test that a user-defined function named `_extends` doesn’t conflict with our utility function
* IE8 polyfill note in docs