Iter: __iterable__ support?

15 views
Skip to first unread message

Fredrik

unread,
Nov 20, 2010, 6:51:36 PM11/20/10
to MochiKit
Hi.

In Iter.js I find this, regarding the support for the __iterator__
pattern.

//-------------------------------
// XXX: We can't support JavaScript 1.7 __iterator__ directly
// because of Object.prototype.__iterator__
//-------------------------------

In Git/SVN the only message to the (reverted) change (2006-05-18) is
"oops" :)

The Google Closure library seems to sniff for it for example, see:
http://closure-library.googlecode.com/svn/docs/closure_goog_iter_iter.js.source.html

Is this still applicable? Supporting __iterable__ would be very useful
I'd say.
.. Guess this more or less a question for Bob himself but if anyone
has knowledge about this issue please enlighten!

Regards
// Fredrik Blomqvist

Fredrik

unread,
Nov 20, 2010, 6:55:39 PM11/20/10
to MochiKit
FYI, here the actual links to the changes:

adding __iterator__: https://github.com/mochi/mochikit/blob/b54de3b0429396cb86edd2c1ade0860831b65379/MochiKit/Iter.js
.. dropping __iterator_:
https://github.com/mochi/mochikit/blob/3022d8755cf932a9581f0ba19134472a368c6d64/MochiKit/Iter.js

On Nov 21, 12:51 am, Fredrik <fblomqv...@gmail.com> wrote:
> Hi.
>
> In Iter.js I find this, regarding the support for the __iterator__
> pattern.
>
> //-------------------------------
> // XXX: We can't support JavaScript 1.7 __iterator__ directly
> //      because of Object.prototype.__iterator__
> //-------------------------------
>
> In Git/SVN the only message to the (reverted) change (2006-05-18) is
> "oops" :)
>
> The Google Closure library seems to sniff for it for example, see:http://closure-library.googlecode.com/svn/docs/closure_goog_iter_iter...

Bob Ippolito

unread,
Nov 20, 2010, 7:35:19 PM11/20/10
to Fredrik, MochiKit
If I remember correctly the problem is that __iterator__ was defined
on Object.prototype (to iterate over keys), so everything had it, and
it made the registry worthless. Maybe if we moved that code to after
the registry, or maybe checked to see if iterator.__iterator__ !==
Object.prototype.__iterator__ before the registry, and then just a
regular check after.

It looks like they moved that behavior to Iterator though, so maybe
it's ok to bring back.

> --
> You received this message because you are subscribed to the Google Groups "MochiKit" group.
> To post to this group, send email to moch...@googlegroups.com.
> To unsubscribe from this group, send email to mochikit+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/mochikit?hl=en.
>
>

Message has been deleted

Fredrik

unread,
Nov 23, 2010, 5:58:01 PM11/23/10
to MochiKit
Thanks, I was afraid there was some more subtle issue involved.
I've now re-enabled it in my MochiKit fork, see:
https://github.com/blq/mochikit/commit/1352ea316184b83ccffc30d19d65faa0431ce43b
Unit-tests pass, but I'll let it "spin around" in my code for a while
before a merge into MochiKit master.
---
...speaking of iterators, I've recently been toying around with
further extensions to the Iter-lib,
filling gaps from itertools, adding tree-iterators etc, see if you
find something you like here: https://github.com/blq/mochikit/blob/master/MochiKit/Iter-ext.js

Regards
// Fredrik Blomqvist

On Nov 21, 1:35 am, Bob Ippolito <b...@redivi.com> wrote:
> If I remember correctly the problem is that __iterator__ was defined
> on Object.prototype (to iterate over keys), so everything had it, and
> it made the registry worthless. Maybe if we moved that code to after
> the registry, or maybe checked to see if iterator.__iterator__ !==
> Object.prototype.__iterator__ before the registry, and then just a
> regular check after.
>
> It looks like they moved that behavior to Iterator though, so maybe
> it's ok to bring back.
>
>
>
>
>
>
>
> On Sun, Nov 21, 2010 at 7:55 AM, Fredrik <fblomqv...@gmail.com> wrote:
> > FYI, here the actual links to the changes:
>
> > adding __iterator__:https://github.com/mochi/mochikit/blob/b54de3b0429396cb86edd2c1ade086...
> > .. dropping __iterator_:
> >https://github.com/mochi/mochikit/blob/3022d8755cf932a9581f0ba1913447...
Message has been deleted
Message has been deleted

Fredrik Blomqvist

unread,
Nov 24, 2010, 3:59:17 AM11/24/10
to MochiKit
...OK... for some reason (many links?) Google apparently decided to
queue my messages *much* longer than usual. My very first reply is
still totally lost for example.. But, now I see my other attempts at
re-posting showed up all at once.. Sigh... :(

Apologize for the spam!
// Fredrik Blomqvist

On Nov 24, 12:05 am, Fredrik Blomqvist <fblomqv...@gmail.com> wrote:
> Thanks, I was afraid there was some even more subtle issue involved.
> I've now re-enable it in my fork of MochiKit, see:https://github.com/blq/mochikit/commit/1352ea316184b83ccffc30d19d65fa...
> Unit tests pass but I'll let it "spin around" in my code for a while
> before merging it into MochiKit master.
> ----
> .. speaking of iterators, I've recently been toying with extensions to
> the Iter module. Filling in gaps from
> itertools, adding some tree-iterators etc. See if you find something
> you like here:https://github.com/blq/mochikit/blob/master/MochiKit/Iter-ext.js
>
> Regards
> // Fredrik Blomqvist
>
> On Nov 21, 1:35 am, Bob Ippolito <b...@redivi.com> wrote:
>
>
>
>
>
>
>
> > If I remember correctly the problem is that __iterator__ was defined
> > on Object.prototype (to iterate over keys), so everything had it, and
> > it made the registry worthless. Maybe if we moved that code to after
> > the registry, or maybe checked to see if iterator.__iterator__ !==
> > Object.prototype.__iterator__ before the registry, and then just a
> > regular check after.
>
> > It looks like they moved that behavior to Iterator though, so maybe
> > it's ok to bring back.
>
> > On Sun, Nov 21, 2010 at 7:55 AM, Fredrik <fblomqv...@gmail.com> wrote:
> > > FYI, here the actual links to the changes:
>
Reply all
Reply to author
Forward
0 new messages