CoffeeScript

Software Screenshot:
CoffeeScript
Software Details:
Version: 1.9.3 updated
Upload Date: 4 Jun 15
Developer: Jeremy Ashkenas
Distribution Type: Freeware
Downloads: 42
Size: 866 Kb

Rating: nan/5 (Total Votes: 0)

The CoffeeScript compiler is written in pure CoffeeScript, using a small DSL on top of the Jison parser generator, and is available as a Node.js utility.

The core compiler however, does not depend on Node, and can be run in other server-side-JavaScript environments, or in the browser.

CoffeeScript uses Python-style significant whitespace, so line endings are regarded as code endings as well.

What is new in this release:

  • Fixed a watch mode error introduced in 1.9.1 when compiling multiple files with the same filename.
  • Bugfix for yield around expressions containing this.
  • Added a Ruby-style -r option to the REPL, which allows requiring a module before execution with --eval or --interactive.
  • In <script type="text/coffeescript"> tags, to avoid possible duplicate browser requests for .coffee files, you can now use the data-src attribute instead of src.
  • Minor bug fixes for IE8, strict ES5 regular expressions and Browserify.

What is new in version 1.9.2:

  • Fixed a watch mode error introduced in 1.9.1 when compiling multiple files with the same filename.
  • Bugfix for yield around expressions containing this.
  • Added a Ruby-style -r option to the REPL, which allows requiring a module before execution with --eval or --interactive.
  • In <script type="text/coffeescript"> tags, to avoid possible duplicate browser requests for .coffee files, you can now use the data-src attribute instead of src.
  • Minor bug fixes for IE8, strict ES5 regular expressions and Browserify.

What is new in version 1.9.1:

  • CoffeeScript now supports ES6 generators. A generator is simply a function that yields.
  • More robust parsing and improved error messages for strings and regexes - especially with respect to interpolation.
  • Changed strategy for the generation of internal compiler variable names.
  • Fixed REPL compatibility with latest versions of Node and Io.js.
  • Various minor bug fixes.

What is new in version 1.8.0:

  • The --join option of the CLI is now deprecated.
  • Source maps now use .js.map as file extension, instead of just .map.
  • The CLI now exits with the exit code 1 when it fails to write a file to disk.
  • The compiler no longer crashes on unterminated, single-quoted strings.
  • Fixed location data for string interpolations, which made source maps out of sync.
  • The error marker in error messages is now correctly positioned if the code is indented with tabs.
  • Fixed a slight formatting error in CoffeeScript's source map-patched stack traces.
  • The %% operator now coerces its right operand only once.
  • It is now possible to require CoffeeScript files from Cakefiles without having to register the compiler first.
  • The CoffeeScript REPL is now exported and can be required using require 'coffee-script/repl'.

What is new in version 1.7.0:

  • Improved error messages, source maps and stack traces. Source maps now use the updated //# syntax.
  • Leading . now closes all open calls, allowing for simpler chaining syntax.
  • Closing brackets can now be indented and therefore no longer cause unexpected error.
  • Added **, // and %% operators and ... expansion in parameter lists and destructuring expressions.
  • Formatting of compiled block comments has been improved.
  • No more -p folders on Windows.
  • The options object passed to CoffeeScript is no longer mutated.

What is new in version 1.6.3:

  • The CoffeeScript REPL now remembers your history between sessions. Just like a proper REPL should.
  • Can now use require in Node to load .coffee.md Literate CoffeeScript files. In the browser, text/literate-coffeescript script tags.
  • The old coffee --lint command has been removed. It was useful while originally working on the compiler, but has been surpassed by JSHint. You may now use -l to pass literate files in over stdio.

What is new in version 1.6.1:

  • Fixed a 1.5.0 regression with multiple implicit calls against an indented implicit object. Combinations of implicit function calls and implicit objects should generally be parsed better now - but it still isn't good style to nest them too heavily.
  • .coffee.md is now also supported as a Literate CoffeeScript file extension, for existing tooling. .litcoffee remains the canonical one.
  • Several minor fixes surrounding member properties, bound methods and super in class declarations.

What is new in version 1.5.0:

  • The CoffeeScript REPL is now based on the Node.js REPL, and should work better and more familiarly.
  • Returning explicit values from constructors is now forbidden. If you want to return an arbitrary value, use a function, not a constructor.
  • Can now loop over an array backwards, without having to manually deal with the indexes: for item in list by -1
  • Source locations are now preserved in the CoffeeScript AST, although source maps are not yet being emitted.

What is new in version 1.4.0:

  • The CoffeeScript compiler now strips Microsoft's UTF-8 BOM if it exists, allowing you to compile BOM-borked source files.
  • Fixed Node/compiler deprecation warnings by removing registerExtension, and moving from path.exists to fs.exists.
  • Small tweaks to splat compilation, backticks, slicing, and the error for duplicate keys in object literals.

What is new in version 1.3.2:

  • Inside of a nested function inside of an instance method, it's now possible to call super more reliably (walks recursively up).
  • Named loop variables no longer have different scoping heuristics than other local variables.
  • Fix for splats nested within the LHS of destructuring assignment.
  • Corrections to our compile time strict mode forbidding of octal literals.

What is new in version 1.3.1:

  • The REPL now has a handy new multi-line mode for entering large blocks of code. It's useful when copy-and-pasting examples into the REPL. Enter multi-line mode with Ctrl-V. You may also now pipe input directly into the REPL.
  • CoffeeScript now prints a Generated by CoffeeScript VERSION header at the top of each compiled file.
  • Conditional assignment of previously undefined variables a or= b is now considered a syntax error.
  • A tweak to the semantics of do, which can now be used to more easily simulate a namespace: do (x = 1, y = 2) -> ...
  • Loop indices are now mutable within a loop iteration, and immutable between them.
  • Both endpoints of a slice are now allowed to be omitted for consistency, effectively creating a shallow copy of the list.
  • Additional tweaks and improvments to coffee --watch under Node's "new" file watching API. Watch will now beep by default if you introduce a syntax error into a watched script. We also now ignore hidden directories by default when watching recursively.

What is new in version 1.2.0:

  • Multiple improvements to coffee --watch and --join. You may now use both together, as well as add and remove files and directories within a --watch'd folder.
  • The throw statement can now be used as part of an expression.
  • Block comments at the top of the file will now appear outside of the safety closure wrapper.
  • Fixed a number of minor 1.1.3 regressions having to do with trailing operators and unfinished lines, and a more major 1.1.3 regression that caused bound functions within bound class functions to have the incorrect this.

What is new in version 1.1.3:

  • CoffeeScript's compiled JS now tries to space things out and keep it readable, as you can see in the examples on this page.
  • Can now call super in class level methods in class bodies, and bound class methods now preserve their correct context.
  • JavaScript has always supported octal numbers 010 is 8, and hexadecimal numbers 0xf is 15, but CoffeeScript now also supports binary numbers: 0b10 is 2.
  • The CoffeeScript module has been nested under a subdirectory to make it easier to require individual components separately, without having to use npm. For example, after adding the CoffeeScript folder to your path: require('coffee-script/lexer')
  • There's a new "link" feature in Try CoffeeScript on this webpage. Use it to get a shareable permalink for your example script.
  • The coffee --watch feature now only works on Node.js 0.6.0 and higher, but now also works properly on Windows.

What is new in version 1.1.2:

  • CoffeeScript uses the native Function.prototype.bind for bound function literals where available.
  • Fixes for: block comment formatting, ?= compilation, implicit calls against control structures, implicit invocation of a try/catch block, variadic arguments leaking from local scope, line numbers in syntax errors following heregexes, property access on parenthesized number literals, bound class methods and super with reserved names, a REPL overhaul, consecutive compiled semicolons, block comments in implicitly called objects, and a Chrome bug.

What is new in version 1.1.1:

  • Bugfix release for classes with external constructor functions.

What is new in version 1.1.0:

  • When running via coffee executable, process.argv and friends now report coffee instead of node.
  • Better compatibility with Node.js 0.4.x module lookup changes.
  • The output in the REPL is now colorized, like Node's is.
  • Giving your concatenated CoffeeScripts a name when using --join is now mandatory.
  • Fix for lexing compound division /= as a regex accidentally.
  • All text/coffeescript tags should now execute in the order they're included.
  • Fixed an issue with extended subclasses using external constructor functions.
  • Fixed an edge-case infinite loop in addImplicitParentheses.
  • Fixed exponential slowdown with long chains of function calls.
  • Globals no longer leak into the CoffeeScript REPL.
  • Splatted parameters are declared local to the function.

What is new in version 1.0.1:

  • Fixed a lexer bug with Unicode identifiers.
  • Updated REPL for compatibility with Node.js 0.3.7.
  • Fixed requiring relative paths in the REPL.
  • Trailing return and return undefined are now optimized away.
  • Stopped requiring the core Node.js "util" module for back-compatibility with Node.js 0.2.5.
  • Fixed a case where a conditional return would cause fallthrough in a switch statement.
  • Optimized empty objects in destructuring assignment.

What is new in version 0.6.2:

  • The coffee command will now preserve directory structure when compiling a directory full of scripts. Fixed two omissions that were preventing the CoffeeScript compiler from running live within Internet Explorer. There's now a syntax for block comments, similar in spirit to CoffeeScript's heredocs. ECMA Harmony DRY-style pattern matching is now supported, where the name of the property is the same as the name of the value: {name, length}: func. Pattern matching is now allowed within comprehension variables. unless is now allowed in block form. until loops were added, as the inverse of while loops. switch statements are now allowed without switch object clauses. Compatible with Node.js v0.1.95.

Requirements:

  • Node.js 0.8.0 or higher

Similar Software

Lumbar
Lumbar

1 Mar 15

Jiphy
Jiphy

10 Feb 16

Myth
Myth

1 Oct 15

Opal
Opal

10 Feb 16

Other Software of Developer Jeremy Ashkenas

Comments to CoffeeScript

Comments not found
Add Comment
Turn on images!