Please excuse me, I'm trying to move one email to another. Posting this to 
clear up confusion.

JS4Lf

> On May 20, 2015, at 1:46 PM, Emanuel Allen <[email protected]> wrote:
> 
> Yes:
> 
>> foo: {
>>     // ...
>>     if (bar)
>>         continue foo // (currently a SyntaxError)
>>     // ...
>> }
> 
> 
> in my first attempt at posting this I did something similar:
> 
>  function foo(v){
>> 
>>>>>  return v + 1;
>>>>> }
>>>>> 
>>>>> 
>>>>>  var i = 0;
>>>>> 
>>>>>  baz:{
>>>>>    i += 1;
>>>>>  }
>>>>> 
>>>>> continue baz;//same as foo(i);
>>>>> 
>>>>> console.log(i);
> 
> 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.
> 
> 
> And another important thing is I want label statement reachable from the 
> scope they are define.
> 
> So my first attempt example would actually be rewritten to:
> var i;
> foo:{
>   if(typeof i!=='number') break;
>   i+=1;
> } 
> I =0;
> {
> if (i < 5);
>   continue foo;
> }
> 
> console.log(i);//log 4
> 
> Again the true aim for this is to lower function calls. 
> 
> 
> JS4Lf
> 
>> On May 20, 2015, at 11:56 AM, Claude Pache <[email protected]> wrote:
>> 
>> 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]> 
>>>> 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 <[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]
>>>>> 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