Within the context of an array or object definition I could see implementing automatic commas between elements.... but not outside; think the thread is straying a little from the original post (const isn't available in either context). But only between completed expressions/function definitions. It wouldn't be horribly hard to option that into my json-6 parsing... just still don't really think I'm a fan anyway. (but that doesn't have to deal with get/set/function definitions).
On Wed, Sep 13, 2017 at 8:22 AM, Boris Zbarsky <[email protected]> wrote: > On 9/13/17 9:57 AM, Naveen Chawla wrote: > >> By this behaviour (a modification to the initial "complete statement >> produces comma" version of this proposal), everything would work perfectly, >> no? >> > > If by "perfectly" you mean "have hard-to-predict somewhat nonlocal > behavior that makes any code relying on this a hard-to-read footgun", then > the answer might be "yes". For pretty much any other definition of > "perfectly", I'm fairly sure the answer is "no". > > Great to hear those counter-examples as I don't know enough about ASI, >> > > Still in the context of ASI, here are some examples of why ASI is a bad > idea: > > 1) What does this return? > > function f() { > return > 5; > } > > 2) What does this alert? > > var str = "hello"; > var x = str > [x].forEach(() => alert(x)) > > Now back to automatic comma insertion... In your example: > > function doStuff( > x > y > z > ){ > } > > if someone changes doStuff to take an array as the second arg and you > modify the call as: > > function doStuff( > x > [y] > z > ){ > } > > suddenly you need to insert a comma after the "x" to preserve the right > semantics, no? This is not terribly intuitive or obvious. It gets even > worse in a situation like this: > > function doStuff( > x > /* The next argument is an array for good reasons that we > will now expound on in a long comment, etc, etc */ > [y] > ){ > } > > Quick, tell me without testing this or looking at the spec for a while > whether this is a valid call to doStuff, with one argument, or a syntax > error that would trigger comma insertion. > > But more generally, if you just use your favorite search engine on the > phrase "automatic semicolon insertion", you will get a slew of articles > explaining the pitfalls. > > > -Boris > _______________________________________________ > 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

