`do` expression conflicting with `do ... while` grammar?

Caitlin Potter caitpotter88 at gmail.com
Mon Feb 22 16:59:50 UTC 2016


id have to check the ASI rules, but I expect that would parse as a do-while loop and result in a SyntaxError. Interesting test case, though. should add to v8's test suite.

> On Feb 22, 2016, at 11:47 AM, Bradley Meck <bradley.meck at gmail.com> wrote:
> 
> Does that mean the following would parse as a do expression?
> 
> ```javascript
> function foo () {
>   return
>   do {
>     1;
>   }
>   while (true);
> }
> ```
> 
>> On Mon, Feb 22, 2016 at 10:43 AM, Caitlin Potter <caitpotter88 at gmail.com> wrote:
>> current impl in v8 is to only parse do-expressions in expression contexts (as a PrimaryExpr, iirc). So it never gets mixed up with do-while loops, which is fine (imo).
>> 
>> I recall seeing discussion about this in tc39 notes at some point, afaik the conclusion was that do-expressions dont work in Statement contexts, because theres no use case
>> 
>> > On Feb 22, 2016, at 11:38 AM, Bradley Meck <bradley.meck at gmail.com> wrote:
>> >
>> > how will people distinguish `do ... while` from `do` expressions? I tried to find the exact grammar but couldn't after a bit of searching.
>> >
>> > For example in current JS,
>> >
>> > ```
>> > do {
>> >   console.log(1);
>> > }
>> > while (true);
>> > ```
>> >
>> > would cause infinite number of `console.log`s. But if the `do` is seen as an expression statement it would only log once.
>> >
>> > Any pointer to where the grammar is discussed would be quite helpful.
>> > _______________________________________________
>> > es-discuss mailing list
>> > es-discuss at mozilla.org
>> > https://mail.mozilla.org/listinfo/es-discuss
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160222/f38b5465/attachment.html>


More information about the es-discuss mailing list