Rationalizing ASI (was: simple shorter function syntax)

Mark S. Miller erights at google.com
Sun Jul 25 17:15:17 PDT 2010


On Sun, Jul 25, 2010 at 5:11 PM, Maciej Stachowiak <mjs at apple.com> wrote:

>
> On Jul 25, 2010, at 5:06 PM, Brendan Eich wrote:
>
> > On Jul 25, 2010, at 4:59 PM, Maciej Stachowiak wrote:
> >
> >> On Jul 25, 2010, at 11:36 AM, Brendan Eich wrote:
> >>
> >>>
> >>> Let's not go in circles. I claim:
> >>>
> >>> * The horses are long gone from the barn.
> >>> * The mistake is easy to overlook even for JS coders who do use
> semicolons.
> >>> * The trade-off of banning ASI rule 1 first bullet to reduce
> desensitization and eventually reduce the incidence of this kind of bug is
> not a clear win, vs. migration tax into Harmony and usability problems even
> writing fresh code.
> >>>
> >>> In order to reliably remove this hazard, we would need to ban
> statements from starting with '('. Perhaps we should consider doing so.
> >>
> >> Banning statements from starting with '(' would remove one of the
> easiest workarounds for the rules against statements starting with
> 'function' or statements starting with '{'.
> >
> > Yeah, that's too harsh -- you'd have to use an operator or assign to a
> dummy variable or declare an initialized binding.
> >
> > Mark's restricted production idea is on target, if we think it's worth
> doing.
>
> At least in C or C++, I've seen code like this:
>
>
> veryLongObjectName.someOtherVeryVeryLongObjectName.ridiculouslyLongFunctionName
>    (longArgument1, longArgument2, longArgument3, longArgument4,
> longArgument5);
>
> If I understand correctly, Mark's proposal would make that a syntax error
> in JavaScript. I'm not sure offhand if JavaScript programmers write in this
> style, or would find the loss annoying. Of course, you could always write
> this as a single very long line, or make sure that at least the open paren
> is on the first line, but programmers can be picky about questions of style
> like this.
>

Yes. Even in the absence of ASI issues, my inclination would be to put the
open parent at the end of the first line. YMMV.



>
> Regards,
> Maciej
>
>
>


-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20100725/98789dfe/attachment.html>


More information about the es-discuss mailing list