function resolveIndex( str, max, strict ) {
	var idx;
	var i;

	idx = parseInt( str, 10 );
	i = normalizeIndex( idx, max-1 );
	if ( i === -1 ) {
		if ( strict ) {
			throw new RangeError( format( 'invalid operation. Index exceeds array bounds.' ) );
		}
		// Return the non-normalized index, as this should fallback to default property handling and returning "undefined":
		return idx;
	}
	return i;
}
Resolves an integer index from an integer string.

@private
@param {string} str - integer string
@param {NonNegativeInteger} max - index upper bound (exclusive)
@param {boolean} strict - boolean indicating whether to enforce strict bounds checking
@throws {RangeError} index exceeds array bounds
@returns {integer} integer index

@example
var idx = resolveIndex( '-1', 10, false );
// returns 9

@example
var idx = resolveIndex( '-20', 10, false );
// returns -20