1234567891011121314151617181920212223242526272829 |
- 'use strict';
- var GetIntrinsic = require('get-intrinsic');
- var hasPropertyDescriptors = require('has-property-descriptors')();
- var $TypeError = require('es-errors/type');
- var $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);
- var iterProto = require('iterator.prototype');
- var callBound = require('call-bind/callBound');
- var $isPrototypeOf = callBound('Object.prototype.isPrototypeOf');
- var $Iterator = typeof Iterator === 'function' ? Iterator : function Iterator() {
- if (
- !(this instanceof Iterator)
- || this.constructor === Iterator
- || !$isPrototypeOf(Iterator, this.constructor)
- ) {
- throw new $TypeError('`Iterator` can not be called or constructed directly');
- }
- };
- if ($Iterator.prototype !== iterProto) {
- $Iterator.prototype = iterProto;
- }
- $defineProperty($Iterator, 'prototype', { writable: false });
- module.exports = $Iterator;
|