/**
 * Append any supplied arguments to the end of the array, in the order given.
 * @return the new length of the array
 * @author <a href="http://hexmen.com/blog/">Ash Searle</a>
 * @license http://creativecommons.org/licenses/by/2.5/
 */
Array.prototype.push = function() {
    var n = this.length >>> 0;
    for (var i = 0; i < arguments.length; i++) {
	this[n] = arguments[i];
	n = n + 1 >>> 0;
    }
    this.length = n;
    return n;
};

/**
 * Remove the last element of the array and return it.
 * @return the element removed (if any), otherwise return <code>undefined</code>
 * @author <a href="http://hexmen.com/blog/">Ash Searle</a>
 * @license http://creativecommons.org/licenses/by/2.5/
 */
Array.prototype.pop = function() {
    var n = this.length >>> 0, value;
    if (n) {
	value = this[--n];
	delete this[n];
    }
    this.length = n;
    return value;
};


