103 Commits

Author SHA1 Message Date
Jeremy Ashkenas
e0ec8a51e4 CoffeeScript 1.9.0 2015-01-29 12:20:46 -05:00
Simon Lydell
3db029f2c1 Make regexes always uncallable
No matter if they have interpolations or not.
2015-01-15 19:44:14 +01:00
Simon Lydell
fce502ac98 Fix #3194: Make strings always uncallable
No matter if they have interpolations or not.
2015-01-14 21:27:24 +01:00
Michael Ficarra
9fa77af576 Merge pull request #3784 from lydell/unique-generated-vars
Unique generated vars
2015-01-12 21:14:44 -08:00
Simon Lydell
62712060c0 Better error message for unexpected CALL_END 2015-01-12 20:40:59 +01:00
Simon Lydell
8ab15d7372 Fix #1500, #1574, #3318: Name generated vars uniquely
Any variables generated by CoffeeScript are now made sure to be named to
something not present in the source code being compiled. This way you can no
longer interfere with them, either on purpose or by mistake. (#1500, #1574)

For example, `({a}, _arg) ->` now compiles correctly. (#1574)

As opposed to the somewhat complex implementations discussed in #1500, this
commit takes a very simple approach by saving all used variables names using a
single pass over the token stream. Any generated variables are then made sure
not to exist in that list.

`(@a) -> a` used to be equivalent to `(@a) -> @a`, but now throws a runtime
`ReferenceError` instead (unless `a` exists in an upper scope of course). (#3318)

`(@a) ->` used to compile to `(function(a) { this.a = a; })`. Now it compiles to
`(function(_at_a) { this.a = _at_a; })`. (But you cannot access `_at_a` either,
of course.)

Because of the above, `(@a, a) ->` is now valid; `@a` and `a` are not duplicate
parameters.

Duplicate this-parameters with a reserved word, such as `(@case, @case) ->`,
used to compile but now throws, just like regular duplicate parameters.
2015-01-10 23:25:01 +01:00
Andreas Lubbe
c72556619f added 'yield from' 2014-09-06 13:53:21 +02:00
Andreas Lubbe
565d78f00b removed support for '->*" and '=>*' 2014-09-06 13:38:04 +02:00
Andreas Lubbe
75900660fd Merge remote-tracking branch 'A/master' 2014-09-06 11:32:25 +02:00
Jeremy Ashkenas
81047d45ee CoffeeScript 1.8.0 2014-08-26 12:24:29 -04:00
Michael Ficarra
4ab8503e5a CoffeeScript 1.7.1 2014-01-29 23:19:36 -06:00
xixixao
10293df1f9 Recompile source with 1.7.0 version 2014-01-28 03:34:00 +00:00
xixixao
04b0b94a8c Fixes chaining after inline implicit objects 2014-01-26 22:11:10 +00:00
Michael Ficarra
cc1b74f11b Merge pull request #3329 from xixixao/issue3325
Fixes #3325: implicit indendation error messages
2014-01-25 22:00:24 -08:00
xixixao
104b4666fe Fix indendation error messages 2014-01-26 05:25:13 +00:00
xixixao
c2727d964c Fix for declarations in object literals 2014-01-26 04:41:30 +00:00
Andreas Lubbe
f375394381 Merge https://github.com/jashkenas/coffee-script
Conflicts:
	lib/coffee-script/lexer.js
	lib/coffee-script/parser.js
	lib/coffee-script/rewriter.js
	src/lexer.coffee
	src/rewriter.coffee
2014-01-25 19:37:35 -08:00
Demian Ferreiro
2b4421fca1 Merge branch 'master' into more-math-operators
Conflicts:
	lib/coffee-script/grammar.js
	lib/coffee-script/lexer.js
	lib/coffee-script/nodes.js
	lib/coffee-script/parser.js
	test/regexps.coffee
2014-01-24 15:40:28 -03:00
xixixao
8b976acac1 Fixes #1871, close implicit objects in implicit returns 2014-01-23 23:12:12 +00:00
xixixao
f0463e9981 Improve error messages for generated tokens 2014-01-22 02:54:09 +00:00
xixixao
39cb8815f7 Fixed chaining semantics after outdent 2014-01-21 22:00:57 +00:00
Andreas Lubbe
dab4ae9416 '->*' and '=>*' now produce generators 2013-12-19 18:08:25 -08:00
Andreas Lubbe
56b04a58dc first attempt at using '->*" and '=>*' for generators 2013-12-19 14:21:14 -08:00
xixixao
bc975e556e Prevent loop collection in endAllImplicitCalls 2013-12-05 21:53:42 +00:00
xixixao
ee9febe399 Handle nested calls and function oneliners when chaining 2013-11-27 04:57:44 +00:00
xixixao
15a70f863c Implemented method call chaining 2013-11-27 03:41:52 +00:00
Marc Häfner
910e38749c Merge removeMidExpressionNewlines into addImplicitIndentation
and rename it to `normalizeLines`
2013-07-31 22:12:44 +02:00
Marc Häfner
4342bedd2f 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.
2013-07-31 12:18:50 +02:00
Marc Häfner
fdd5796f5e 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.
2013-07-30 19:31:46 +02:00
Jeremy Ashkenas
84b8b5ccee CoffeeScript 1.6.3 2013-06-02 09:37:45 +04:00
Michael Ficarra
0f5ae54014 Merge pull request #2930 from marchaefner/Issue1057
Fixes #1057: Allow catch/finally in single line functions.
2013-05-31 14:56:04 -07:00
Marc Häfner
40d2761bd8 Fixes #2916 -- implicit calls with preceding herecomment 2013-04-28 10:30:03 +02:00
Marc Häfner
69d66a1d4d Fixes #1057: Allow catch/finally in single line functions.
* Don't end single-line functions at `catch` or `finally`.
* Remove unused `IMPLICIT_BLOCK` and superfluous test for `IF`.
2013-04-15 20:20:52 +02:00
Marc Häfner
cf07fcb4b1 #2900 -- parameter-less catch clause.
Plus some minor cleanup after f8c6b494aa
2013-04-12 17:50:45 +02:00
Demian Ferreiro
08b59aef8a Make power operator have higher precedence than unary operators: +, -, ~, ! 2013-03-25 00:05:04 -03:00
Jeremy Ashkenas
566a7dabb2 Fixing erroneous whitespace fix in generated JS 2013-03-18 17:47:55 +08:00
Jeremy Ashkenas
a3e8de338a CoffeeScript 1.6.2 2013-03-18 13:06:33 +08:00
Jeremy Ashkenas
2f5b11b295 Fixes #2555 2013-03-17 19:27:16 +08:00
Jeremy Ashkenas
de8ec2beb0 Fixes #1066 -- interpolated strings are not implicit funcs 2013-03-05 21:28:29 +13:00
Marc Häfner
dcd74d3e59 Clean up unused parameter. 2013-03-05 01:02:16 +01:00
Marc Häfner
74181c0ec0 Improve locationData of implicit object braces.
Set location of generated left brace to start of content, so the corresponding AST nodes don't span preceding spaces, blank lines or comments.
2013-03-05 00:12:51 +01:00
Jeremy Ashkenas
eef83a9fcb CoffeeScript 1.6.1 2013-03-05 11:07:16 +13:00
Jeremy Ashkenas
9f614fedec CoffeeScript 1.6.0 2013-03-05 08:19:08 +13:00
Troels Nielsen
37a6ea63b1 #2757, Allow non-significant commas at end of nested implicit objects 2013-03-04 12:55:15 +01:00
Jeremy Ashkenas
b3452c1276 Fixes #2508 -- existential access of the prototype. 2013-03-04 22:07:47 +13:00
Jeremy Ashkenas
f33517368e Removing duplicate 'CATCH' 2013-03-01 12:38:41 +13:00
Troels Nielsen
71e04d9839 Disallow implicit calls in cases like:
f
  a

and only allow cases like:

f
  a: 1
2013-02-28 23:20:42 +01:00
Troels Nielsen
cb187fd900 Fix implicit calls with try/catch/finally as arguments 2013-02-28 11:53:04 +01:00
Troels Nielsen
1666716c31 Improve the handling of implicit object and implicit call combinations
by handling them together.
2013-02-27 08:15:38 +01:00
Jeremy Ashkenas
af53c230a1 CoffeeScript 1.5.0 2013-02-25 21:12:22 +13:00