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