3 var callable = require('../../object/valid-callable')
4 , value = require('../../object/valid-value')
6 , hasOwnProperty = Object.prototype.hasOwnProperty
7 , call = Function.prototype.call;
9 module.exports = function (cb/*, thisArg*/) {
11 self = Object(value(this));
13 thisArg = arguments[1];
15 for (i = self.length; i >= 0; --i) {
16 if (hasOwnProperty.call(self, i) &&
17 call.call(cb, thisArg, self[i], i, self)) {