Jussi Kalliokoski wrote:
It's a bit unclear to me how arrow functions react to semicolons, for
example:
var a = (c) => {
var b = 2;
b * c;
}
a(4);
To me, it seems like this should return undefined. After all, the last
statement in the function is empty.
Not by the grammar.
You would need a second ; after b * c; to spell the empty statement.
To actually return b * c, you should drop the semicolon:
var a = (c) => {
var b = 2;
b * c
}
a(4);
This would be consistent with, for example, Rust and would help avoid
annoying accidental returns (see [1] for discussion about this wrt
CoffeeScript).
That's a fine thing in languages like Rust without ASI, which also have
type-checking needs not in JS. JS has ASI and no type-checking, so no-go.
Cheers,
Jussi
[1] https://github.com/jashkenas/coffee-script/issues/2477
CoffeeScript has no way to avoid implicit return, but JS has 'function'
and always will.
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss