4304 Commits

Author SHA1 Message Date
Simon Lydell
89921c0667 Fix #4137: Caught errors named undefined
Previously, `catch`-less `try`s named the caught error `undefined`, instead of
`error` like usual.
2015-11-02 08:05:35 +01:00
Michael Ficarra
87a854afb4 Merge pull request #4131 from lydell/issue-4130
Fix #4130: Unassignable param destructuring crash
2015-10-22 10:14:39 -07:00
Simon Lydell
1dd5795960 Fix #4130: Unassignable param destructuring crash 2015-10-22 19:11:23 +02:00
Michael Ficarra
968f94f782 Merge pull request #4112 from lydell/renamed-destrucured-params-with-defaults
Fix compiler crash with renamed destrucured params with defaults
2015-10-03 15:33:14 -07:00
Simon Lydell
4b4675de30 Fix compiler crash with renamed destrucured params with defaults
`({a = 1}) ->` and `({a: b}) ->` worked, but not the combination of the two:
`({a: b = 1}) ->`. That destrucuring worked for normal assignments, though:
`{a: b = 1} = c`. This commit fixes the param case.
2015-09-27 15:54:44 +02:00
Jeremy Ashkenas
36e80d7f5c Merge pull request #4099 from lydell/yield-return
Only allow `yield return` as a statement
2015-09-17 12:41:17 -04:00
ven
2536bfd75c Merge pull request #4102 from casidiablo/patch-1
Fixed link to Groovy doc link
2015-09-17 17:43:31 +02:00
Cristian
4acafad07b Fixed link to Groovy doc link 2015-09-17 08:22:56 -07:00
Michael Ficarra
73b05a55b6 Merge pull request #4101 from mjhassanpur/fix-doc-typos
Fix documentation typos
2015-09-16 23:27:32 -07:00
mjhassanpur
de2db48474 Fix documentation typos 2015-09-16 21:24:53 -07:00
Simon Lydell
4ceb6a6818 Only allow yield return as a statement
Fixes #4097. Also happens to fix #4096. I also took the liberty to simplify the
error message for invalid use of `yield`.
2015-09-16 17:39:59 +02:00
Jeremy Ashkenas
d6ff91a454 Merge pull request #4095 from alubbe/standaloneyieldd
Add support for standalone yield
2015-09-14 10:55:39 -04:00
Jeremy Ashkenas
da23a2f702 Merge pull request #4093 from alubbe/betteryieldcompilation
Remove unnecessary brackets and empty spaces around yield
2015-09-14 10:54:35 -04:00
Jeremy Ashkenas
d1c6db476b Merge pull request #4094 from alubbe/removeuncaughterrorvars
Remove uncaught error vars
2015-09-14 10:54:07 -04:00
Andreas Lubbe
b1ef5a9996 Remove unnecessary brackets and empty spaces around yield
This removes unnecessary brackets and empty spaces around yield when not needed. We still need brackets for if(a === (yield)).
2015-09-13 13:11:10 +02:00
Andreas Lubbe
c1a9cfa044 Add support for standalone yield
This breaks compatibility with
->
  yield for i in [1..3]
    i * 2
and
->
  yield
    i * 2

yield's behaviour now mirrors that of return in that it can be used stand alone as well as with expressions. Thus, it currently also inherits the above limitations.
2015-09-13 12:30:59 +02:00
Andreas Lubbe
d3cff9082f Remove uncaught error vars 2015-09-13 12:27:07 +02:00
Jeremy Ashkenas
1739c9d720 Merge pull request #4089 from lydell/issue-4088
Fix #4088: Don't declare caught variables
2015-09-10 13:16:53 -04:00
Simon Lydell
75a4c01e17 Fix #4088: Don't declare caught variables 2015-09-10 18:59:01 +02:00
Michael Ficarra
8711da03a2 Merge pull request #4080 from lydell/single-newline-at-eof
Ensure that all source files end with a single `\n`
2015-09-03 20:57:39 -07:00
Jeremy Ashkenas
eb6baf2d9b Merge pull request #4083 from lydell/remove-unnecessary-files
Remove unnecessary .js files
2015-09-03 16:51:00 -04:00
Jeremy Ashkenas
d742a7dd1f Merge pull request #4082 from lydell/changelog-fix
Update date and fix formatting error in 1.10.0 changelog
2015-09-03 16:50:27 -04:00
Simon Lydell
ae65875c8b Remove unnecessary .js files
The example code in documentation/coffee/*.coffee accidentally had duplicate
compiled .js versions committed: Both as documentation/js/*.js and as
documentation/coffee/*.js.

The former is generated when running `cake doc:site`, while the latter has no
cake task to be generated. Removing the former and then re-compiling index.html
results in all the code examples being missing in the resulting HTML, while
removing the latter makes no difference.

In conclusion, documentation/coffee/*.js must be the unnecessary duplicates.
They are removed by this commit.
2015-09-03 22:15:45 +02:00
Simon Lydell
fcf5924dae Update date and fix formatting error in 1.10.0 changelog 2015-09-03 22:08:34 +02:00
Jeremy Ashkenas
f26d33d418 Merge pull request #4079 from lydell/v1.10.0
CoffeeScript 1.10.0
1.10.0
2015-09-03 15:45:13 -04:00
Simon Lydell
cea773ec81 CoffeeScript 1.10.0 2015-09-03 20:10:18 +02:00
Simon Lydell
6c6c8d48bf Ensure that all source files end with a single \n
This was done by first checking all files in the repository root by hand, and
then by doing the following:

    $ npm i get-stdin@4
    $ cat clean.coffee
    fs = require 'fs'
    stdin = require 'get-stdin'

    stdin (text) ->
      for file in text.trim().split('\n')
        contents = fs.readFileSync file
          .toString().replace /\s*$/, '\n'
        fs.writeFileSync file, contents
      return
    $ ls !(node_modules)/**/*.coffee | coffee clean.coffee
