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

