UNPKG

915 BJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.isIterable = isIterable;
7exports.getIterator = getIterator;
8exports.makeIterable = makeIterable;
9/** @license MIT License (c) copyright 2010-2016 original author or authors */
10/** @author Brian Cavalier */
11/** @author John Hann */
12
13/*global Set, Symbol*/
14var iteratorSymbol;
15// Firefox ships a partial implementation using the name @@iterator.
16// https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14
17if (typeof Set === 'function' && typeof new Set()['@@iterator'] === 'function') {
18 iteratorSymbol = '@@iterator';
19} else {
20 iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator || '_es6shim_iterator_';
21}
22
23function isIterable(o) {
24 return typeof o[iteratorSymbol] === 'function';
25}
26
27function getIterator(o) {
28 return o[iteratorSymbol]();
29}
30
31function makeIterable(f, o) {
32 o[iteratorSymbol] = f;
33 return o;
34}
\No newline at end of file