Permalink
...
Comparing changes
Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
jashkenas/coffeescript
CDR2003/coffee-script-lua
CreamCoderz/coffee-script
Crylock/coffee-script
GeoffreyBooth/coffeescript
Gregg/coffee-script
JulianBirch/coffee-script-1
JustinTulloss/coffee-script
MichaelBlume/coffee-script
NightMigera/coffeescript
PandaWood/coffee-script
ProximaMonkey/coffee-script
Remcoman/coffee-script
RicardoSaracino/coffee-script
SE7ENSKY/matescript
STRd6/coffee-script
ShawnFumo/coffee-script
StanAngeloff/coffee-script
Xepo/coffee-script
abi/coffee-script
agnoster/coffee-script
ahjohannessen/coffee-script
akiellor/coffee-script
alanning/coffee-script
allanberger/coffee-script
almost/coffee-script
alubbe/coffee-script
andrehjr/coffee-script
andrewschaaf/coffee-script
andreypopp/coffee-script
apanda/coffee-script
baoshitang/coffee-script
barberboy/coffee-script
benatkin/coffee-script
benbria/coffee-script
benekastah/coffee-script
bjouhier/coffee-script
blahutka/coffee-script
blossom/coffee-script
bolinfest/coffee-script
breckinloggins/coffee-script
carmelyne/contracts.coffee
chajath/coffee-script
charles-cai/coffee-script
charliesome/coffee-script
chetan51/coffee-script
chip/coffee-script
codelahoma/coffee-script
coffee-js/coffee-script
coffee-void/coffeescript
collin/coffee-script
danemorgridge/coffee-script
daveclarke/coffee-script
daveyoon/coffee-script
dbrans/coffee-script
deadprogram/coffee-script
devongovett/coffee-script
dget/coffee-script
disnet/contracts.coffee
dmohl/coffee-script
dohse/coffee-script
dqminh/coffee-script
drewlesueur/coffee-script
eventualbuddha/coffee-script
evilpie/coffee-script
excellentdrums/coffee-script
fitzgen/coffee-script
fizx/coffee-script
geraldalewis/coffee-script
germanocaldeira/coffee-script
gfodor/coffee-script
ghuntley/coffee-script
goodwink/coffee-script
gxela/coffee-script
hayeah/coffee-script
hbt/coffee-script
helixbass/copheescript
hleumas/coffee-script
holtwick/moccacino
hugs/coffee-script
ianthehenry/protoscript
ich/caffeine
janlelis/angular-coffee-script
jaredwy/coffee-script
jasonyandell/coffee-script
jawj/coffee-script
jbca/coffeescript
jiangmiao/toffee-script
jlstr/coffee-script
joelturnbull/coffee-script
johnsang/coffee-script
joliss/coffee-script
jondistad/coffee-script
joshprice/coffee-script
jstrachan/coffee-script
jugglinmike/irene-script
juilyoon/coffee-script
keichii/coffee-script
keithnorm/coffee-script
kewinwang/coffee-script
khaled/coffee-script
leeight/coffee-script
level1/coffee-script
lfendy/coffee-script
loganfsmyth/coffee-script
loopinfinito/coffeescript.com.br
lorensr/coffee-script
loveencounterflow/coffy-script
lukhnos/doubleshot
lynaghk/coffee-script
martco/coffee-script
maxtaco/coffee-script
mbbx6spp/coffee-script
mblinn/coffee-script
mehmeta/coffee-script
melcher/coffee-script
mental/coffee-script
mhart/coffee-script
michaelficarra/coffee-script
misfo/coffee-script
mizchi/coffee-script
mlinderm/coffee-script
mrlauer/coffee-script-monads
muratmeran/coffee-script
myang/coffee-script
nanqiu/coffee-script
neobine/coffee-script
netconstructor/coffee-script
nickjs/coffee-script
nihar/coffee-script
onilabs/coffee-script
paiq/blackcoffee
parkerl/coffee-script
paulmars/coffee-script
peick/coffee-script
pjaspers/coffee-script
plambert/coffee-script
poutyface/coffee-script
pschyska/coffee-script
ptoomey3/coffee-script
quangv/coffee-script
revence27/coffee-script
rkJun/coffee-script
robarondaz/coffee-script
robotlolita/coffee-script
rolftimmermans/coffee-script
rpl/coffee-script
runeb/coffee-script
rwaldron/coffee-script
rymohr/coffee-script
ryszard/coffee-script
samcday/coffee-script
sarang25491/coffee-script
satyr/coffee-script
seedjs/coffee-script
sequoiar/coffee-script
sgraham/coffee-script
shariefsk/coffee-script
shesek/coffee-script
shimaore/cake
siefkenj/gjscoffee-script
smhanov/coffee-script
soutaro/coffee-script
spaghetticode/coffee-script
sparecycles/coffee-script
spencerelliott/coffee-script
sstephenson/coffee-script
stephank/coffee-script
strangemonad/coffee-script
swistak/coffee-script
syg/heap.coffee
taku0/coffee-script
tanob/coffee-script
tglines/coffee-script
thdtjsdn/coffee-script
theIntuitionist/coffee-script
thedeeno/coffee-script
thejh/coffee-script
timruffles/coffee-script
tkpage/coffee-script
tlrobinson/coffee-script
tmishra/coffee-script
tobee/coffee-script
tomelam/coffee-script
tosh/coffee-script
tswicegood/coffee-script
ttilley/coffee-script
twilson63/coffee-script
up2u0609/coffee-script
vanviegen/coffee-script
vjpr/coffee-script
vol4ok/coffee-script
walski/coffee-script
wearefractal/yerbascript
willmoffat/coffee-script
xixixao/coffee-script
yihuang/coffee-script
zaach/coffee-script
zmthy/coffee-script
zot/coffee-script
Nothing to show
Choose a base branch
Choose a Head Repository
jashkenas/coffeescript
CDR2003/coffee-script-lua
CreamCoderz/coffee-script
Crylock/coffee-script
GeoffreyBooth/coffeescript
Gregg/coffee-script
JulianBirch/coffee-script-1
JustinTulloss/coffee-script
MichaelBlume/coffee-script
NightMigera/coffeescript
PandaWood/coffee-script
ProximaMonkey/coffee-script
Remcoman/coffee-script
RicardoSaracino/coffee-script
SE7ENSKY/matescript
STRd6/coffee-script
ShawnFumo/coffee-script
StanAngeloff/coffee-script
Xepo/coffee-script
abi/coffee-script
agnoster/coffee-script
ahjohannessen/coffee-script
akiellor/coffee-script
alanning/coffee-script
allanberger/coffee-script
almost/coffee-script
alubbe/coffee-script
andrehjr/coffee-script
andrewschaaf/coffee-script
andreypopp/coffee-script
apanda/coffee-script
baoshitang/coffee-script
barberboy/coffee-script
benatkin/coffee-script
benbria/coffee-script
benekastah/coffee-script
bjouhier/coffee-script
blahutka/coffee-script
blossom/coffee-script
bolinfest/coffee-script
breckinloggins/coffee-script
carmelyne/contracts.coffee
chajath/coffee-script
charles-cai/coffee-script
charliesome/coffee-script
chetan51/coffee-script
chip/coffee-script
codelahoma/coffee-script
coffee-js/coffee-script
coffee-void/coffeescript
collin/coffee-script
danemorgridge/coffee-script
daveclarke/coffee-script
daveyoon/coffee-script
dbrans/coffee-script
deadprogram/coffee-script
devongovett/coffee-script
dget/coffee-script
disnet/contracts.coffee
dmohl/coffee-script
dohse/coffee-script
dqminh/coffee-script
drewlesueur/coffee-script
eventualbuddha/coffee-script
evilpie/coffee-script
excellentdrums/coffee-script
fitzgen/coffee-script
fizx/coffee-script
geraldalewis/coffee-script
germanocaldeira/coffee-script
gfodor/coffee-script
ghuntley/coffee-script
goodwink/coffee-script
gxela/coffee-script
hayeah/coffee-script
hbt/coffee-script
helixbass/copheescript
hleumas/coffee-script
holtwick/moccacino
hugs/coffee-script
ianthehenry/protoscript
ich/caffeine
janlelis/angular-coffee-script
jaredwy/coffee-script
jasonyandell/coffee-script
jawj/coffee-script
jbca/coffeescript
jiangmiao/toffee-script
jlstr/coffee-script
joelturnbull/coffee-script
johnsang/coffee-script
joliss/coffee-script
jondistad/coffee-script
joshprice/coffee-script
jstrachan/coffee-script
jugglinmike/irene-script
juilyoon/coffee-script
keichii/coffee-script
keithnorm/coffee-script
kewinwang/coffee-script
khaled/coffee-script
leeight/coffee-script
level1/coffee-script
lfendy/coffee-script
loganfsmyth/coffee-script
loopinfinito/coffeescript.com.br
lorensr/coffee-script
loveencounterflow/coffy-script
lukhnos/doubleshot
lynaghk/coffee-script
martco/coffee-script
maxtaco/coffee-script
mbbx6spp/coffee-script
mblinn/coffee-script
mehmeta/coffee-script
melcher/coffee-script
mental/coffee-script
mhart/coffee-script
michaelficarra/coffee-script
misfo/coffee-script
mizchi/coffee-script
mlinderm/coffee-script
mrlauer/coffee-script-monads
muratmeran/coffee-script
myang/coffee-script
nanqiu/coffee-script
neobine/coffee-script
netconstructor/coffee-script
nickjs/coffee-script
nihar/coffee-script
onilabs/coffee-script
paiq/blackcoffee
parkerl/coffee-script
paulmars/coffee-script
peick/coffee-script
pjaspers/coffee-script
plambert/coffee-script
poutyface/coffee-script
pschyska/coffee-script
ptoomey3/coffee-script
quangv/coffee-script
revence27/coffee-script
rkJun/coffee-script
robarondaz/coffee-script
robotlolita/coffee-script
rolftimmermans/coffee-script
rpl/coffee-script
runeb/coffee-script
rwaldron/coffee-script
rymohr/coffee-script
ryszard/coffee-script
samcday/coffee-script
sarang25491/coffee-script
satyr/coffee-script
seedjs/coffee-script
sequoiar/coffee-script
sgraham/coffee-script
shariefsk/coffee-script
shesek/coffee-script
shimaore/cake
siefkenj/gjscoffee-script
smhanov/coffee-script
soutaro/coffee-script
spaghetticode/coffee-script
sparecycles/coffee-script
spencerelliott/coffee-script
sstephenson/coffee-script
stephank/coffee-script
strangemonad/coffee-script
swistak/coffee-script
syg/heap.coffee
taku0/coffee-script
tanob/coffee-script
tglines/coffee-script
thdtjsdn/coffee-script
theIntuitionist/coffee-script
thedeeno/coffee-script
thejh/coffee-script
timruffles/coffee-script
tkpage/coffee-script
tlrobinson/coffee-script
tmishra/coffee-script
tobee/coffee-script
tomelam/coffee-script
tosh/coffee-script
tswicegood/coffee-script
ttilley/coffee-script
twilson63/coffee-script
up2u0609/coffee-script
vanviegen/coffee-script
vjpr/coffee-script
vol4ok/coffee-script
walski/coffee-script
wearefractal/yerbascript
willmoffat/coffee-script
xixixao/coffee-script
yihuang/coffee-script
zaach/coffee-script
zmthy/coffee-script
zot/coffee-script
Nothing to show
Choose a head branch
3
contributors
Commits on Feb 22, 2010
Commits on Feb 23, 2010
Commits on Feb 24, 2010
Unified
Split
Showing
with
426 additions
and 256 deletions.
- +1 −1 Cakefile
- +1 −1 bin/cake
- +1 −1 bin/coffee
- +8 −2 documentation/css/docs.css
- +49 −17 documentation/index.html.erb
- +2 −2 documentation/js/range_comprehensions.js
- +1 −1 documentation/js/soaks.js
- +1 −1 examples/blocks.coffee
- +54 −22 index.html
- +1 −1 lib/cake.js
- +1 −1 lib/coffee-script.js
- +2 −2 lib/command_line.js
- +16 −9 lib/grammar.js
- +11 −5 lib/lexer.js
- +48 −31 lib/nodes.js
- +71 −65 lib/parser.js
- +3 −3 lib/rewriter.js
- +1 −1 package.json
- +1 −1 src/coffee-script.coffee
- +3 −3 src/command_line.coffee
- +13 −11 src/grammar.coffee
- +11 −3 src/lexer.coffee
- +38 −28 src/nodes.coffee
- +3 −2 src/rewriter.coffee
- +11 −0 test/test_existence.coffee
- +0 −6 test/test_literals.coffee
- +21 −0 test/test_switch.coffee
- +9 −7 test/test_while.coffee
- +3 −3 vendor/jison/lib/jison.js
- +3 −0 vendor/jison/lib/jison/lexer.js
- +6 −13 vendor/jison/lib/jison/util/bnf-parser.js
- +6 −13 vendor/jison/lib/jison/util/lex-parser.js
- +12 −0 vendor/jison/tests/lexer/regexplexer.js
- +14 −0 vendor/jison/tests/parser/lalr.js
View
2
Cakefile
| @@ -30,7 +30,7 @@ task 'build:parser', 'rebuild the Jison parser (run build first)', -> | ||
| task 'build:ultraviolet', 'build and install the Ultraviolet syntax highlighter', -> | ||
| - exec('plist2syntax extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage').addCallback -> | ||
| + exec 'plist2syntax extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage', (err) -> | ||
| exec 'sudo mv coffeescript.yaml /usr/local/lib/ruby/gems/1.8/gems/ultraviolet-0.10.2/syntax/coffeescript.syntax' | ||
View
2
bin/cake
| @@ -2,6 +2,6 @@ | ||
| process.mixin(require('sys')); | ||
| -require.paths.unshift('./lib'); | ||
| +require.paths.unshift(__dirname + '/../lib'); | ||
| require('cake').run(); | ||
View
2
bin/coffee
| @@ -2,6 +2,6 @@ | ||
| process.mixin(require('sys')); | ||
| -require.paths.unshift('./lib'); | ||
| +require.paths.unshift(__dirname + '/../lib'); | ||
| require('command_line').run(); | ||
View
10
documentation/css/docs.css
| @@ -63,6 +63,11 @@ code, pre, tt, textarea { | ||
| padding: 3px 0 3px 12px; | ||
| font-size: 12px; | ||
| } | ||
| + pre.no_bar { | ||
| + border-left: 0; | ||
| + margin-left: 0; | ||
| + padding-left: 0; | ||
| + } | ||
| div.code { | ||
| position: relative; | ||
| border: 1px solid #cacaca; | ||
| @@ -130,7 +135,8 @@ div.code { | ||
| .navigation.try { | ||
| border-left: 0; | ||
| } | ||
| - .navigation:hover { | ||
| + .navigation:hover, | ||
| + .navigation.active { | ||
| background: #d0d0d0; | ||
| background: -webkit-gradient(linear, left top, left bottom, from(#f0f0f0), to(#c0c0c0)); | ||
| background: -moz-linear-gradient(top, #f0f0f0, #c0c0c0); | ||
| @@ -147,7 +153,7 @@ div.code { | ||
| -webkit-border-top-right-radius: 0; -moz-border-radius-topright: 0; | ||
| -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777; | ||
| } | ||
| - .navigation:hover .contents { | ||
| + .navigation.active .contents { | ||
| display: block; | ||
| } | ||
| .navigation .contents.repl_wrapper { | ||
View
66
documentation/index.html.erb
| @@ -107,7 +107,7 @@ alert reverse '!tpircseeffoC'</textarea> | ||
| <p> | ||
| <b>Latest Version:</b> | ||
| - <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.0">0.5.0</a> | ||
| + <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.1">0.5.1</a> | ||
| </p> | ||
| <h2> | ||
| @@ -138,18 +138,21 @@ alert reverse '!tpircseeffoC'</textarea> | ||
| </h2> | ||
| <p> | ||
| - The CoffeeScript compiler is written in pure CoffeeScript, and is available | ||
| + The CoffeeScript compiler is written in pure CoffeeScript, using a | ||
| + <a href="http://github.com/jashkenas/coffee-script/blob/master/src/grammar.coffee">small DSL</a> | ||
| + on top of the <a href="http://github.com/zaach/jison">Jison parser generator</a>, and is available | ||
| as a <a href="http://nodejs.org/">Node.js</a> utility. The core compiler however, | ||
| does not depend on Node, and can be run in other server-side-JavaScript environments, | ||
| - or in the browser (see "Try CoffeeScript", above). | ||
| + or in the browser (see "Try CoffeeScript", above). This may be helpful, | ||
| + as Node only run on flavors of nix, and not Windows, for the time being. | ||
| </p> | ||
| <p> | ||
| - To install, first make sure you have a working version of | ||
| + To install, first make sure you have a working version of | ||
| <a href="http://nodejs.org/">Node.js</a>, 0.1.30 or higher. Then clone the CoffeeScript | ||
| <a href="http://github.com/jashkenas/coffee-script">source repository</a> | ||
| from GitHub, or download the latest | ||
| - release: <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.0">0.5.0</a>. | ||
| + release: <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.1">0.5.1</a>. | ||
| To install the CoffeeScript compiler system-wide | ||
| under <tt>/usr/local</tt>, open the directory and run: | ||
| </p> | ||
| @@ -237,14 +240,14 @@ sudo bin/cake install</pre> | ||
| <td> | ||
| Instead of compiling the CoffeeScript, just lex and parse it, and print | ||
| out the parse tree: | ||
| -<pre> | ||
| - Expressions | ||
| - Assign | ||
| - Value "square" | ||
| - Code "x" | ||
| - Op * | ||
| - Value "x" | ||
| - Value "x"</pre> | ||
| +<pre class="no_bar"> | ||
| +Expressions | ||
| + Assign | ||
| + Value "square" | ||
| + Code "x" | ||
| + Op * | ||
| + Value "x" | ||
| + Value "x"</pre> | ||
| </td> | ||
| </tr> | ||
| </table> | ||
| @@ -743,6 +746,14 @@ coffee --print app/scripts/*.coffee > concatenation.js</pre> | ||
| </h2> | ||
| <p> | ||
| + <b class="header" style="margin-top: 20px;">0.5.1</b> | ||
| + Improvements to null soaking with the existential operator, including | ||
| + soaks on indexed properties. Added conditions to <tt>while</tt> loops, | ||
| + so you can use them as filters with <tt>when</tt>, in the same manner as | ||
| + comprehensions. | ||
| + </p> | ||
| + | ||
| + <p> | ||
| <b class="header" style="margin-top: 20px;">0.5.0</b> | ||
| CoffeeScript 0.5.0 is a major release, While there are no language changes, | ||
| the Ruby compiler has been removed in favor of a self-hosting | ||
| @@ -911,24 +922,45 @@ coffee --print app/scripts/*.coffee > concatenation.js</pre> | ||
| <script type="text/javascript" src="lib/nodes.js"></script> | ||
| <script type="text/javascript" src="lib/coffee-script.js"></script> | ||
| + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> | ||
| + | ||
| <script type="text/javascript"> | ||
| window.repl_compile = function() { | ||
| - var source = document.getElementById('repl_source').value; | ||
| + var source = $('#repl_source').val(); | ||
| window.compiled_js = ''; | ||
| try { | ||
| window.compiled_js = CoffeeScript.compile(source, {no_wrap: true}); | ||
| } catch(error) { | ||
| alert(error); | ||
| } | ||
| - document.getElementById('repl_results').innerHTML = window.compiled_js; | ||
| - } | ||
| + $('#repl_results').html(window.compiled_js); | ||
| + }; | ||
| window.repl_run = function() { | ||
| try { | ||
| eval(window.compiled_js); | ||
| } catch(error) { | ||
| alert(error); | ||
| } | ||
| - } | ||
| + }; | ||
| + | ||
| + var nav = $('.navigation'); | ||
| + var currentNav = null; | ||
| + var closeMenus = function() { | ||
| + if (currentNav) currentNav.removeClass('active'); | ||
| + currentNav = null; | ||
| + }; | ||
| + nav.click(function(e) { | ||
| + if (e.target.tagName.toLowerCase() == 'a') return; | ||
| + if (this !== (currentNav && currentNav[0])) { | ||
| + closeMenus(); | ||
| + currentNav = $(this); | ||
| + currentNav.addClass('active'); | ||
| + } | ||
| + return false; | ||
| + }); | ||
| + $(document.body).click(function() { | ||
| + closeMenus(); | ||
| + }); | ||
| </script> | ||
| </body> | ||
View
4
documentation/js/range_comprehensions.js
| @@ -2,15 +2,15 @@ | ||
| var _a, _b, _c, _d, _e, countdown, egg_delivery, num; | ||
| countdown = (function() { | ||
| _a = []; _d = 10; _e = 1; | ||
| - for (_c=0, num=_d; (_d <= _e ? num <= _e : num >= _e); (_d <= _e ? num += 1 : num -= 1), _c++) { | ||
| + for (_c = 0, num=_d; (_d <= _e ? num <= _e : num >= _e); (_d <= _e ? num += 1 : num -= 1), _c++) { | ||
| _a.push(num); | ||
| } | ||
| return _a; | ||
| }).call(this); | ||
| egg_delivery = function egg_delivery() { | ||
| var _f, _g, _h, _i, _j, dozen_eggs, i; | ||
| _f = []; _i = 0; _j = eggs.length; | ||
| - for (_h=0, i=_i; (_i <= _j ? i < _j : i > _j); (_i <= _j ? i += 12 : i -= 12), _h++) { | ||
| + for (_h = 0, i=_i; (_i <= _j ? i < _j : i > _j); (_i <= _j ? i += 12 : i -= 12), _h++) { | ||
| _f.push((function() { | ||
| dozen_eggs = eggs.slice(i, i + 12); | ||
| return deliver(new egg_carton(dozen)); | ||
View
2
documentation/js/soaks.js
| @@ -1,4 +1,4 @@ | ||
| (function(){ | ||
| var _a; | ||
| - (_a = lottery.draw_winner()) == null ? undefined : _a.address == null ? undefined : _a.address.zipcode; | ||
| + (_a = lottery.draw_winner()) == undefined ? undefined : _a.address == undefined ? undefined : _a.address.zipcode; | ||
| })(); |
View
2
examples/blocks.coffee
| @@ -8,7 +8,7 @@ get '/hello', -> | ||
| # Append. | ||
| append: (location, data) -> | ||
| path: new Pathname location | ||
| - throw "Location does not exist" unless path.exists() | ||
| + throw new Error("Location does not exist") unless path.exists() | ||
| File.open path, 'a', (file) -> | ||
| file.puts YAML.dump data | ||
View
76
index.html
| @@ -93,7 +93,7 @@ | ||
| <p> | ||
| <b>Latest Version:</b> | ||
| - <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.0">0.5.0</a> | ||
| + <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.1">0.5.1</a> | ||
| </p> | ||
| <h2> | ||
| @@ -235,18 +235,21 @@ | ||
| </h2> | ||
| <p> | ||
| - The CoffeeScript compiler is written in pure CoffeeScript, and is available | ||
| + The CoffeeScript compiler is written in pure CoffeeScript, using a | ||
| + <a href="http://github.com/jashkenas/coffee-script/blob/master/src/grammar.coffee">small DSL</a> | ||
| + on top of the <a href="http://github.com/zaach/jison">Jison parser generator</a>, and is available | ||
| as a <a href="http://nodejs.org/">Node.js</a> utility. The core compiler however, | ||
| does not depend on Node, and can be run in other server-side-JavaScript environments, | ||
| - or in the browser (see "Try CoffeeScript", above). | ||
| + or in the browser (see "Try CoffeeScript", above). This may be helpful, | ||
| + as Node only run on flavors of nix, and not Windows, for the time being. | ||
| </p> | ||
| <p> | ||
| - To install, first make sure you have a working version of | ||
| + To install, first make sure you have a working version of | ||
| <a href="http://nodejs.org/">Node.js</a>, 0.1.30 or higher. Then clone the CoffeeScript | ||
| <a href="http://github.com/jashkenas/coffee-script">source repository</a> | ||
| from GitHub, or download the latest | ||
| - release: <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.0">0.5.0</a>. | ||
| + release: <a href="http://github.com/jashkenas/coffee-script/tarball/0.5.1">0.5.1</a>. | ||
| To install the CoffeeScript compiler system-wide | ||
| under <tt>/usr/local</tt>, open the directory and run: | ||
| </p> | ||
| @@ -334,14 +337,14 @@ | ||
| <td> | ||
| Instead of compiling the CoffeeScript, just lex and parse it, and print | ||
| out the parse tree: | ||
| -<pre> | ||
| - Expressions | ||
| - Assign | ||
| - Value "square" | ||
| - Code "x" | ||
| - Op * | ||
| - Value "x" | ||
| - Value "x"</pre> | ||
| +<pre class="no_bar"> | ||
| +Expressions | ||
| + Assign | ||
| + Value "square" | ||
| + Code "x" | ||
| + Op * | ||
| + Value "x" | ||
| + Value "x"</pre> | ||
| </td> | ||
| </tr> | ||
| </table> | ||
| @@ -851,15 +854,15 @@ | ||
| </pre><pre class="idle"><span class="Storage">var</span> _a, _b, _c, _d, _e, countdown, egg_delivery, num; | ||
| countdown <span class="Keyword">=</span> (<span class="Storage">function</span>() { | ||
| _a <span class="Keyword">=</span> []; _d <span class="Keyword">=</span> <span class="Number">10</span>; _e <span class="Keyword">=</span> <span class="Number">1</span>; | ||
| - <span class="Keyword">for</span> (_c<span class="Keyword">=</span><span class="Number">0</span>, num<span class="Keyword">=</span>_d; (_d <span class="Keyword"><=</span> _e ? num <span class="Keyword"><=</span> _e : num <span class="Keyword">>=</span> _e); (_d <span class="Keyword"><=</span> _e ? num <span class="Keyword">+</span><span class="Keyword">=</span> <span class="Number">1</span> : num <span class="Keyword">-</span><span class="Keyword">=</span> <span class="Number">1</span>), _c<span class="Keyword">++</span>) { | ||
| + <span class="Keyword">for</span> (_c <span class="Keyword">=</span> <span class="Number">0</span>, num<span class="Keyword">=</span>_d; (_d <span class="Keyword"><=</span> _e ? num <span class="Keyword"><=</span> _e : num <span class="Keyword">>=</span> _e); (_d <span class="Keyword"><=</span> _e ? num <span class="Keyword">+</span><span class="Keyword">=</span> <span class="Number">1</span> : num <span class="Keyword">-</span><span class="Keyword">=</span> <span class="Number">1</span>), _c<span class="Keyword">++</span>) { | ||
| _a.<span class="LibraryFunction">push</span>(num); | ||
| } | ||
| <span class="Keyword">return</span> _a; | ||
| }).<span class="LibraryFunction">call</span>(<span class="Variable">this</span>); | ||
| egg_delivery <span class="Keyword">=</span> <span class="Storage">function</span> <span class="FunctionName">egg_delivery</span>() { | ||
| <span class="Storage">var</span> _f, _g, _h, _i, _j, dozen_eggs, i; | ||
| _f <span class="Keyword">=</span> []; _i <span class="Keyword">=</span> <span class="Number">0</span>; _j <span class="Keyword">=</span> eggs.<span class="LibraryConstant">length</span>; | ||
| - <span class="Keyword">for</span> (_h<span class="Keyword">=</span><span class="Number">0</span>, i<span class="Keyword">=</span>_i; (_i <span class="Keyword"><=</span> _j ? i <span class="Keyword"><</span> _j : i <span class="Keyword">></span> _j); (_i <span class="Keyword"><=</span> _j ? i <span class="Keyword">+</span><span class="Keyword">=</span> <span class="Number">12</span> : i <span class="Keyword">-</span><span class="Keyword">=</span> <span class="Number">12</span>), _h<span class="Keyword">++</span>) { | ||
| + <span class="Keyword">for</span> (_h <span class="Keyword">=</span> <span class="Number">0</span>, i<span class="Keyword">=</span>_i; (_i <span class="Keyword"><=</span> _j ? i <span class="Keyword"><</span> _j : i <span class="Keyword">></span> _j); (_i <span class="Keyword"><=</span> _j ? i <span class="Keyword">+</span><span class="Keyword">=</span> <span class="Number">12</span> : i <span class="Keyword">-</span><span class="Keyword">=</span> <span class="Number">12</span>), _h<span class="Keyword">++</span>) { | ||
| _f.<span class="LibraryFunction">push</span>((<span class="Storage">function</span>() { | ||
| dozen_eggs <span class="Keyword">=</span> eggs.<span class="LibraryFunction">slice</span>(i, i <span class="Keyword">+</span> <span class="Number">12</span>); | ||
| <span class="Keyword">return</span> deliver(<span class="Keyword">new</span> <span class="TypeName">egg_carton</span>(dozen)); | ||
| @@ -870,15 +873,15 @@ | ||
| </pre><button onclick='javascript: var _a, _b, _c, _d, _e, countdown, egg_delivery, num; | ||
| countdown = (function() { | ||
| _a = []; _d = 10; _e = 1; | ||
| - for (_c=0, num=_d; (_d <= _e ? num <= _e : num >= _e); (_d <= _e ? num += 1 : num -= 1), _c++) { | ||
| + for (_c = 0, num=_d; (_d <= _e ? num <= _e : num >= _e); (_d <= _e ? num += 1 : num -= 1), _c++) { | ||
| _a.push(num); | ||
| } | ||
| return _a; | ||
| }).call(this); | ||
| egg_delivery = function egg_delivery() { | ||
| var _f, _g, _h, _i, _j, dozen_eggs, i; | ||
| _f = []; _i = 0; _j = eggs.length; | ||
| - for (_h=0, i=_i; (_i <= _j ? i < _j : i > _j); (_i <= _j ? i += 12 : i -= 12), _h++) { | ||
| + for (_h = 0, i=_i; (_i <= _j ? i < _j : i > _j); (_i <= _j ? i += 12 : i -= 12), _h++) { | ||
| _f.push((function() { | ||
| dozen_eggs = eggs.slice(i, i + 12); | ||
| return deliver(new egg_carton(dozen)); | ||
| @@ -1131,7 +1134,7 @@ | ||
| </p> | ||
| <div class='code'><pre class="idle">lottery.draw_winner()<span class="Keyword">?</span>.address<span class="Keyword">?</span>.zipcode | ||
| </pre><pre class="idle"><span class="Storage">var</span> _a; | ||
| -(_a <span class="Keyword">=</span> lottery.draw_winner()) <span class="Keyword">==</span> <span class="BuiltInConstant">null</span> ? undefined : _a.address <span class="Keyword">==</span> <span class="BuiltInConstant">null</span> ? undefined : _a.address.zipcode; | ||
| +(_a <span class="Keyword">=</span> lottery.draw_winner()) <span class="Keyword">==</span> undefined ? undefined : _a.address <span class="Keyword">==</span> undefined ? undefined : _a.address.zipcode; | ||
| </pre><br class='clear' /></div> | ||
| <p> | ||
| Soaking up nulls is similar to Ruby's | ||
| @@ -1623,6 +1626,14 @@ | ||
| </h2> | ||
| <p> | ||
| + <b class="header" style="margin-top: 20px;">0.5.1</b> | ||
| + Improvements to null soaking with the existential operator, including | ||
| + soaks on indexed properties. Added conditions to <tt>while</tt> loops, | ||
| + so you can use them as filters with <tt>when</tt>, in the same manner as | ||
| + comprehensions. | ||
| + </p> | ||
| + | ||
| + <p> | ||
| <b class="header" style="margin-top: 20px;">0.5.0</b> | ||
| CoffeeScript 0.5.0 is a major release, While there are no language changes, | ||
| the Ruby compiler has been removed in favor of a self-hosting | ||
| @@ -1791,24 +1802,45 @@ | ||
| <script type="text/javascript" src="lib/nodes.js"></script> | ||
| <script type="text/javascript" src="lib/coffee-script.js"></script> | ||
| + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> | ||
| + | ||
| <script type="text/javascript"> | ||
| window.repl_compile = function() { | ||
| - var source = document.getElementById('repl_source').value; | ||
| + var source = $('#repl_source').val(); | ||
| window.compiled_js = ''; | ||
| try { | ||
| window.compiled_js = CoffeeScript.compile(source, {no_wrap: true}); | ||
| } catch(error) { | ||
| alert(error); | ||
| } | ||
| - document.getElementById('repl_results').innerHTML = window.compiled_js; | ||
| - } | ||
| + $('#repl_results').html(window.compiled_js); | ||
| + }; | ||
| window.repl_run = function() { | ||
| try { | ||
| eval(window.compiled_js); | ||
| } catch(error) { | ||
| alert(error); | ||
| } | ||
| - } | ||
| + }; | ||
| + | ||
| + var nav = $('.navigation'); | ||
| + var currentNav = null; | ||
| + var closeMenus = function() { | ||
| + if (currentNav) currentNav.removeClass('active'); | ||
| + currentNav = null; | ||
| + }; | ||
| + nav.click(function(e) { | ||
| + if (e.target.tagName.toLowerCase() == 'a') return; | ||
| + if (this !== (currentNav && currentNav[0])) { | ||
| + closeMenus(); | ||
| + currentNav = $(this); | ||
| + currentNav.addClass('active'); | ||
| + } | ||
| + return false; | ||
| + }); | ||
| + $(document.body).click(function() { | ||
| + closeMenus(); | ||
| + }); | ||
| </script> | ||
| </body> | ||
View
2
lib/cake.js
| @@ -38,7 +38,7 @@ | ||
| spaces = 20 - name.length; | ||
| spaces = spaces > 0 ? (function() { | ||
| _c = []; _f = 0; _g = spaces; | ||
| - for (_e=0, i=_f; (_f <= _g ? i <= _g : i >= _g); (_f <= _g ? i += 1 : i -= 1), _e++) { | ||
| + for (_e = 0, i=_f; (_f <= _g ? i <= _g : i >= _g); (_f <= _g ? i += 1 : i -= 1), _e++) { | ||
| _c.push(' '); | ||
| } | ||
| return _c; | ||
View
2
lib/coffee-script.js
| @@ -32,7 +32,7 @@ | ||
| return this.pos; | ||
| } | ||
| }; | ||
| - exports.VERSION = '0.5.0'; | ||
| + exports.VERSION = '0.5.1'; | ||
| // Compile CoffeeScript to JavaScript, using the Coffee/Jison compiler. | ||
| exports.compile = function compile(code, options) { | ||
| return (parser.parse(lexer.tokenize(code))).compile(options); | ||
Oops, something went wrong.
Showing you all comments on commits in this comparison.
|
I would think it should, but for some reason it doesn't in this case. Perhaps it's a JSLint oversight, or perhaps theres a reason. In any case, one of our big features (from a can-I-trust-this? perspective) is JSLint clean code, so... |