2fe1a9d0eb5e3f41453f20e3dfad2f4a4e32113dbbf63f50dbd869999b00d60e72f9a7b60835892a52d4c5c938f1286e46f74283d69f439dac2a2bb60100ad 779 B

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