function reduceRight( x, initial, fcn, thisArg ) {
	var xbuf;
	var get;
	var acc;
	var i;

	// Cache reference to the input data:
	xbuf = x.data;

	// Cache the element accessor:
	get = x.accessors[ 0 ];

	// Iterate over each element...
	acc = initial;
	for ( i = xbuf.length-1; i >= 0; i-- ) {
		acc = fcn.call( thisArg, acc, get( xbuf, i ), i, xbuf );
	}
	return acc;
}
Applies a function against an accumulator and each element in an array while iterating from right to left and returns the accumulated result.

@private
@param {Object} x - object containing input array data
@param {ArrayLikeObject} x.data - input array data
@param {Array<Function>} x.accessors - input array accessors
@param {*} initial - initial value
@param {Function} fcn - function to apply
@param {*} thisArg - function execution context
@returns {*} accumulated result

@example
function sum( acc, value ) {
    return acc + value;
}

// Define a getter:
function getter( buf, idx ) {
    return buf[ idx ];
}

// Create the input array object:
var x = {
    'data': [ 1, 2, 3, 4 ],
    'accessors': [ getter ]
};

// Compute the sum:
var out = reduceRight( x, 0, sum );
// returns 10