diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.iterator.constructor.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.iterator.constructor.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.iterator.constructor.js b/node_modules/core-js/modules/esnext.iterator.constructor.js new file mode 100644 index 0000000..a481dff --- /dev/null +++ b/node_modules/core-js/modules/esnext.iterator.constructor.js @@ -0,0 +1,48 @@ +'use strict'; +// https://github.com/tc39/proposal-iterator-helpers +var $ = require('../internals/export'); +var global = require('../internals/global'); +var anInstance = require('../internals/an-instance'); +var createNonEnumerableProperty = require('../internals/create-non-enumerable-property'); +var fails = require('../internals/fails'); +var has = require('../internals/has'); +var wellKnownSymbol = require('../internals/well-known-symbol'); +var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype; +var IS_PURE = require('../internals/is-pure'); + +var ITERATOR = wellKnownSymbol('iterator'); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +var NativeIterator = global.Iterator; + +// FF56- have non-standard global helper `Iterator` +var FORCED = IS_PURE + || typeof NativeIterator != 'function' + || NativeIterator.prototype !== IteratorPrototype + // FF44- non-standard `Iterator` passes previous tests + || !fails(function () { NativeIterator({}); }); + +var IteratorConstructor = function Iterator() { + anInstance(this, IteratorConstructor); +}; + +if (IS_PURE) { + IteratorPrototype = {}; + createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +if (!has(IteratorPrototype, TO_STRING_TAG)) { + createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator'); +} + +if (FORCED || !has(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) { + createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor); +} + +IteratorConstructor.prototype = IteratorPrototype; + +$({ global: true, forced: FORCED }, { + Iterator: IteratorConstructor +}); |
