20 lines
614 B
JavaScript
20 lines
614 B
JavaScript
|
'use strict';
|
||
|
require('../../modules/web.dom-collections.iterator');
|
||
|
var classof = require('../../internals/classof');
|
||
|
var hasOwn = require('../../internals/has-own-property');
|
||
|
var isPrototypeOf = require('../../internals/object-is-prototype-of');
|
||
|
var method = require('../array/virtual/keys');
|
||
|
|
||
|
var ArrayPrototype = Array.prototype;
|
||
|
|
||
|
var DOMIterables = {
|
||
|
DOMTokenList: true,
|
||
|
NodeList: true
|
||
|
};
|
||
|
|
||
|
module.exports = function (it) {
|
||
|
var own = it.keys;
|
||
|
return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)
|
||
|
|| hasOwn(DOMIterables, classof(it)) ? method : own;
|
||
|
};
|