Make comma at the end of line optional (Naveen Chawla)

# Aluan Haddad (7 years ago)

I fail at mailing lists... please disregard.

On Sep 13, 2017 10:32 AM, <es-discuss-request at mozilla.org> wrote:

Send es-discuss mailing list submissions to es-discuss at mozilla.org

To subscribe or unsubscribe via the World Wide Web, visit mail.mozilla.org/listinfo/es-discuss or, via email, send a message with subject or body 'help' to es-discuss-request at mozilla.org

You can reach the person managing the list at es-discuss-owner at mozilla.org

When replying, please edit your Subject line so it is more specific than "Re: Contents of es-discuss digest..."

Today's Topics:

  1. Re: Make comma at the end of line optional (Naveen Chawla)
  2. Re: Lazy evaluation (Andrea Giammarchi)

---------- Forwarded message ---------- From: Naveen Chawla <naveen.chwl at gmail.com>

To: Boris Zbarsky <bzbarsky at mit.edu>, es-discuss at mozilla.org

Cc: Bcc: Date: Wed, 13 Sep 2017 13:57:01 +0000 Subject: Re: Make comma at the end of line optional I'm not really familiar with ASI but they key factor mentioned in this discussion is this (by Claude Pache):

*A implicit semicolon is not added when a declaration would be complete, but when the next token would produce a syntax error. *

By this behaviour (a modification to the initial "complete statement produces comma" version of this proposal), everything would work perfectly, no?

The multi-line get would not produce a comma, and hence the scheme is backwards compatible, right?

Please provide a counter-example if I have missed something.

As for the benefit, the time savings in not having to debug accidentally omitted commas and not having to add them in the first place are, I think, an improvement. And of course those who want to continue using commas everywhere, can:

function doStuff(
    x
    y
    z
){
}
const
   x = 5
   y = 6
   z = 7

Great to hear those counter-examples as I don't know enough about ASI, and the related subject, to picture the pitfalls (sorry for my ignorance on this). Also it would be good for reference on this proposal...

On Wed, 13 Sep 2017 at 18:40 Boris Zbarsky <bzbarsky at mit.edu> wrote:

On 9/13/17 9:05 AM, Naveen Chawla wrote:

Can someone remind me of the problem doing it this way, if any?

You mean apart from all the existing footguns ASI has?

-Boris


es-discuss mailing list es-discuss at mozilla.org, mail.mozilla.org/listinfo/es-discuss

---------- Forwarded message ---------- From: Andrea Giammarchi <andrea.giammarchi at gmail.com>

To: Alex Kodat <alexkodat at gmail.com>

Cc: "es-discuss at mozilla.org" <es-discuss at mozilla.org>

Bcc: Date: Wed, 13 Sep 2017 16:32:28 +0200 Subject: Re: Lazy evaluation

Maybe you mean "will behave more or less as if (except more efficiently)"?

no, I meant: it will transpiled into something using private WeakMaps.

I don't have any interest in talk nanoseconds for something unrelated to the topic though.

Best

# Aluan Haddad (7 years ago)

I can see an argument for this by analogy with class syntax but I for one would immediately go looking for a linter which raised errors for these omitted commas.

Furthermore, given the countless hours already wasted debating semicolon usage, and with the inherent complexity that this would add to tools like transpilers and minifiers, this would seem to add negative value.

# T.J. Crowder (7 years ago)

On Wed, Sep 13, 2017 at 3:52 PM, Aluan Haddad <aluanh at gmail.com> wrote:

...given the countless hours already wasted debating semicolon usage, and with the inherent complexity that this would add to tools like transpilers and minifiers, this would seem to add negative value.

^^ this. I've been trying to phrase it for a while now. Well put.

It's useful to remember that JavaScript engines are not the only consumers of JavaScript source code. Linters, transpilers, syntax highlighters, code introspection and refactoring tools, etc., etc., etc. -- they all have their cages rattled by syntax changes. The more complex the syntax (and this would have to be quite complex in a world of class fields, private data, etc.), the more the cages are rattled.

Humans, too, are consumers of JavaScript source code. We're clever, but adding to the cognitive load needs a good justification.

For me, the cost/benefit on this optional commas thing is just nowhere near a sell.

-- T.J. Crowder