-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

Reply via email to