First, I agree that we should gather and examine data before making any
decisions. That said, here are my data-free reactions. I may well change my
mind about any of this once we have data to examine.


On Sat, Jul 24, 2010 at 11:16 PM, Mark S. Miller <erig...@google.com> wrote:

> Hi Brendan, I started to reply, but found it too confusing to talk about
> options #1, #2, and #3 and about ASI rules #1, #2, and #3. I'm resending
> your text edited with your options relabeled as #A, #B, and #C. I'll then
> reply to this edited version. I encourage others to do likewise.
>
>
> ---------- Forwarded message ----------
> From: Brendan Eich <bren...@mozilla.com>
> Date: Sat, Jul 24, 2010 at 10:28 PM
> Subject: Re: Rationalizing ASI (was: simple shorter function syntax)
> To: Maciej Stachowiak <m...@apple.com>, "Mark S. Miller" <
> erig...@google.com>
> Cc: es-discuss <es-discuss@mozilla.org>
>
>
> On Jul 24, 2010, at 3:38 PM, Maciej Stachowiak wrote:
>
> >> ASI has two parts: syntax error correction + restricted productions. The
> pain users feel from ASI in my experience is mostly not from the
> well-specified error correction part. It's mainly due to those infernal
> restricted productions, especially
> >>
> >> ReturnStatement:
> >>   return [no LineTerminator here] Expressionopt ;
> >
> > That's a good point. If we had a "disable ASI" mode, would it just insert
> syntax errors wherever a semicolon would have been inserted, or would it
> make statements that could be valid multiline statements but for ASI have
> their expected multiline meaning? The latter would remove more of the
> annoyance of ASI, but it wouldn't be a subset of the language. I could see
> an argument for either, or for no change.
>
> I see three tenable alternatives:
>
> A. Remove ASI in some opt-in version, in full -- no error correction, no
> restricted productions.
>

This seems best to me. I would have no objection to keeping the second
bullet of ASI rule #1. I may even advocate keeping it; I'm not sure yet.
However, the first bullet of rule #1 is a terrible hazard.


>
> B. Remove ASI's restricted productions in some opt-in version, but keep the
> error correction aspect of ASI (i.e., remove rule 3 of the three rules of
> ASI at ECMA-262 7.9.1).
>
> C. No change.
>

#B seems rather horrible to me. The restricted productions at least catch
some of the errors that ASI causes. I strongly prefer #C to #B.


>
> I don't see why you'd remove error correction but leave the restricted
> productions just to have a subset language.
>

Agreed. Once we remove the ASI hazards, we should also remove
the inconveniences which are no longer needed to avoid these hazards.



> We're adding new syntax to Harmony edition(s). Beyond this, the source of
> most ASI pain is the restricted productions. Error correction, especially
> via ASI rule 1 second bullet (inserting a ; before a }) is a win for
> usability.
>

I agree about the second bullet. I passionately disagree about the first
bullet. That first bullet is way more painful than the restricted
productions.


>
> I strongly suspect we'll stick with #C indefinitely, but I'm open to
> discussing #B briefly. Better than discussing would be some
> codesearch.google type study of a large swath of web JS, measuring how much
> would break under #B.
>

Yes! Data! Bring it on!


>
> /be
>
>
>


-- 
    Cheers,
    --MarkM
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to