Another thing to consider is whether these functions belong in an iter module or in a reflect module? I'm leaning towards the letter. On Nov 12, 2011 12:05 PM, "Brendan Eich" <bren...@mozilla.com> wrote:
> On Nov 12, 2011, at 11:26 AM, Allen Wirfs-Brock wrote: > > The Iterators proposal includes the definition ( > http://wiki.ecmascript.org/doku.php?id=harmony:iterators#standard_api ) > of functions that are intended to support various common iteration patterns. > > For example, > > for ((k of keys(x)) { ...} > for (v of values(x)) { ...} > for ([k,v] of items(x)) {...} > for (k of allKeys(x)) { ...} > for (k of allValues(x)) { ...} > for (i of allItems(x)) { ...} > > The use of these functions seems to be pretty much an essential part of > the intended use of the for-of statement. > > > The prior question is what, if anything, > > for (x of y) ... // and [x for x of y], etc. > > means. > > Should it throw if there's no @iterator private-named property in y *and* > y is not a Proxy with an iterate trap? That is our current thinking. It may > not be reflected well in the wiki. > > The alternative is to iterate over property values of an object denoted y > that has no unstratified @iterator or stratified handler iterate trap. But > that is hostile to collections and your [] proposal. > > OTOH I see no problem for collection writers if we make for-of throw on > untrapped objects. Collection authors would bind @iterator, @elementGet, > and @elementSet. Life would be grand. Right? > > /be > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss