function lastIndexOfSameValue( x, searchElement, fromIndex ) {
	if ( fromIndex < 0 ) {
		fromIndex += x.length;
		if ( fromIndex < 0 ) {
			return -1;
		}
	} else if ( fromIndex > x.length ) {
		fromIndex = x.length - 1;
	}
	if ( isAccessorArray( x ) ) {
		if ( isComplexTypedArray( x ) ) {
			return complex( x, searchElement, fromIndex );
		}
		if ( isBooleanArray( x ) ) {
			return boolean( x, searchElement, fromIndex );
		}
		return accessors( x, searchElement, fromIndex );
	}
	return indexed( x, searchElement, fromIndex );
}
Returns the index of the last element which equals a provided search element according to the same value algorithm.

## Notes

-   The function uses the [SameValue Algorithm][ecma-262-same-value-algorithm], as specified in ECMAScript 5.
-   In contrast to the strict equality operator `===`, `-0` and `+0` are distinguishable and `NaNs` are the same.
-   If unable to find an element which equals a provided search element, the function returns `-1`.

[ecma-262-same-value-algorithm]: http://ecma-international.org/ecma-262/5.1/#sec-9.12

@param {Collection} x - input array
@param {*} searchElement - search element
@param {integer} fromIndex - starting index (inclusive)
@returns {integer} index

@example
var x = [ 1, 2, 3, 4 ];

var idx = lastIndexOfSameValue( x, 2, 3 );
// returns 1

@example
var Int32Array = require( '@stdlib/array/int32' );

var x = new Int32Array( [ 1, 2, 3, 4 ] );

var idx = lastIndexOfSameValue( x, 2, 3 );
// returns 1