Jeremy Ashkenas
533ad8afe9
CoffeeScript 1.9.1
2015-02-18 15:43:33 -05:00
Simon Lydell
76c076db55
Fix #3597 : Allow interpolations in object keys
...
The following is now allowed:
o =
a: 1
b: 2
"#{'c'}": 3
"#{'d'}": 4
e: 5
"#{'f'}": 6
g: 7
It compiles to:
o = (
obj = {
a: 1,
b: 2
},
obj["" + 'c'] = 3,
obj["" + 'd'] = 4,
obj.e = 5,
obj["" + 'f'] = 6,
obj.g = 7,
obj
);
- Closes #3039 . Empty interpolations in object keys are now _supposed_ to be
allowed.
- Closes #1131 . No need to improve error messages for attempted key
interpolation anymore.
- Implementing this required fixing the following bug: `("" + a): 1` used to
error out on the colon, saying "unexpected colon". But really, it is the
attempted object key that is unexpected. Now the error is on the opening
parenthesis instead.
- However, the above fix broke some error message tests for regexes. The easiest
way to fix this was to make a seemingly unrelated change: The error messages
for unexpected identifiers, numbers, strings and regexes now say for example
'unexpected string' instead of 'unexpected """some #{really long} string"""'.
In other words, the tag _name_ is used instead of the tag _value_.
This was way easier to implement, and is more helpful to the user. Using the
tag value is good for operators, reserved words and the like, but not for
tokens which can contain any text. For example, 'unexpected identifier' is
better than 'unexpected expected' (if a variable called 'expected' was used
erraneously).
- While writing tests for the above point I found a few minor bugs with string
locations which have been fixed.
2015-02-09 17:32:37 +01:00
Simon Lydell
4d7a0d2470
Name generated variables without leading underscore
...
For example, `ref` not `_ref`. It's cleaner.
This also fixes #3816 .
2015-01-30 20:33:03 +01:00
Jeremy Ashkenas
e0ec8a51e4
CoffeeScript 1.9.0
2015-01-29 12:20:46 -05:00
Simon Lydell
a63009fccb
Fix #3671 : Allow step in optimized range comprehensions
...
Allow the `by c` part in `for [a..b] by c then`.
Continue disallowing a `when d` part, since it makes no sense having a guard
that isn't given access to anything that changes on every iteration.
2015-01-10 02:31:56 +01:00
alubbe
dd5da7f5f2
implemented proper precedence for 'yield'
2014-10-13 03:32:02 +02:00
Andreas Lubbe
437b9ed65c
added 'yield return'
2014-09-06 15:40:53 +02: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
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
369e0545c0
Added expansion to destructuring
2014-01-24 16:00:34 +00:00
Andreas Lubbe
56b04a58dc
first attempt at using '->*" and '=>*' for generators
2013-12-19 14:21:14 -08:00
xixixao
d7862647d9
Fix multiple postfix conditionals
2013-12-17 03:31:19 +01:00
xixixao
efe8c68c75
Changed multiline string literals
2013-11-18 04:32:15 +00:00
Marc Häfner
25c6001a6c
Speed up updateLocationDataIfMissing.
...
* Avoid excessive search for missing `locationData`
* Fix `locationData` for `ELSE IF`.
2013-06-21 02:47:29 +02:00
Marc Häfner
4fd5e9a3ab
Better handling of initial indent at file start.
...
* Detect initial indentation before the first token and enforce it.
* Don't add `INDENT` token (or the matching `OUTDENT, TERMINATOR`).
2013-06-14 00:28:45 +02:00
Jeremy Ashkenas
84b8b5ccee
CoffeeScript 1.6.3
2013-06-02 09:37:45 +04: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
Demian Ferreiro
e237abff84
Merge branch 'power-operator' of git://github.com/charliesome/coffee-script into more-math-operators
...
Conflicts:
src/nodes.coffee
test/operators.coffee
2013-03-24 22:47:46 -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
dbb99f31a7
Reverting #2490
2013-03-10 07:21:00 +08:00
Jeremy Ashkenas
c53df12ec1
disallow multiple else blocks in if/guard syntax
2013-03-09 15:44:45 +08:00
Jeremy Ashkenas
13fae12f69
Fixes #2490 -- adding guard-style if blocks
2013-03-09 10:40:37 +08: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
Jeremy Ashkenas
b3452c1276
Fixes #2508 -- existential access of the prototype.
2013-03-04 22:07:47 +13:00
Demian Ferreiro
bf70b4660e
Revert #2599
2013-02-28 10:37:30 -03:00
Jeremy Ashkenas
af53c230a1
CoffeeScript 1.5.0
2013-02-25 21:12:22 +13:00
Jeremy Ashkenas
ac9d0e17e4
Merging in location data in the AST. Yee-hah.
2013-02-25 17:51:05 +13:00
Jeremy Ashkenas
5e498ca395
merged
2013-02-25 17:41:27 +13:00
Jeremy Ashkenas
14c2a16833
Reverted b31cc70 -- putting Generated comment back up top. Why? Why not?
2013-02-25 17:17:01 +13:00
Jason Walton
e1a2e11de4
Fix merge problem, and rebuild parser.js
2013-02-21 20:17:06 -05:00
Jason Walton
5e49df8ed4
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
lib/coffee-script/grammar.js
src/grammar.coffee
2013-02-14 14:21:46 -05:00
Jeremy Ashkenas
fa1ffa66d3
Fixes #2359 -- tweak grammar to use new name
2013-02-14 16:34:32 +13:00
Jason Walton
c31bc6deb7
Update js files.
2013-02-06 10:40:48 -05:00
Jason Walton
fe45f1bf35
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
lib/coffee-script/grammar.js
lib/coffee-script/rewriter.js
src/grammar.coffee
src/rewriter.coffee
2013-02-06 10:29:19 -05:00
Jeremy Ashkenas
b31cc70235
Moving the 'generated by coffeescript version X' comment to the bottom, to get it out of the way
2013-02-02 10:42:46 +11:00
Jeremy Ashkenas
78891a0ccc
Merging in @epedemian's fix for #2359 -- disallow other-typed constructors
2013-02-01 22:30:22 +11:00
Jason Walton
a1ba0a89f8
Merge remote-tracking branch 'origin/master'
...
Conflicts:
lib/coffee-script/coffee-script.js
lib/coffee-script/lexer.js
lib/coffee-script/parser.js
src/lexer.coffee
2013-01-14 14:26:06 -05:00
Jeremy Ashkenas
547a271cee
Merge pull request #2627 from int3/master
...
Parse compound assignment operator followed by a terminator. Closes #2532 .
2013-01-05 20:10:32 -08:00
Jeremy Ashkenas
ba08a21d21
bumping version to 1.5.0-pre
2013-01-04 09:35:20 -10:00
Jez Ng
847ab4d18e
Parse compound assignment followed by a terminator.
...
Closes #2532 .
2012-11-27 20:11:01 -05:00
Jason Walton
25126e2f99
Add location data to nodes without passing it in constructors.
2012-11-15 15:35:01 -05:00