(x) => {foo: bar}
Calvin Metcalf
calvin.metcalf at gmail.com
Mon Jan 5 11:14:47 PST 2015
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>
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>
> 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
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150105/b8c04981/attachment.html>
More information about the es-discuss
mailing list