function arrayIndexOf(arr, search, fromIndex, increment) {
    var length = arr.length,
        fromRight = increment == -1,
        start = fromRight ? length - 1 : 0,
        index = toIntegerWithDefault(fromIndex, start);
    if(index < 0) {
      index = length + index;
    }
    if((!fromRight && index < 0) || (fromRight && index >= length)) {
      index = start;
    }
    while((fromRight && index >= 0) || (!fromRight && index < length)) {
      if(arr[index] === search) {
        return index;
      }
      index += increment;
    }
    return -1;
  }
function arrayIndexOf(arr, search, fromIndex, increment) {
    var length = arr.length,
        fromRight = increment == -1,
        start = fromRight ? length - 1 : 0,
        index = toIntegerWithDefault(fromIndex, start);
    if(index < 0) {
      index = length + index;
    }
    if((!fromRight && index < 0) || (fromRight && index >= length)) {
      index = start;
    }
    while((fromRight && index >= 0) || (!fromRight && index < length)) {
      if(arr[index] === search) {
        return index;
      }
      index += increment;
    }
    return -1;
  }
function arrayIndexOf ( arr , search , fromIndex , increment ) { var length = arr . length , fromRight = increment == - 1 , start = fromRight ? length - 1 : 0 , index = toIntegerWithDefault ( fromIndex , start ) ; if ( index < 0 ) { index = length + index ; } if ( ( ! fromRight && index < 0 ) || ( fromRight && index >= length ) ) { index = start ; } while ( ( fromRight && index >= 0 ) || ( ! fromRight && index < length ) ) { if ( arr [ index ] === search ) { return index ; } index += increment ; } return - 1 ; }
*
Array module

* ECMA5 methods
* Array module