-
Notifications
You must be signed in to change notification settings - Fork 48
incompatibilities
superjoe30 edited this page Oct 4, 2012
·
25 revisions
-
=
to a variable declares it on the current scope. Use:=
to modify ones on upper scopes. -
===
/!==
/==
/!=
each compiles as is. -
super
represents the direct reference to the parent function rather than being a call itself. Usesuper ...
(justsuper
in Coffee) for full delegation. - Nested comprehensions return flattened results.
- Within non-triple-quoted strings (
''
/""
), indentations after newlines are ignored altogether. -
do
does not specialcase function literals. Uselet
instead. -
\
does not introduce a pseudo block. It simply cancels following whitespaces.
- The roles of
in
andof
have been swapped to keep the JS semantics. -
yes/no/on/off are unreserved. Define your own or just use
true
/false
. -
switch
-case
-default
replacesswitch
-when-else
. -
for ever
replaces loop. -
is not
replaces isnt. -
void
replaces undefined. -
~>
(wavy arrow) replaces => (fat arrow). -
when is removed. Use
a if b while c
instead of a while c when b. -
it
/that
/fallthrough
are semi-reserved. They get special meanings depending on context. -
eval
/arguments
are keywords as per ES5.
-
()
is always a call; allowingf ()
, disallowing() ->
. -
...
is prefix as per harmony:spread. -
and
/or
and spaced.
/?.
close implicit calls.f a .g b or h c
meansf(a).g(b) || h(c)
. - The range syntax (x..y) is removed.
- Block comment is
/* */
rather than ### ###. - Heregex is
// //
rather than /// ///. - No implicit call against blocks starting with an implicit object. Use
do
instead:array.push do a: 1 b: 2
-
a-b
desugars toaB
instead ofa - b
-
"#variable" === '' + variable
instead of"#variable" === '#variable'
- CLIs are named coco and coke (to coexist with coffee and cake).
- JavaScriptLint support is removed (for being pointless).