I occasionally (quite rarely) use the following variant of the classical 
`do/while(false)` trick:

``
foo: do {
    // ...
    if (bar)
        continue foo // meaning: restart from foo
    // ...
    break 
} while (true) // not a real loop, just a hack
```

Maybe the following syntax could be used?

```
foo: {
    // ...
    if (bar)
        continue foo // (currently a SyntaxError)
    // ...
}
```

WDYT?

—Claude


> Le 20 mai 2015 à 12:45, Sebastian McKenzie <[email protected]> a écrit :
> 
> So you want to add goto to JavaScript?
> 
> 
> 
> 
> On Wed, May 20, 2015 at 11:42 AM, Emanuel Allen <[email protected] 
> <mailto:[email protected]>> wrote:
> 
> Clarify:
> 
> 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: 
> var i = 0, n = 5;
> l2: do {
>  i += 1;
>  l3: do {
>    if (i<n) continue l2;
>    else break l3;
>  } while (true);
>  break l2;
> } while (true);
> //just log the value n+1:
> console.log('i:'+i);
> 
> loop through label l2 n amount of times before breaking.
> 
> This could be useful to escape function invocation cost, if it could be 
> simply express:
>  l2: {
>   i += 1;
>  }
>  l3: {
>    if (i<n) continue l2;
>  }
> 
> The function way is to:
> function l2(){
>   i += 1;
> }
> 
> l3: do {
>    if (i<n) l2();
>    else break l3;
>  } while (true);
> 
> I did a <a href="http://jsperf.com/block-scope-vs-function-invocation 
> <http://jsperf.com/block-scope-vs-function-invocation>">
> jsprf </a>to further my argument for a sudo goto/function effect:
> 
> http://jsperf.com/block-scope-vs-function-invocation 
> <http://jsperf.com/block-scope-vs-function-invocation>
> 
> JS4Lf
> 
> On May 19, 2015, at 2:45 PM, L4L <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> 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. 
>> 
>> Than can we consider making label stamens moveable by its name. 
>> 
>> I'll like to say that the side effect would be sudo(pseudo) function, 
>> example:
>> 
>> function foo(v){
>>  return v + 1;
>> }
>> 
>> 
>>  var i = 0;
>> 
>>  baz:{
>>    i += 1;
>>  }
>> 
>> continue baz;//same as foo(i);
>> 
>> console.log(i);
>> 
>> 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. 
>> 
>> 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.
>> 
>> Continue and break statement could be of more power; where we can avoid some 
>> function call in "speed matter" application.
>> 
>> Excuse any grammar errors. 
>> 
>> JS4Lf
>> _______________________________________________
>> es-discuss mailing list
>> [email protected] <mailto:[email protected]>
>> https://mail.mozilla.org/listinfo/es-discuss 
>> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> _______________________________________________
> 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