On Nov 22, 2010, at 12:49 AM, Peter van der Zee wrote:

> On Mon, Nov 22, 2010 at 8:37 AM, David Herman <dher...@mozilla.com> wrote:
> > for (var i : x) ...      // must be new iteration
> > for (var i : T : x) ...  // iteration again, but parsed how?
> > for (var i : T in x) ... // for-in with annotated var
> 
> Bummer!
> 
> I'm beginning to feel more strongly again that overloading for-in, as opposed 
> to introducing yet another syntactic variant of `for', is the right way to go.
> 
> <thought experiment>
> Imagine we made Harmony backwards-incompatible in the following way: for-in 
> loops would *only* work on iterable objects, and would dynamically fail on 
> non-iterable objects. So if you wanted the legacy keys behavior, you would 
> have to explicitly call a `keys' library function.
> </thought experiment>
> 
> 
> If we're gonna go invent new keywords why not use the obvious?
> 
> iterate (var x in y) ...
> 

Did you read Dave's previous post, or mine? "We" are not going to go invent 
some new overlong non-reserved word. "for" is the right word.

One might try retasking "do" but it's ambiguous: do-while loops do not require 
braces (K&R style favors them even for one-liners but it's just a convention).

Dave's point about getting people to use one universal quantifying loop 
structure is good. If that loop syntax is not for-in, it will have to be 
something new that works even when there is no iterate trapping proxy. But that 
will just be a suckier version of the universal (enumerating if not 
custom-iterating) for-in from JS1.7.

So what good are we really doing by forking for-in into bastard children (the 
one we have, definitely a bastard -- I should know! :-/) and a new one with red 
hair?

/be

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to