>>   for (k in keys(o)) ...
>>   for (v in values(o)) ...
>>   for ([k, v] in properties(o)) ...
> 
> What are "keys", "values", and "properties" here?  Global functions?

Those are API's suggested in the strawman:iterators proposal. They would be 
importable from a standard module.

>  How would a new object abstraction T customize them just for instances of T?

By writing its own custom iteration protocol via proxies with the iterate() 
trap implemented appropriately. E.g.:

    function MyCollection() { }
    MyCollection.prototype = {
        iterator: function() {
            var self = this;
            return Proxy.create({
                iterate: function() { ... self ... },
                ...
            });
        }
    }

Dave

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

Reply via email to