4258 Commits

Author SHA1 Message Date
Simon Lydell
91e3f7255c Merge pull request #4441 from GeoffreyBooth/1.12.4
1.12.4
1.12.4
2017-02-18 09:47:25 +01:00
Geoffrey Booth
664c7a4743 Update compiled output 2017-02-18 02:54:41 -05:00
Geoffrey Booth
f018e94be9 Update changelog 2017-02-18 02:54:15 -05:00
Geoffrey Booth
79d38cc30b Bump dependency version 2017-02-18 02:53:56 -05:00
Geoffrey Booth
ee8f022317 Merge branch 'master' of github.com:jashkenas/coffeescript into 1.12.4
# Conflicts:
#	Cakefile
2017-02-18 02:48:57 -05:00
Geoffrey Booth
98c1a3a045 Refactor Cake tasks (#4440)
* Node comes with NPM nowadays, so there’s not really a reason to install CoffeeScript the non-NPM way

* The cake documentation tasks should each have build and watch modes following the same form

* Refactor the build tasks to be more foolproof, including the parser unless it’s explicitly excluded

* Abstract out testing built code, to prepare for watching the build task

* Cake task to cut a new release

* cake build:watch, based on https://github.com/GeoffreyBooth/coffeescript-gulp

* Coding style

* Tests shouldn’t write files in a watched folder

* Don’t crash if the REPL test history file is already gone by the time we try to delete it
2017-02-18 02:47:02 -05:00
Simon Lydell
d84c94dc6d Merge pull request #4445 from alangpierce/upstream-fix-new-location-data
Properly update location data when setting a call to use `new`
2017-02-17 18:21:23 +01:00
Simon Lydell
4f714cc7f9 Merge pull request #4444 from alangpierce/upstream-fix-heregex-end-location
Place ending heregex tokens one index earlier
2017-02-17 18:21:08 +01:00
Alan Pierce
fbc77f7445 Properly update location data when setting a call to use new
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/24

In a case like `new A().b(c)`, the jison structure ends up being different from
the resulting AST. To the jison parser, this is the `new` unary operator applied
to the expression `A().b(c)`. When the unary operator is applied, the
`Call.prototype.newInstance` function traverses into the leftmost function call
and sets the `isNew` flag to true, and the `Op` constructor returns the `Call`
node so that the call is used in place of the unary operator. However, the code
wasn't updating the node location data, so this commit fixes that.

It's sort of hard to get the location data in `newInstance`, so we set a flag on
every affected node in `newInstance` and override `updateLocationDataIfMissing`
(which is called with the location data after the fact) so that it updates just
the starting position.
2017-02-16 20:43:19 -08:00
Alan Pierce
f757614334 Place ending heregex tokens one index earlier
This is an upstream port of https://github.com/decaffeinate/coffeescript/pull/17

The lexer generates fake tokens for interpolated heregexes, and the ending
tokens were being placed where the start (inclusive) and end (inclusive) index
were one past the end of the heregex. This meant that in a case like
`[a ///#{b}///]`, the end tokens of the heregex and also the implicit function
call end were all being placed at the `]`, so the AST location data would say
that the function call ends at the end of the `]`.

To fix, I can just subtract 1 from the position of those ending heregex tokens
so that their end lines up with the end of the heregex itself. This is similar
to previous fixes that changed `OUTDENT` and `CALL_END` tokens so that the end
of the token lines up with the end of the AST node.
2017-02-16 20:32:41 -08:00
Geoffrey Booth
94023d88ca Updated compiled output for 1.12.4 2017-02-14 23:30:32 -08:00
Geoffrey Booth
4547cbac3a Bump version to 1.12.4 and update changelog 2017-02-14 23:30:10 -08:00
Geoffrey Booth
856bf5e68c cake build:watch, based on https://github.com/GeoffreyBooth/coffeescript-gulp 2017-02-14 19:13:41 -08:00
Geoffrey
f4a1172b6f Cake task to cut a new release 2017-02-13 21:58:23 -08:00
Geoffrey
9866224dba Abstract out testing built code, to prepare for watching the build task 2017-02-13 21:49:04 -08:00
Geoffrey
8a271995c7 Refactor the build tasks to be more foolproof, including the parser unless it’s explicitly excluded 2017-02-13 21:05:12 -08:00
Geoffrey
c06a0584ff The cake documentation tasks should each have build and watch modes following the same form 2017-02-13 21:04:14 -08:00
Geoffrey
37e6513c02 Node comes with NPM nowadays, so there’s not really a reason to install CoffeeScript the non-NPM way 2017-02-13 20:31:58 -08:00
Ruben Rodriguez
3d0d04efe2 getSourceMap needs to pass literate flag to compile() (#4435) 2017-02-04 19:33:09 -08:00
Simon Lydell
87e537c917 Merge pull request #4432 from connec/fix-export-declarations
Fix "export" squashing variable declarations
2017-01-26 16:58:43 +01:00
Chris Connelly
b61324058d Fix "export" squashing variable declarations
Exports that referenced variables assigned in the module would prevent
the referenced variables from being declared, resulting in
ReferenceErrors at run time.

Fixes #4394.
2017-01-26 15:27:41 +00:00
Simon Lydell
635e207f3f Update release date for 1.12.3 1.12.3 2017-01-24 18:53:18 +01:00
Simon Lydell
e87d5749bd Merge pull request #4429 from GeoffreyBooth/1.12.3
1.12.3
2017-01-24 18:50:29 +01:00
Geoffrey Booth
b89dd043d3 Add other 1.12.3 updates to changelog 2017-01-22 16:13:53 -08:00
Geoffrey Booth
8ce7c30c49 Update generated docs for 1.12.3 2017-01-22 13:30:38 -08:00
Geoffrey Booth
45d0a7d01f Update browser compiler for 1.12.3 2017-01-22 13:30:04 -08:00
Geoffrey Booth
729127735b Bump version 2017-01-22 13:28:08 -08:00
Geoffrey Booth
6d27277ef6 Update documentation for 1.12.3. 2017-01-22 13:27:22 -08:00
Geoffrey Booth
3108244c20 Fix stack trace (#4428)
* Revert aee27fbff0

* Patch Jison’s output so that it requires `fs` only if we’re truly in a CommonJS/Node environment, not a browser environment that may happen to have globals named `require` and `exports` (as would be the case if require.js is being used). Fixes #4391.

* Temporary fix for exceptions getting thrown when trying to generate a stack trace for a file that has been deleted since compilation; fixes #3890, but not well. A better solution would not try to recompile the file when trying to retrieve its stack trace.

* Save the test REPL history in the system temp folder, not in the CoffeeScript project folder

* Rewrite `getSourceMap` to never read a file from disk, and therefore not throw IO-related exceptions; source maps are either retrieved from memory, or the related source code is retrieved from memory to generate a new source map. Fixes #3890 the proper way.

* Add test to verify that stack traces reference the correct line number. Closes #4418.

* Get the parser working in the browser compiler again; rather than detecting a CommonJS environment generally, just check for `fs` before trying to use it

* Follow Node’s standard of 4-space indentation of stack trace data

* Better .gitignore

* Fix caching of compiled code and source maps; add more tests to verify correct line numbers in stack traces

* Better fallback value for the parser source

* Fix the stack traces and tests when running in a browser

* Update the browser compiler so that @murrayju doesn’t have any extra work to do to test this branch
2017-01-22 13:20:18 -08:00
Jeremy Ashkenas
d0ed2dee60 Merge pull request #4420 from GeoffreyBooth/backport-2-doc-changes
Backport documentation edits
2017-01-13 09:54:58 -05:00
Geoffrey Booth
a61429c947 Updated output 2017-01-12 22:24:14 -08:00
Geoffrey Booth
fbdfa65734 Apply SVG fill color through CSS 2017-01-12 22:24:06 -08:00
Geoffrey Booth
02198eb967 Fix link to Try CoffeeScript 2017-01-12 22:21:05 -08:00
Geoffrey Booth
cd8be896c4 Trim the installation and usage sections; can backport to v1 2017-01-12 22:11:20 -08:00
Geoffrey Booth
b398c8809a Fix releaseHeader for the initial release; should backport to v1 2017-01-12 22:11:08 -08:00
Jeremy Ashkenas
f4353fa797 Merge pull request #4417 from BrianRossmajer/patch-1
Show a simple object extraction before complex one
2017-01-04 16:24:54 -05:00
Brian Rossmajer
e6f5b930bc Show a simple object extraction before complex one 2017-01-04 16:06:25 -05:00
Jeremy Ashkenas
87e70ee78b Merge pull request #4416 from isabellatea/copyright-year
Update copyright range to 2017
2017-01-04 11:05:04 -05:00
Bella
fc1d4edbfd Update copyright range to 2017 2017-01-04 00:34:28 -08:00
Jeremy Ashkenas
5f00ccc362 Merge pull request #4415 from connec/@indices-in-loops
Allow `@` values as indices in `for` expressions
2016-12-29 14:24:36 -05:00
Chris Connelly
1143ac0268 Allow @ values as indices in for expressions
This loosens the compilation of `for` expressions to allow the index
variable to be an `@` value, e.g.

    do @visit for @node, @index in nodes

Within `@visit`, the index of the current node (`@node`) would be
available as `@index`.

Fixes #4411.
2016-12-29 19:00:00 +00:00
Valentine Valyaeff
0a6aeef0c9 Fix //= operator (#4410) 2016-12-23 14:37:11 +01:00
Jeremy Ashkenas
ebb56e08ca Merge pull request #4407 from connec/improve-test-with-whitespace
Trivial: Remove trailing whitespace in test/error_messages.coffee
2016-12-21 12:49:48 -05:00
Chris Connelly
27e0914a0d Remove trailing whitespace in test/error_messages.coffee
Trailing whitespace is generally considered 'bad style' and is often
linted against or even simply removed by text editors.

One of the tests in test/error_messages.coffee depended on trailing
whitespace, making the file tricky to work with for people whose
editor is configured to remove trailing whitespace. The alternative is
to use a literal "\n" and escape the line break.
2016-12-21 08:24:05 +00:00
Simon Lydell
de180dc81a Merge pull request #4405 from GeoffreyBooth/1.12.2
1.12.2
1.12.2
2016-12-16 09:46:26 +01:00
Geoffrey Booth
e2a3a5b993 Rebuild for 1.12.2 2016-12-15 21:28:24 -08:00
Geoffrey Booth
8c81c4ad39 1.12.2 changelog entry and version bump 2016-12-15 21:24:16 -08:00
Geoffrey Booth
e620434a2e Docs improvements: content in Markdown, organization into subtemplates, fixed tests (#4401)
* Replace tiny bitmaps with base64-encoded URIs

* Optimize SVGs; replace logo PNG with SVG

* Modernize favicon

* Embed CSS; a bit unorthodox, but we’re a single page so there’s no point in separate .css files and their separate HTTP requests

* Documentation is now markdown, converted to HTML on compilation

* Render the examples when we’re rendering index.html; they compile so quickly that there’s no need to pre-render them and save the intermediate .js files

* Split apart index.html into components that Cakefile assembles, so that we can add in logic to include different files for v1 versus v2

* Split building index.html and building test.html into two tasks; collapse the parts of `releaseHeader` into one compact function

* Move include logic into templates

* Get error messages tests to work in the browser

* Update output index.html

* Split body into nav and body

* Watch subtemplates

* Revert "Split body into nav and body"

This reverts commit ec9e559ec0.

* Add marked

* Update gitignore

* Use idiomatic markdown output for code blocks (<pre><code>)

* Handle ids within the template, not in the Cakefile; remove marked’s auto-generated and conflicting ids

* Move the `codeFor` function into versioned folders, so that v1 and v2 docs can have different example code blocks/editors

* Update packages, including new highlight.js which supports our newer keywords and triple backticks (docs output is unchanged)
2016-12-15 21:05:44 -08:00
Geoffrey Booth
be0f1cb8db DRY on the version number: it should be in package.json and nowhere else (#4400) 2016-12-15 20:52:31 -08:00
mdcb
07d6eb6af5 Fix command completion under nodejs v6.9.1 (#4402)
* Fix command completion under nodejs v6.9.1
Closes #4397

* Commit updated compiled version
2016-12-15 20:50:54 -08:00