function assign( x, y, stride, offset ) {
	var xo = arraylike2object( x );
	var yo = arraylike2object( y );
	if (
		xo.accessorProtocol ||
		yo.accessorProtocol
	) {
		// If provided a complex number array, reinterpret as a real typed array and test interleaved real and imaginary components, where we consider a complex number to be truthy if at least one component is non-zero...
		if ( isComplex128Array( x ) ) {
			complex( reinterpret128( x, 0 ), yo, stride, offset );
		} else if ( isComplex64Array( x ) ) {
			complex( reinterpret64( x, 0 ), yo, stride, offset );
		} else if ( isBooleanArray( x ) ) {
			boolean( reinterpretBoolean( x, 0 ), yo, stride, offset );
		} else {
			accessors( xo, yo, stride, offset );
		}
		return y;
	}
	indexed( x, y, stride, offset );
	return y;
}
Cumulatively tests whether at least one element in an array is truthy and assigns results to a provided output array.

@param {Collection} x - input array
@param {Collection} y - output array
@param {integer} stride - output array stride
@param {NonNegativeInteger} offset - output array offset
@returns {Collection} output array

@example
var x = [ false, false, true, false, false ];
var y = [ false, null, false, null, false, null, false, null, false, null ];

var out = assign( x, y, 2, 0 );
// returns [ false, null, false, null, true, null, true, null, true, null ]

var bool = ( y === out );
// returns true