15 lines
545 B
JavaScript
15 lines
545 B
JavaScript
'use strict';
|
|
var classof = require('../internals/classof-raw');
|
|
var isNullOrUndefined = require('../internals/is-null-or-undefined');
|
|
var getMethod = require('../internals/get-method');
|
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
var ArrayPrototype = Array.prototype;
|
|
|
|
module.exports = function (it) {
|
|
if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
|
|
|| getMethod(it, '@@iterator')
|
|
|| (classof(it) === 'Arguments' ? ArrayPrototype[ITERATOR] : undefined);
|
|
};
|