The do-while one slipped my mind, sorry. I obviously knew about it in 2004, 
when we changed SpiderMonkey in pre-Firefox-1, also Narcissus.

One was of cross-checking is to look at Narcissus. We've been building it up to 
have a Harmony mode, adding ES5 support before that (still some missing), and 
running it on our test-suites. But I wrote Narcissus in 2004 based on ES3 plus 
only enough reality to self-host. So looking at how it differs from ES3, in all 
versions from 2004 up to today, could be helpful.

I just reviewed the Narcissus parser, and this do-while case is the only ASI 
variance noted. The other supported extensions to ES3 (get and set in object 
initialisers, catch guards) are disabled by an option: --ecma3-only).

/be

On Feb 8, 2011, at 2:01 PM, Mark S. Miller wrote:

> Does anyone know of any other syntax that all major JS engines accept that 
> are not in the official ES5.1 grammar?
> 
> Does anyone know of any places on the web attempting to accumulate such 
> exceptions?
> 
> The other one I know of is nested named function declarations 
> <http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls>.
>  And there was an ASI mis-description for "break" and "continue" that was 
> corrected between ES5 and ES5.1.
> 
> We really need a complete codification of the consensus ES5.1 grammar. 
> Starting from the official grammar, the Caja 
> <http://caja.appspot.com/trycaja/index.html?input=do%20{%3b}%20while%28false%29%20false>
>  and ES-Lab <http://es-lab.googlecode.com/svn/trunk/site/esparser/index.html> 
> parsers both reject "do {;} while (false) false;" because we didn't know any 
> better. I expect there are many other independent parsers (minimizers, 
> linters, etc) that make the same mistake.
> 
> Even if such "corrections" do not make it into future errata, I would like to 
> see them recorded on the ecmascript wiki.
> 
> 
> On Tue, Feb 8, 2011 at 12:12 PM, André Bargull <[email protected]> wrote:
> Just for the record, here's a link to the bug report on bugzilla concerning 
> ASI for do-while:
> https://bugzilla.mozilla.org/show_bug.cgi?id=238945
> 
> (Interesting that I came across the very same issue in January while working 
> on the OpenLaszlo parser code :-) 
> 
>> FWIW, JavaScriptCore provides automatic semicolon insertion after all 
>> do-while statements in all contexts. We made this change for web 
>> compatibility, mimicking a Firefox quirk.
>> 
>> Geoff
>> 
>> On Feb 8, 2011, at 11:53 AM, Dave Fugate wrote:
>> 
>> Just to confirm, do-while iteration statements do in fact require a 
>> semi-colon at the end as indicated in 12.6.1 of ES5, correct?  That is, a 
>> production of the nature:
>>                 do {;} while (false) false;
>>  
>> would be invalid JavaScript as doesn’t meet any of the three rules set out 
>> in 7.9.1,  right?
>>  
>> Thanks,
>>  
>> Dave
> 
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
> 
> 
> 
> 
> -- 
>     Cheers,
>     --MarkM
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to