-1 for code-maintainability. i don’t see the benefits justifying the extra complexity and rules it adds to javascript style-guides and linters (and those who follow them).
> On Sep 26, 2017, at 3:27 AM, Alexander Jones <a...@weej.com> wrote: > > IIFEs start with a (. Putting line breaks before certain expressions can help > improve clarity. Your mind is made up but I have to protest. ASI *sucks*. And > the extra cognitive overhead it causes is utterly pointless. If you don’t > want to type them, why not program your editor to actually insert ; and a > linebreak at the same time when you want to terminate a statement? > > Many problems arise from parsing ambiguities — when writing code authors know > exactly what they intend, why make future readers second guess? > > On Fri, 15 Sep 2017 at 11:12, Reinis Ivanovs <da...@untu.ms > <mailto:da...@untu.ms>> wrote: > The "some examples" of ASI problems might as well say "all", since there > aren't more than the two listed cases worth mentioning, and even the `return` > one is kind of contrived, because putting line breaks after `return` isn't > usually a thing. It also doesn't follow that ASI would be a "bad idea"; > remembering not to start lines with brackets or parens is easy (especially > with a linter, which people should be using anyway), and the benefit is less > visually noisy code and a bit less typing. The same can't be said for comma > insertion, because commas aren't as noticable or often used as semicolons, > and the syntax would have more 'gotchas' than with ASI, so it's just not > worth it. > > On Wed, Sep 13, 2017 at 6:22 PM, Boris Zbarsky <bzbar...@mit.edu > <mailto:bzbar...@mit.edu>> 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 > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org <mailto:es-discuss@mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss