'use strict'; | |
var create = require('./_object-create') | |
, descriptor = require('./_property-desc') | |
, setToStringTag = require('./_set-to-string-tag') | |
, IteratorPrototype = {}; | |
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() | |
require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; }); | |
module.exports = function(Constructor, NAME, next){ | |
Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); | |
setToStringTag(Constructor, NAME + ' Iterator'); | |
}; |