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};