CS2 Discussion: Project: Progress as of April 2017: 2.0.0-beta1! #80
Description
Hey everyone,
CoffeeScript 2.0.0-beta1 is released! Install it via: npm install coffeescript@next
Yes, coffeescript
, not coffee-script
. I hope to release the 2.x versions on coffee-script
once we determine that it’s safe to do so. More on that here.
Since the last update and the 2.0.0-alpha1 release, as of 2017-04-14 the following has been merged into the jashkenas/coffeescript 2
branch:
- Destructuring is now output using ES2015 syntax, thanks to @connec and @GeoffreyBooth.
- Literate CoffeeScript now parses Markdown much better, thanks to @GeoffreyBooth.
get
andset
keywords now throw an error, preserving the option of supporting them as keywords in the future; thanks to @GeoffreyBooth.- The v2 docs discuss our design decisions regarding
let
/const
andget
/set
, as well as address why CoffeeScript in an ES2015+ world, thanks to @mrmowgli and @GeoffreyBooth. - Several lexing bugs and one parsing bug were fixed by @helixbass and @GeoffreyBooth.
As of February, we had accomplished:
- Classes, including idiomatic output for both the
class
andsuper
keywords, thanks to @connec. - Redesigned docs for v2, thanks to @GeoffreyBooth.
- Refactored Cake tasks adding watch modes to building the compiler, thanks to @GeoffreyBooth.
As of December, we had accomplished:
- Tagged template literals, thanks to @greghuc.
- Interpolated strings are now output as template literals (ES backtick syntax), thanks to @greghuc.
- Triple-backtick operator and escaped backticks in embedded JavaScript, thanks to @GeoffreyBooth.
- The browser tests work again, thanks to @GeoffreyBooth.
And as of November, we had accomplished:
- Async/await, thanks to @GabrielRatener.
- Arrow functions, function default parameters and function rest parameters, thanks to @GeoffreyBooth.
- Splats in arrays and function calls are output using ES2015 syntax, thanks to @connec.
- Computed properties are output using ES2015 syntax, thanks to @connec.
- Octal and binary literals are output as-is, thanks to @JimPanic.
- CoffeeScript is stricter about whitespace thanks to @eelco, and Literate CoffeeScript now understands Markdown thanks to @billymoon.
- Support for ES2015
for…of
is implemented, thanks to @atg. - Bugs were fixed by @alangpierce, @shreeve, @JimPanic, @GeoffreyBooth and others. Also thanks for feedback from @lydell and @jashkenas.
This wraps up all the features we had planned to be in scope for CoffeeScript 2! Hence this is the first beta release. The plan from here to 2.0.0 is to fix any bugs that people find, and release 2.0.0 out of beta as soon as we feel confident that it is stable.
That doesn’t mean development needs to stop! There’s still time for new features, both before and after 2.0.0 is released; though if your new feature is a breaking change, it should come before. Foremost among the upcoming features in progress is destructuring object spreads.
Please try 2.0.0-beta1 in your projects! And let us know if you encounter any issues, after first reviewing the breaking changes. If you think there’s a bug, please open an issue with “[CS2]“ in the title. Please don’t comment bug reports on this thread. Thanks!