for-each.js 367 Bytes
"use strict";

var forOf      = require("es6-iterator/for-of")
  , isIterable = require("es6-iterator/is-iterable")
  , iterable   = require("./validate")

  , forEach = Array.prototype.forEach;

module.exports = function (target, cb/*, thisArg*/) {
	if (isIterable(iterable(target))) forOf(target, cb, arguments[2]);
	else forEach.call(target, cb, arguments[2]);
};