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