UNPKG

581 BJavaScriptView Raw
1'use strict';
2
3var isArguments = require('es5-ext/function/is-arguments')
4 , isString = require('es5-ext/string/is-string')
5 , ArrayIterator = require('./array')
6 , StringIterator = require('./string')
7 , iterable = require('./valid-iterable')
8 , iteratorSymbol = require('es6-symbol').iterator;
9
10module.exports = function (obj) {
11 if (typeof iterable(obj)[iteratorSymbol] === 'function') return obj[iteratorSymbol]();
12 if (isArguments(obj)) return new ArrayIterator(obj);
13 if (isString(obj)) return new StringIterator(obj);
14 return new ArrayIterator(obj);
15};