text: 'use strict';
  
  var baseFindIndex = require('./internal/baseFindIndex');
  var baseIsNaN = require('./internal/baseIsNaN');
  var strictLastIndexOf = require('./internal/strictLastIndexOf');
  var toInteger = require('./toInteger');
  
  /* Built-in method references for those with the same name as other `lodash` methods. */
  var nativeMax = Math.max;
  var nativeMin = Math.min;
  
  /**
   * This method is like `_.indexOf` except that it iterates over elements of
   * `array` from right to left.
   *
   * @static
   * @since 0.1.0
   * @category Array
   * @param {Array} array The array to inspect.
   * @param {*} value The value to search for.
   * @param {number} [fromIndex=array.length-1] The index to search from.
   * @returns {number} Returns the index of the matched value, else `-1`.
   * @example
   *
   * lastIndexOf([1, 2, 1, 2], 2); => 3
   *
   * * Search from the `fromIndex` *
   * lastIndexOf([1, 2, 1, 2], 2, 2); => 1
   */
  function lastIndexOf(array, value, fromIndex) {
      var length = array == null ? 0 : array.length;
      if (!length) {
          return -1;
      }
      var index = length;
      if (fromIndex !== undefined) {
          index = toInteger(fromIndex);
          index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
      }
      return value === value
          ? strictLastIndexOf(array, value, index)
          : baseFindIndex(array, baseIsNaN, index, true);
  }
  
  module.exports = lastIndexOf;
  