Brendan Eich wrote:
Matthew Robb wrote:
At one point I was under the impression that the following would
produce an implicit return method:
class x {
method(x) x+x
}
We dropped it. Maybe Rick can find the meeting notes -- I'm short on
time due to travel today. The problem is you must terminate with a ;
or else the expression body may continue into what the user intended
to be a subsequent property name, especially one of the form we
considered (but ultimately rejected for now):
class C {
method(x) x+x
[symbol]: 42
}
If there was no syntax error, then ASI does not apply.
Of course, the expression body "x+x[symbol]:42" does have a later syntax
error, on the ":" -- but that is confusing.
Also it could be with computed property names combined with concise
methods that you get "x+x[symbol](y)+y" (note unary "+" :-P).
It's a rabbit-hole we'd rather avoid.
/be
Now we could reckon that [computed-property-name] is "out", so we can
put expression body back "in" -- but the future-fragility if not
future-hostility stayed our hands from doing this. I think that's the
right call, still.
/be
On Wed, Jun 5, 2013 at 8:07 AM, Rick Waldron <[email protected]
<mailto:[email protected]>> wrote:
On Wed, Jun 5, 2013 at 10:56 AM, Matthew Robb
<[email protected] <mailto:[email protected]>> wrote:
Does a concise body method still return by default?
ArrowFunction offers implicit return in the unbraced form:
let two = () => 1 + 1;
two(); // 2
Whereas the braced form requires an explicit return, otherwise
returning the default undefined.
Rick
/snip
--
- Matthew Robb
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss