-
Notifications
You must be signed in to change notification settings - Fork 48
improvements
$ git log -1 --oneline 79492aa CoffeeScript 1.3.3 |
$ git log -1 --oneline dcff170 0.7.2 |
Coco uses them more wisely than Coffee, making generated code cleaner and/or faster.
$ coffee -bce '[i for i in a]' // Generated by CoffeeScript 1.3.3 var i; |
$ coco -bce '[i for i of a]' var i; [(function(){ var __i, __ref, __len, __results = []; for (__i = 0, __len = (__ref = a).length; __i < __len; ++__i) { i = __ref[__i]; __results.push(i); } return __results; }())]; |
$ coffee -bce 'a > b() > c; d > e() > f' // Generated by CoffeeScript 1.3.3 var _ref, _ref1; |
$ coco -bce 'a > b() > c; d > e() > f' var __ref; a > (__ref = b()) && __ref > c; d > (__ref = e()) && __ref > f; |
$ coffee -bce 'r = for k of o then arguments' // Generated by CoffeeScript 1.3.3 var k, r; |
$ coco -bce 'r = for k in o then arguments' var k, r, __res, __i, __ref, __len; __res = []; for (__i = 0, __len = (__ref = o).length; __i < __len; ++__i) { k = __ref[__i]; __res.push(arguments); } r = __res; |
$ coffee -bce 'Math += 1'
// Generated by CoffeeScript 1.3.3
Math += 1;
$ coco -bce 'Math += 1'
SyntaxError: assignment to undeclared variable "Math" on line 1
$ coffee -bce '{0, "0"}'
// Generated by CoffeeScript 1.3.3
({
0: 0,
"0": "0"
});
$ coco -bpe 'a:1, a:2'
SyntaxError: duplicate property "0" on line 1
$ coffee -bce 'x = (return)'
SyntaxError: cannot use a pure statement in an expression.
...
$ coco -bce 'x = (return)'
SyntaxError: inconvertible statement on line 1
...
$ cat space_tab.coffee
if 0
console.log 1
console.log 2
$ coffee space_tab.coffee
2
$ coco space_tab.coffee
Failed at: space_tab.coffee
SyntaxError: contaminated indent %09 on line 2
$ cat misdent.coffee
if 0
console.log 1
console.log 2
$ coffee misdent.coffee
2
$ coco misdent.coffee
Failed at: misdent.coffee
SyntaxError: unmatched dedent (2 for 4) on line 3
$ coffee -bce '[]()'
// Generated by CoffeeScript 1.3.3
[]();
$ coco -bce '[]()'
SyntaxError: invalid callee on line 1
$ coffee -bce '/+/'
// Generated by CoffeeScript 1.3.3
/+/;
$ coco -bce '/+/'
SyntaxError: Invalid regular expression: /+/: Nothing to repeat on line 1
$ coffee -bce '$= 1'
// Generated by CoffeeScript 1.3.3
var $;
$ = 1;
$ coco -bce '$= 1'
Error: Parse error on line 1: Unexpected '$'
$ node -e '$= 1'
undefined:1
^
SyntaxError: Unexpected token ILLEGAL
$ coffee -bce '0 instanceof 1'
// Generated by CoffeeScript 1.3.3
0 instanceof 1;
$ coco -bce '0 instanceof 1'
SyntaxError: invalid instanceof operand on line 1
$ node -e '0 instanceof 1'
undefined:1
^
TypeError: Expecting a function in instanceof check, but got 0
$ coffee -bce '{@foo}' // Generated by CoffeeScript 1.3.3 |
$ coco -bce '{@foo}; {this.foo}' ({ foo: this.foo }); ({ foo: this.foo }); |
$ coffee -bce 'f k: v, a + b' Error: Parse error on line 1: Unexpected '+' ... |
$ coco -bce 'f k: v, a + b' f({ k: v }, a + b); |
$ coffee -bcs f k: v a |
$ coco -bcs f do k: v a |
$ coffee -bcs if a then b else c |
$ coco -bcs if a then b else c |