Sha256: ba620c85d3c0cdbc63adf478ddbafd4384da8e09c0ba65382025b16478f801e9

Contents?: true

Size: 1.08 KB

Versions: 49

Compression:

Stored size: 1.08 KB

Contents

import { root } from '../util/root';

export function symbolIteratorPonyfill(root: any) {
  const Symbol: any = root.Symbol;

  if (typeof Symbol === 'function') {
    if (!Symbol.iterator) {
      Symbol.iterator = Symbol('iterator polyfill');
    }
    return Symbol.iterator;
  } else {
    // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)
    const { Set } = root;
    if (Set && typeof new Set()['@@iterator'] === 'function') {
      return '@@iterator';
    }
    const { Map } = root;
    // required for compatability with es6-shim
    if (Map) {
      let keys = Object.getOwnPropertyNames(Map.prototype);
      for (let i = 0; i < keys.length; ++i) {
        let key = keys[i];
        // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.
        if (key !== 'entries' && key !== 'size' && Map.prototype[key] === Map.prototype['entries']) {
          return key;
        }
      }
    }
    return '@@iterator';
  }
}

export const iterator = symbolIteratorPonyfill(root);

/**
 * @deprecated use iterator instead
 */
export const $$iterator = iterator;

Version data entries

49 entries across 49 versions & 4 rubygems

Version Path
ilog-0.4.1 node_modules/rxjs/src/symbol/iterator.ts
ilog-0.4.0 node_modules/rxjs/src/symbol/iterator.ts
ilog-0.3.3 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-18.0.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.21.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.20.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.19.1 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.19.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.18.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.17.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.16.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.15.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.14.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.13.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.12.2 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.12.1 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.12.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.11.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.10.0 node_modules/rxjs/src/symbol/iterator.ts
govuk_publishing_components-17.9.0 node_modules/rxjs/src/symbol/iterator.ts