function copy( x ) {
	var out;
	var len;
	var get;
	var i;

	// Resolve an accessor for retrieving input array elements:
	get = resolveGetter( x );

	// Get the number of elements to copy:
	len = x.length;

	// Loop over the elements...
	out = [];
	for ( i = 0; i < len; i++ ) {
		out.push( get( x, i ) ); // ensure "fast" elements
	}
	return out;
}
Copies the elements of an array-like object to a new "generic" array.

@param {Collection} x - input array
@returns {Array} output array

@example
var out = copy( [ 1, 2, 3 ] );
// returns [ 1, 2, 3 ]