<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Yes:</div><div><br></div><div><blockquote type="cite"><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">foo: {</span></font></div><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">    // ...</span></font></div><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">    if (bar)</span></font></div><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">        continue foo // (currently a SyntaxError)</span></font></div><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">    // ...</span></font></div><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">}</span></font></div></blockquote></div><div><br></div><div>in my first attempt at posting this I did something similar:</div><div><br></div><div> <span style="background-color: rgba(255, 255, 255, 0);">function foo(v){</span><blockquote type="cite"><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div dir="auto" class=""><blockquote type="cite" class=""><div class=""><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);"><span class=""> return v + 1;</span><br class=""><span class="">}</span><br class=""><span class=""></span><br class=""><span class=""></span><br class=""><span class=""> var i = 0;</span><br class=""><span class=""></span><br class=""><span class=""> baz:{</span><br class=""><span class="">   i += 1;</span><br class=""><span class=""> }</span><br class=""><span class=""></span><br class=""><span class="">continue baz;//same as foo(i);</span><br class=""><span class=""></span><br class=""><span class="">console.log(i);</span></span></font></div></blockquote></div></blockquote></div></div></blockquote></blockquote><div><br></div><div>But not that I want restriction on where continue can be use; only in block scope. Rather that's in an if/else else if statement or a function statement.</div><div><br></div><div><br></div><div>And another important thing is I want label statement reachable from the scope they are define.</div><div><br></div><div>So my first attempt example would actually be rewritten to:</div><div>var i;</div><div>foo:{</div><div>  if(typeof i!=='number') break;</div><div>  i+=1;</div><div>} </div><div>I =0;</div><div>{</div><div>if (i < 5);</div><div>  continue foo;</div><div>}</div><div><br></div><div>console.log(i);//log 4</div><div><br></div><div>Again the true aim for this is to lower function calls. </div><div><br></div><br>JS4Lf</div><div><br>On May 20, 2015, at 11:56 AM, Claude Pache <<a href="mailto:claude.pache@gmail.com">claude.pache@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div class="">I occasionally (quite rarely) use the following variant of the classical `do/while(false)` trick:</div><div class=""><br class=""></div><div class="">``</div><div class="">foo: do {</div><div class="">    // ...</div><div class="">    if (bar)</div><div class="">        continue foo // meaning: restart from foo</div><div class="">    // ...</div><div class="">    break </div><div class="">} while (true) // not a real loop, just a hack</div><div class="">```</div><div class=""><br class=""></div><div class="">Maybe the following syntax could be used?</div><div class=""><br class=""></div><div class="">```</div><div class="">foo: {</div><div class="">    // ...</div><div class="">    if (bar)</div><div class="">        continue foo // (currently a SyntaxError)</div><div class="">    // ...</div><div class="">}</div><div class="">```</div><div class=""><br class=""></div><div class="">WDYT?</div><div class=""><br class=""></div><div class="">—Claude</div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">Le 20 mai 2015 à 12:45, Sebastian McKenzie <<a href="mailto:sebmck@gmail.com" class="">sebmck@gmail.com</a>> a écrit :</div><br class="Apple-interchange-newline"><div class="">
<span id="mailbox-conversation" class=""><div class="">So you want to add goto to JavaScript?</div></span><div class="mailbox_signature">
<br class=""><br class=""></div>
<br class=""><br class=""><div class="gmail_quote"><p class="">On Wed, May 20, 2015 at 11:42 AM, Emanuel Allen <span dir="ltr" class=""><<a href="mailto:emanuelallen@hotmail.com" target="_blank" class="">emanuelallen@hotmail.com</a>></span> wrote:<br class=""></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="auto" class="">
<div class="">
<span style="" class="">Clarify:</span><br style="" class=""><br style="" class=""><span style="" class="">My previous post was not that clear. That post display what I would like to do in the language. Here is the actual code if I choose to do it as the language is now: </span><br style="" class=""><span style="" class="">var i = 0, n = 5;</span><br style="" class=""><span style="" class="">l2: do {</span><br style="" class=""><span style="" class=""> i += 1;</span><br style="" class=""><span style="" class=""> l3: do {</span><br style="" class=""><span style="" class="">   if (i<n) continue l2;</span><br style="" class=""><span style="" class="">   else break l3;</span><br style="" class=""><span style="" class=""> } while (true);</span><br style="" class=""><span style="" class=""> break l2;</span><br style="" class=""><span style="" class="">} while (true);</span><br style="" class=""><span style="" class="">//just log the value n+1:</span><br style="" class=""><span style="" class="">console.log('i:'+i);</span><br style="" class=""><br style="" class=""><span style="" class="">loop through label l2 n amount of times before breaking.</span><br style="" class=""><br style="" class=""><span style="" class="">This could be useful to escape function invocation cost, if it could be simply express:</span><br style="" class=""><span style="" class=""> l2: {</span><br style="" class=""><span style="" class="">  i += 1;</span><br style="" class=""><span style="" class=""> }</span><br style="" class=""><span style="" class=""> l3: {</span><br style="" class=""><span style="" class="">   if (i<n) continue l2;</span><br style="" class=""><span style="" class=""> }</span><br style="" class=""><br style="" class=""><span style="" class="">The function way is to:</span><br style="" class=""><span style="" class="">function l2(){</span><br style="" class=""><span style="" class="">  i += 1;</span><br style="" class=""><span style="" class="">}</span><br style="" class=""><br style="" class=""><span style="" class="">l3: do {</span><br style="" class=""><span style="" class="">   if (i<n) l2();</span><br style="" class=""><span style="" class="">   else break l3;</span><br style="" class=""><span style="" class=""> } while (true);</span><br style="" class=""><br style="" class=""><span style="" class="">I did a <a href="</span><a href="http://jsperf.com/block-scope-vs-function-invocation" style="-webkit-composition-fill-color: rgba(130, 98, 83, 0.0980392);" class="">http://jsperf.com/block-scope-vs-function-invocation</a><span style="" class="">"></span><br style="" class=""><span style="" class="">jsprf </a>to further my argument for a sudo goto/function effect:</span><br style="" class=""><br style="" class=""><a href="http://jsperf.com/block-scope-vs-function-invocation" style="-webkit-composition-fill-color: rgba(130, 98, 83, 0.0980392);" class="">http://jsperf.com/block-scope-vs-function-invocation</a><br class=""><br class="">JS4Lf</div>
<div class="">
<br class="">On May 19, 2015, at 2:45 PM, L4L <<a href="mailto:lv2lrn4lf@gmail.com" class="">lv2lrn4lf@gmail.com</a>> wrote:<br class=""><br class=""></div>
<blockquote type="cite" class=""><div class="">
<span class="">Since we have block scope, and we have continue statement to which we can use in loops to jump back to the conduction statement part. </span><br class=""><span class=""></span><br class=""><span class="">Than can we consider making label stamens moveable by its name. </span><br class=""><span class=""></span><br class=""><span class="">I'll like to say that the side effect would be sudo(pseudo) function, example:</span><br class=""><span class=""></span><br class=""><span class="">function foo(v){</span><br class=""><span class="">  return v + 1;</span><br class=""><span class="">}</span><br class=""><span class=""></span><br class=""><span class=""></span><br class=""><span class="">  var i = 0;</span><br class=""><span class=""></span><br class=""><span class="">  baz:{</span><br class=""><span class="">    i += 1;</span><br class=""><span class="">  }</span><br class=""><span class=""></span><br class=""><span class="">continue baz;//same as foo(i);</span><br class=""><span class=""></span><br class=""><span class="">console.log(i);</span><br class=""><span class=""></span><br class=""><span class="">Note that I said sudo function. Its mobility is what of value; depending on how JavaScript handle the continue statement in a loop to transport that effect out side a loop. </span><br class=""><span class=""></span><br class=""><span class="">Stripping this privilege to black scope; where the continue statement is expanded to work only in block scope and nested block scope; to where it can only jump to the beginning of that block or any other block scope that is scoped to that outer block scope but not nested block scope with in the scope... Like function.</span><br class=""><span class=""></span><br class=""><span class="">Continue and break statement could be of more power; where we can avoid some function call in "speed matter" application.</span><br class=""><span class=""></span><br class=""><span class="">Excuse any grammar errors. </span><br class=""><span class=""></span><br class=""><span class="">JS4Lf</span><br class=""><span class="">_______________________________________________</span><br class=""><span class="">es-discuss mailing list</span><br class=""><span class=""><a href="mailto:es-discuss@mozilla.org" class="">es-discuss@mozilla.org</a></span><br class=""><span class=""><a href="https://mail.mozilla.org/listinfo/es-discuss" class="">https://mail.mozilla.org/listinfo/es-discuss</a></span><br class=""></div></blockquote>
</div></blockquote></div><br class="">_______________________________________________<br class="">es-discuss mailing list<br class=""><a href="mailto:es-discuss@mozilla.org" class="">es-discuss@mozilla.org</a><br class=""><a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a><br class=""></div></blockquote></div><br class=""></div></blockquote></body></html>