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