Enumerators work inconsistently in Treehydra. The problem is that the lazy property resolve function will produce an error the second time it is called, even though the property being resolved may actually be available further up the prototype chain.
The ideal fix would be one where the object throws an error if and only if a property that does not exist on any level of the prototype chain is asked for.
Created attachment 311658 [details] [diff] [review]
Admittedly this is sort of hacky, but I think it works well and is the best we can do for now. A fix to bug 425066 will hopefully allow this to be simplified and definitively solve the problem.
Created attachment 311665 [details] [diff] [review]
I left a line of debugging code in the previous patch.
Created attachment 311677 [details] [diff] [review]
Handle __iterator__ special case in js
how about this?
I think it's a little shorter and leaves room for further special-casing in the JS file if need be.
Committed my revised patch. Will wait on bug 425066 before closing this