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

