is-iterable.js 452 B

123456789101112131415
  1. 'use strict';
  2. var isArguments = require('es5-ext/function/is-arguments')
  3. , isString = require('es5-ext/string/is-string')
  4. , iteratorSymbol = require('es6-symbol').iterator
  5. , isArray = Array.isArray;
  6. module.exports = function (value) {
  7. if (value == null) return false;
  8. if (isArray(value)) return true;
  9. if (isString(value)) return true;
  10. if (isArguments(value)) return true;
  11. return (typeof value[iteratorSymbol] === 'function');
  12. };