if (!Array.prototype.each) {
    /**
     * Executes the specified function once for every item in the array, passing each
     * item as the first, index as second and array length as third parameter. 
     * Returning false from the function will stop the iteration.
     * @param {Function} fn The function to execute for each item.
     * @param {Object} scope (optional) The scope in which to execute the function.
     */
    Array.prototype.each = function(fn, scope) {
        var items = [].concat(this); // each safe for removal
        for(var i = 0, len = items.length; i < len; i++){
            if(fn.call(scope || items[i], items[i], i, len) === false){
                break
            }
        }
    }
}
