1'use strict'; 2var create = require('./_object-create'); 3var descriptor = require('./_property-desc'); 4var setToStringTag = require('./_set-to-string-tag'); 5var IteratorPrototype = {}; 6 7// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 8require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; }); 9 10module.exports = function (Constructor, NAME, next) { 11 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 12 setToStringTag(Constructor, NAME + ' Iterator'); 13}; 14