UNPKG

779 BJavaScriptView Raw
1'use strict';
2var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
3var create = require('../internals/object-create');
4var createPropertyDescriptor = require('../internals/create-property-descriptor');
5var setToStringTag = require('../internals/set-to-string-tag');
6var Iterators = require('../internals/iterators');
7
8var returnThis = function () { return this; };
9
10module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
11 var TO_STRING_TAG = NAME + ' Iterator';
12 IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });
13 setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
14 Iterators[TO_STRING_TAG] = returnThis;
15 return IteratorConstructor;
16};