From aebd6aacff46a2b8653bed99b43ad39613cb69e0 Mon Sep 17 00:00:00 2001 From: rolux Date: Fri, 25 May 2012 15:24:27 +0200 Subject: [PATCH] add Array.prototype.every and Array.prototype.some --- source/Ox/js/Fallback.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/source/Ox/js/Fallback.js b/source/Ox/js/Fallback.js index 56788cdd..1db44e28 100644 --- a/source/Ox/js/Fallback.js +++ b/source/Ox/js/Fallback.js @@ -1,5 +1,25 @@ 'use strict'; +// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every +if (!Array.prototype.every) { + Array.prototype.every = function(fn, that) { + if (this === void 0 || this === null || typeof fn !== 'function') { + throw new TypeError(); + } + var arr = Object(this), + i, + len = arr.length >>> 0, + ret = true; + for (i = 0; i < len; i++) { + if (i in arr && !fn.call(that, arr[i], i, arr)) { + ret = false; + break; + } + } + return ret; + }; +} + // see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter if (!Array.prototype.filter) { Array.prototype.filter = function(fn, that) { @@ -97,6 +117,26 @@ if (!Array.prototype.map) { }; } +// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some +if (!Array.prototype.some) { + Array.prototype.some = function(fn, that) { + if (this === void 0 || this === null || typeof fn !== 'function') { + throw new TypeError(); + } + var arr = Object(this), + i, + len = arr.length >>> 0, + ret = false; + for (i = 0; i < len; i++) { + if (i in arr && fn.call(that, arr[i], i, arr)) { + ret = true; + break; + } + } + return ret; + }; +} + // see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce if (!Array.prototype.reduce) { Array.prototype.reduce = function(fn, ret) {