(x) => {foo: bar}

Brendan Eich brendan at mozilla.org
Mon Jan 5 11:40:33 PST 2015


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 
> <caitpotter88 at gmail.com <mailto:caitpotter88 at gmail.com>> 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
>     <f.bagnardi at gmail.com <mailto:f.bagnardi at gmail.com>> 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
>         es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
>         https://mail.mozilla.org/listinfo/es-discuss
>
>
>     _______________________________________________
>     es-discuss mailing list
>     es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
>     https://mail.mozilla.org/listinfo/es-discuss
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list