Label statement moveable

Sebastian McKenzie sebmck at gmail.com
Wed May 20 10:45:01 UTC 2015


So you want to add goto to JavaScript?

On Wed, May 20, 2015 at 11:42 AM, Emanuel Allen <emanuelallen at hotmail.com>
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">
> jsprf </a>to further my argument for a sudo goto/function effect:
> http://jsperf.com/block-scope-vs-function-invocation
> JS4Lf
>> On May 19, 2015, at 2:45 PM, L4L <lv2lrn4lf at gmail.com> 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
>> 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/20150520/464af1fe/attachment.html>


More information about the es-discuss mailing list