Fix #1069. Non-callable literals shouldn't compile
Fix #2953. Method calls on splice endpoints
Merge pull request #3045 from marchaefner/master

Fix path separator issues in tests.
Avoid variable scope collision with extensions

In #3031, an extensions variable was introduced with file-level scope
that defined the filetypes that CoffeeScript can compile. However, the
Module::load patching calls findExtension() which uses a local variable
called "extensions", which was overriding the outer level one and
causing getSourceMap() to fail.
Merge pull request #3049 from dpatti/extensions-scope

Avoid variable scope collision with extensions
Updated the Source Maps syntax
Removed multi-line comment wrapping
parallelized script loading in browser, yet order remain
remove logic redundancy
simplify logic and changing less from before
rebuild for PR #3012
Merge pull request #3051 from CaseyLeask/source-map-syntax-update

Updated the Source Maps syntax
Update compiled JS
Merge pull request #3094 from epidemian/compile-js

Update compiled JS
Disallow single-line `IF expr ELSE` without `THEN`

* Supplement missing block before `ELSE` token only for multi-line `if`.
* Don't prematurely remove `TERMINATOR` before `ELSE` (so we can  differentiate single- and multi-line forms).
* Cleanup: Remove `WHEN` from `EXPRESSION_CLOSE`. (Only `LEADING_WHEN` tokens are preceded by a `TERMINATOR`.)
* Cleanup: Remove really old, inapplicable text from comment.
Fix multi-line if-else in single-line expression.

* When searching for the closing token of a single-line expression, ignore TERMINATORS that will subsequently be removed.
* Add a test.
Change how error messages are shown

Instead of throwing the syntax errors with their source file location and needing to then catch them and call a `prettyErrorMessage` function in order to get the formatted error message, now syntax errors know how to pretty-print themselves (their `toString` method gets overridden).

An intermediate `catch` & re-`throw` is needed at the level of `CoffeeScript.compile` and friends. But the benefit of this approach is that now libraries that use the `CoffeeScript` object directly don't need to bother catching the possible compilation errors and calling a special function in order to get the nice error messages; they can just print the error itself (or let it bubble up) and the error will know how to pretty-print itself.
Override the SyntaxError's "stack" property instead of deleting it

This makes the "stack" property more useful when it's shown on other Node.js applications that compile CoffeeScript (e.g. testing libraries) and should fix #3023. A minimal example:

    $ node -e 'require("coffee-script").compile("class class")'

    /usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:41
            throw err;
                  ^
    [stdin]:1:7: error: unexpected CLASS
    class class
          ^^^^^
Merge `removeMidExpressionNewlines` into `addImplicitIndentation`

and rename it to `normalizeLines`
Fixed deep directory creation for command line utility