| 123456789101112131415161718192021222324252627282930 | define(['./_getLength', './_setup', './isNaN'], function (_getLength, _setup, _isNaN) {  // Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.  function createIndexFinder(dir, predicateFind, sortedIndex) {    return function(array, item, idx) {      var i = 0, length = _getLength(array);      if (typeof idx == 'number') {        if (dir > 0) {          i = idx >= 0 ? idx : Math.max(idx + length, i);        } else {          length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;        }      } else if (sortedIndex && idx && length) {        idx = sortedIndex(array, item);        return array[idx] === item ? idx : -1;      }      if (item !== item) {        idx = predicateFind(_setup.slice.call(array, i, length), _isNaN);        return idx >= 0 ? idx + i : -1;      }      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {        if (array[idx] === item) return idx;      }      return -1;    };  }  return createIndexFinder;});
 |