iterator as a unique name and the enumerate trap

Allen Wirfs-Brock allen at
Mon Oct 1 08:39:37 PDT 2012

On Oct 1, 2012, at 6:56 AM, David Bruant wrote:

> 2012/10/1 Tom Van Cutsem < at>
> 2012/10/1 Tom Van Cutsem < at>
> If yes, then we should ask ourselves the question: is this a useful hook for regular objects to customize? I think it's not, really (bear in mind that enumeration can only generate strings (property names), it's a good deal less generic than iteration)
> Put another way: customizing enumeration is meta-programming, customizing iteration is not.
> I had not seen things from that angle, but it seems like a valid reason for the apparent inconsistent of the proxy handler API.

I actually think they are both meta-programming hooks, in that they both provided a means for extending the behavior of syntactic constructs of the language.  However, I still come to the same conclusion:

Defining for-of iteration has high utility and will occur frequently so it should be exposed via a light-weight extension mechanism:  a unique name (symbol).  Extending for-in enumeration is of little utility and will occur infrequently.  For that reason it makes sense for it to be exposed by the more heavy weight proxy extension mechanism.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list