What do you think the chances of this are in ES7+? That is, how 
backward-compatible is this change? The linked strawman doesn't seem to touch 
on `() => { foo: bar }` as a back-compat hazard. Do you feel hopeful?

-----Original Message-----
From: es-discuss [mailto:[email protected]] On Behalf Of Brendan 
Eich
Sent: Monday, January 5, 2015 14:41
To: Calvin Metcalf
Cc: es-discuss
Subject: Re: (x) => {foo: bar}

See

http://wiki.ecmascript.org/doku.php?id=strawman:block_vs_object_literal

This could be done, but not for ES6. Sorry I didn't push this harder, earlier.

/be

Calvin Metcalf wrote:
> this seems like a footgun and has tripped people up in the wild
> https://twitter.com/jankrems/status/544645776518184960
>
> On Mon Jan 05 2015 at 2:05:52 PM Caitlin Potter 
> <[email protected] <mailto:[email protected]>> wrote:
>
>     > In the implementations I checked, this is actually allowed, but
>     it's parsed as a label instead of what you may expect at first
>     glance (an object).
>
>     For it to be a concise body, you need to change it to `let f = (x)
>     => ({foo: bar});`. Otherwise, it's like a regular function body.
>
>     On Mon, Jan 5, 2015 at 2:02 PM, Frankie Bagnardi
>     <[email protected] <mailto:[email protected]>> wrote:
>
>         let f = (x) => {foo: bar};
>
>         In the implementations I checked, this is actually allowed,
>         but it's parsed as a label instead of what you may expect at
>         first glance (an object).
>
>         Is there any reason this is allowed?  If there's no reason
>         other than to match function(){}, this should be a syntax
>         error, in my opinion.
>
>         A potentially easier and wider reaching solution here would be
>         to restrict labels in strict mode to demand a possible
>         break/continue, else it's a syntax error.  The only area I'd
>         be concerned about compatibility is low level generated
>         JavaScript.
>
>         Thoughts?
>
>         _______________________________________________
>         es-discuss mailing list
>         [email protected] <mailto:[email protected]>
>         https://mail.mozilla.org/listinfo/es-discuss
>
>
>     _______________________________________________
>     es-discuss mailing list
>     [email protected] <mailto:[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
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to