'use strict'; 
 | 
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/for-each'); 
 | 
require('../../modules/web.dom-collections.for-each'); 
 | 
  
 | 
var ArrayPrototype = Array.prototype; 
 | 
  
 | 
var DOMIterables = { 
 | 
  DOMTokenList: true, 
 | 
  NodeList: true 
 | 
}; 
 | 
  
 | 
module.exports = function (it) { 
 | 
  var own = it.forEach; 
 | 
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach) 
 | 
    || hasOwn(DOMIterables, classof(it)) ? method : own; 
 | 
}; 
 |