Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
...
Commits on Jan 29, 2015
@jashkenas docs 0a9c7a3
@jashkenas Fixes #3816 -- prettier internal variable names. 3fd004b
Commits on Jan 30, 2015
@jashkenas #3819 changelog docs a3096ea
@jashkenas move changelog 3ddd311
@jashkenas Revert "move changelog"
This reverts commit 3ddd311.
c2abe25
@lydell lydell Name generated variables without leading underscore
For example, `ref` not `_ref`. It's cleaner.

This also fixes #3816.
4d7a0d2
@jashkenas Merge pull request #3821 from lydell/no-underscore
Name generated variables without leading underscore
e9a372d
Commits on Feb 03, 2015
@jashkenas redoc dd0ec84
@jashkenas Merge branch 'master' of github.com:jashkenas/coffeescript 934bd2a
@lydell lydell Fix #3822: Include delimiters in string/regex locations f8c366c
@jashkenas Merge pull request #3826 from lydell/string-locations
Fix #3822: Include delimiters in string/regex locations
17a271a
@lydell lydell Fix #3778: Make for loops more consistent
The following two lines might seem equivalent:

    for n in [1, 2, 3] by  a then a = 4; n
    for n in [1, 2, 3] by +a then a = 4; n

But they used not to be, because `+a` was cached into a `ref`, while the plain
`a` wasn’t. Now even simple identifiers are cached, making the two lines
equivalent as expected.
996a171
@jashkenas Merge pull request #3786 from lydell/loop-safety
Fix #3778: Make for loops more consistent
04b30a6
@lydell lydell Improve error messages for unexpected regexes ffa25aa
@lydell lydell Allow super in methods with dynamic names
As discussed in #3039 (comment).
This is the first step to implement dynamic object literal keys (see #3597).

This also fixes #1392.

In short, `super` is now allowed:

    # in class definitions:
    class A
      instanceMethod: -> super
      @staticMethod: -> super
      @staticMethod2 = -> super

    # in assignment where the next to last access is 'prototype':
    A::m = -> super
    A.prototype.m = -> super
    a.b()[5]::m = -> super
    A::[x()] = -> super
    class B
      @::m = -> super
ee8f889
@jashkenas Merge pull request #3785 from lydell/super
Allow super in methods with dynamic names
c0e1f23
@jashkenas Merge pull request #3827 from lydell/unexpected-regex
Improve error messages for unexpected regexes
64632e3
Commits on Feb 05, 2015
@swang swang Fix incorrect token representation
The third element in a token should just be an object containing line
number and column info. This PR fixes the problem with one of the tokens
being set incorrectly.
92e5ab2
@michaelficarra michaelficarra Merge pull request #3830 from swang/fix_incorrect_token
Fix incorrect token representation
5a220d4
@lydell lydell Fix #3795: Never generate invalid strings and regexes
- Invalid `\x` and `\u` escapes now throw errors.
- U+2028 and U+2029 (which JavaScript treats as newline characters) are now
  escaped to `\u2028` and `\u2029`, respectively.
- Octal escapes are now forbidden not only in strings, but in regexes as well.
- `\0` escapes are now escaped if needed (so that they do not form an octal
  literal by mistake). Note that `\01` is an octal escape in a regex, while `\1`
  is a backreference. (Added a test for backreferences while at it.)
- Fixed a bug where newlines in strings weren't removed if preceded by an
  escaped character.
72ceec5
@jashkenas Merge pull request #3833 from lydell/escapes
Fix #3795: Never generate invalid strings and regexes
3b3e520
Commits on Feb 06, 2015
@lydell lydell Improve lexer error messages
- Erraneous tokens are now fully underlined with ^:s.
- The error messages are now a bit more consistent.
2132254
@jashkenas Merge pull request #3834 from lydell/better-lexer-errors
Improve lexer error messages
5d13959
Commits on Feb 07, 2015
@lydell lydell Replace `last array` helper with `[..., last] = array` 94a17cb
Commits on Feb 08, 2015
@michaelficarra michaelficarra Merge pull request #3841 from lydell/last
Replace `last array` helper with `[..., last] = array`
53c7891
@arianf arianf Fixed copyright range to be updated to 2015 e0e4967
@michaelficarra michaelficarra Merge pull request #3842 from arianf/master
Fixed copyright range to be updated to 2015
5698e6c
Commits on Feb 09, 2015
@lydell lydell 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.
76c076d
Commits on Feb 10, 2015
@jashkenas Merge pull request #3840 from lydell/dynakeys
Fix #3597: Allow interpolations in object keys
88ad059
Commits on Feb 11, 2015
@mapmeld mapmeld allow multiline comment inside of an object definition [Fixes #3761]
use more CoffeeScript syntax
dc44ebb
@jashkenas Merge pull request #3802 from mapmeld/multiline_comment_fix
Allow multiline comment at end of an object definition [Fixes #3761]
8130e63
Commits on Feb 12, 2015
@lydell lydell Fix error message for invalid escape at end of regex 3da88b9
@lydell lydell Fix #3846: Fix odd start token of implicit objects
Now the same hack as for reserved identifier tokens in the lexer is used
instead.
57846ea
@jashkenas Merge pull request #3850 from lydell/implicit-object-start-token
Fix #3846: Fix odd start token of implicit objects
c3ae232
@jashkenas Merge pull request #3849 from lydell/regex-end-invalid-escape
Fix error message for invalid escape at end of regex
dc8a2b1
@DiThi DiThi Prevent writing the same file several times (fixes #3753) 6bc3157
@jashkenas Merge pull request #3758 from DiThi/master
Prevent writing the same file several times (fixes #3753)
b49b413
Commits on Feb 15, 2015
@alubbe alubbe fixed being unable to use 'yield throw' e3f6e19
@michaelficarra michaelficarra Merge pull request #3853 from alubbe/fixyieldthrow
fixed being unable to use 'yield throw'
a4f5105
@alubbe alubbe added a lot of ES6 generator tests b362bd6
@michaelficarra michaelficarra Merge pull request #3852 from alubbe/moretests
added a lot of ES6 generator tests
7c8849c
Commits on Feb 17, 2015
@alubbe alubbe fixed overly fragile repl test to work with 0.12, see #3855 25d97aa
@jashkenas Merge pull request #3858 from alubbe/master
fixed overly fragile repl test to work with 0.12
fea058c
@alubbe alubbe fixed yield return producing incorrect output when used outside of th…
…e last line
feee695
@alubbe alubbe improved yield return test b6012c4
@jashkenas Merge pull request #3854 from alubbe/fixyieldreturn
fixed yield return producing incorrect output when used outside of the last line
e4d8100
Commits on Feb 18, 2015
@lydell lydell Fix single-line heredocs starting with "undefined" 4503e27
@jashkenas Merge pull request #3861 from lydell/heredoc-undefined
Fix single-line heredocs starting with "undefined"
1961f06
@jashkenas CoffeeScript 1.9.1 533ad8a