3 var toPosInt = require('../../number/to-pos-integer')
4 , callable = require('../../object/valid-callable')
5 , value = require('../../object/valid-value')
7 , hasOwnProperty = Object.prototype.hasOwnProperty
8 , call = Function.prototype.call;
10 module.exports = function (cb/*, thisArg*/) {
12 self = Object(value(this));
14 thisArg = arguments[1];
16 for (i = (toPosInt(self.length) - 1); i >= 0; --i) {
17 if (hasOwnProperty.call(self, i) &&
18 call.call(cb, thisArg, self[i], i, self)) {