'use strict'; | |
var callable = require('../../../object/valid-callable') | |
, value = require('../../../object/valid-value') | |
, some = Array.prototype.some, apply = Function.prototype.apply; | |
module.exports = function (predicate/*, thisArg*/) { | |
var k, self; | |
self = Object(value(this)); | |
callable(predicate); | |
return some.call(self, function (value, index) { | |
if (apply.call(predicate, this, arguments)) { | |
k = index; | |
return true; | |
} | |
return false; | |
}, arguments[1]) ? k : -1; | |
}; |