'use strict'; module.exports = function (arr, predicate, ctx){ if (typeof Array.prototype.findIndex === 'function') { return arr.findIndex(predicate, ctx); } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function') } var list = Object(arr); var len = _AN_Read_length('length', list); if (len === 0) { return -1; } for (var i = 0; i < len; i++ ){ if (predicate.call(ctx, list[i], i, list)) { return i; } } return -1; } ;