<div dir="ltr">Does that mean the following would parse as a do expression?<div><br></div><div>```javascript</div><div>function foo () {</div><div>  return</div><div>  do {</div><div>    1;</div><div>  }</div><div>  while (true);</div><div>}</div><div>```</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 22, 2016 at 10:43 AM, Caitlin Potter <span dir="ltr"><<a href="mailto:caitpotter88@gmail.com" target="_blank">caitpotter88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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).<br>
<br>
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<br>
<div class="HOEnZb"><div class="h5"><br>
> On Feb 22, 2016, at 11:38 AM, Bradley Meck <<a href="mailto:bradley.meck@gmail.com">bradley.meck@gmail.com</a>> wrote:<br>
><br>
> how will people distinguish `do ... while` from `do` expressions? I tried to find the exact grammar but couldn't after a bit of searching.<br>
><br>
> For example in current JS,<br>
><br>
> ```<br>
> do {<br>
>   console.log(1);<br>
> }<br>
> while (true);<br>
> ```<br>
><br>
> would cause infinite number of `console.log`s. But if the `do` is seen as an expression statement it would only log once.<br>
><br>
> Any pointer to where the grammar is discussed would be quite helpful.<br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>