function minmaxViewBufferIndex( shape, strides, offset ) {
	var ndims;
	var min;
	var max;
	var s;
	var i;

	ndims = shape.length;
	min = offset;
	max = offset;
	for ( i = 0; i < ndims; i++ ) {
		if ( shape[ i ] === 0 ) {
			return [ offset, offset ];
		}
		s = strides[ i ];
		if ( s > 0 ) {
			max += s * ( shape[i]-1 );
		} else if ( s < 0 ) {
			min += s * ( shape[i]-1 ); // decrements min
		}
	}
	return [ min, max ];
}
Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.

@param {NonNegativeIntegerArray} shape - array shape
@param {IntegerArray} strides - stride array
@param {NonNegativeInteger} offset - index offset
@returns {Array} linear indices

@example
var shape = [ 10, 10 ];
var strides = [ 10, 1 ];
var offset = 10;

var idx = minmaxViewBufferIndex( shape, strides, offset );
// returns [ 10, 109 ]

@example
var shape = [ 10, 10 ];
var strides = [ -10, -1 ];
var offset = 99;

var idx = minmaxViewBufferIndex( shape, strides, offset );
// returns [ 0, 99 ]

@example
var shape = [ 10, 10 ];
var strides = [ 1, 10 ];
var offset = 10;

var idx = minmaxViewBufferIndex( shape, strides, offset );
// returns [ 10, 109 ]

@example
var shape = [ 10, 10 ];
var strides = [ -1, -10 ];
var offset = 99;

var idx = minmaxViewBufferIndex( shape, strides, offset );
// returns [ 0, 99 ]