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]>
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]>
> 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]
>> 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