function shift( obj ) {
	var len;
	var v;
	var i;
	if ( obj.length === 0 ) {
		return [ obj, void 0 ];
	}
	len = obj.length - 1;
	v = obj[ 0 ];

	// Shift all elements down...
	for ( i = 0; i < len; i++ ) {
		obj[ i ] = obj[ i+1 ];
	}
	delete obj[ len ];
	obj.length = len;
	return [ obj, v ];
}
Removes and returns the first element of an array-like object.

@private
@param {Object} obj - input array-like object
@returns {Array} input object and the removed element

@example
var obj = {
    'length': 2,
    '0': 1.0,
    '1': 2.0
};

var out = shift( obj );
// returns [ { 'length': 1, '0': 2.0 }, 1.0 ]