-
Notifications
You must be signed in to change notification settings - Fork 48
improvements
satyr edited this page Dec 24, 2010
·
22 revisions
$ git log -1 --format=oneline
33d2577fb52e371e5456d1543c0eaf51807fa7a4 CoffeeScript 1.0.0
$ ls -s extras/*.js
160 extras/coffee-script.js
$ cake loc
2347
$ cake bench
Lex 1466 ms (21054 tokens)
Rewrite 183 ms (23516 tokens)
Parse 180 ms
Compile 184 ms (127575 chars)
total 2013 ms
$ cd ../coco
$ git log -1 --format=oneline
1100c912d154851ec52fe702eb356920adb26b9b 0.2.0
$ ls -s extras/*.js
108 extras/coco.js*
$ coke loc
1975
$ coke bench
Lex 984 ms (18180 tokens)
Rewrite 117 ms (20858 tokens)
Parse 119 ms (19572 nodes)
Compile 161 ms (115470 chars)
TOTAL 1381 ms
Coco uses them more wisely than Coffee, making generated code cleaner and/or faster. $ coffee -bpe '[i for i in a]' var i; [ (function() { var _i, _len, _results; _results = []; for (_i = 0, _len = a.length; _i < _len; _i++) { i = a[_i]; _results.push(i); } return _results; })() ];
$ coco -bpe '[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 -bpe 'a < b() < c; d > e() > f'
var _ref, _ref2;
(a < (_ref = b()) && _ref < c);
(d > (_ref2 = e()) && _ref2 > f);
$ coco -bpe 'a < b() < c; d > e() > f'
var _ref;
a < (_ref = b()) && _ref < c;
d > (_ref = e()) && _ref > f;