(x) => {foo: bar}
Domenic Denicola
d at domenic.me
Mon Jan 5 11:46:05 PST 2015
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:es-discuss-bounces at mozilla.org] 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
> <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
_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
More information about the es-discuss
mailing list