2015-09-03 19:20:12 +02:00
Jeremy Ashkenas
98dd1bf8e8 Merge pull request #4073 from lydell/issue-3926
Fix #3926: Disallow implicit objects as parameter destructuring
2015-09-01 15:03:29 -04:00
Jeremy Ashkenas
56d75baac7 Merge pull request #4075 from lydell/documentation-improvements
Documentation improvements
2015-09-01 13:16:55 -04:00
Simon Lydell
0872c3d13d Git rid of the deprecated <tt> tag in the docs
Replaced with `<code>` tags.
2015-08-30 12:41:47 +02:00
Simon Lydell
5095e02b62 Remove unnecessary blank lines at EOF in examples
On less wide screens, where the CoffeeScript is above the JavaScript, those
lines resulted in an unnecessarily high box of CoffeeScript code.
2015-08-30 12:41:47 +02:00
Simon Lydell
874628b1d0 Improve the documentation site on smaller screens
"Smaller screens" means screens smaller than 820px wide. That's the smallest
width that the current design looks good at.

I tried to not change the current design in any way and to make as few changes
as possible.

This is what happens on smaller screens:

- The navigation bar is no longer fixed to the viewport, but always at the top
  of the page.
- The navigation bar is vertical rather than horizontal.
- CoffeeScript code is above the compiled JavaScript rather than having them
  side by side.

This allows for a larger text size, which is more compfortable to read, and no
horizontal scrolling, which many find difficult to use.
2015-08-30 12:41:36 +02:00
Michael Ficarra
ff9d5117f9 Merge pull request #4074 from lydell/destructuring-defaults-docs
Document destructuring defaults
2015-08-29 10:33:44 -07:00
Simon Lydell
10aca2a38e Document destructuring defaults 2015-08-29 19:18:44 +02:00
Simon Lydell
2c4d437e98 Fix #3926: Disallow implicit objects as parameter destructuring 2015-08-28 23:11:47 +02:00
Jeremy Ashkenas
c0c13c1977 Merge pull request #4069 from lydell/destructuring-defaults
Implement ES2015-like destructuring defaults
2015-08-27 17:50:33 -04:00
Simon Lydell
6d9553a016 Implement ES2015-like destructuring defaults
This let's you do things like:

    fullName = ({first = 'John', last = 'Doe'}) -> "#{first} #{last}"

Note: CoffeeScrits treats `undefined` and `null` the same, and that's true in
the case of destructuring defaults as well, as opposed to ES2015 which only uses
the default value if the target is `undefined`. A similar ES2015 difference
already exists for function parameter defaults. It is important for CoffeeScript
to be consistent with itself.

    fullName2 = (first = 'John', last = 'Doe') -> "#{first} #{last}"
    assert fullName('Bob', null) is fullName2(first: 'Bob', last: null)

Fixes #1558, #3288 and #4005.
2015-08-27 22:16:13 +02:00
Jeremy Ashkenas
66716cd730 Merge pull request #4071 from lydell/lone-expansion
Fix #4070: Improve error message for lone expansion
2015-08-27 13:09:54 -04:00
Simon Lydell
f588ecb288 Fix #4070: Improve error message for lone expansion 2015-08-26 22:30:55 +02:00
Michael Ficarra
dc3e177811 Merge pull request #4068 from lydell/issue-1192
Fix #1192: Assignment starting with object literals
2015-08-22 07:24:23 -07:00
Simon Lydell
2eef667916 Fix #1192: Assignment starting with object literals 2015-08-22 16:21:35 +02:00
Jeremy Ashkenas
617a932e89 Merge pull request #4059 from BrunoBernardino/hotfix/4036-try-variable-improvement
Closes #4036: "Try catch" optimisation
2015-08-19 14:33:11 -04:00
Bruno Bernardino
beac56d4d5 Updated compile 2015-08-16 21:34:22 +01:00
Bruno Bernardino
cc98e99070 Removing unnecessary assignment 2015-08-16 21:33:58 +01:00
Bruno Bernardino
93e4eeafed Removing the unnecessary underscore now :) 2015-08-16 21:32:16 +01:00
Bruno Bernardino
efdc67241a Improved the tests and removed the hardcoded variable, according to suggestions. 2015-08-16 21:27:28 +01:00
Bruno Bernardino
24e8f1c98f Closes #4036: "Try catch" optimisation
Let me know if there's something I should be doing differently as this is my first contribution to coffeescript.
I fixed the reported issue where a generated variable could clash with a user-defined one in a try/catch block.
I added a test for a few scenarios with different variable names for a try/catch, to confirm the fix and avoid regressions.
2015-08-16 20:47:04 +01:00
Michael Ficarra
2d1a6fa6ec Merge pull request #4029 from yjerem/reset-seenfor
Reset @seenFor in lexer before tokenizing
2015-07-07 21:31:23 -07:00
Jeremy Ruten
3d7d68a766 Reset @seenFor in lexer before tokenizing 2015-07-07 22:23:26 -06:00
Michael Ficarra
342b395b0a Merge pull request #4019 from rvagg/master
Don't copy arguments or caller from require
2015-06-22 06:33:07 -07:00