forked from 0x2620/oxjs
new build system: build in /build, dev version in /dev; split up Ox.js; fix tests
This commit is contained in:
parent
bbef38f0a9
commit
d0fe279a0f
366 changed files with 8165 additions and 161926 deletions
118
source/Ox/js/Fallback.js
Normal file
118
source/Ox/js/Fallback.js
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = 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 = [],
|
||||
val;
|
||||
for (i = 0; i < len; i++) {
|
||||
// save val in case fn mutates it
|
||||
if (i in arr && fn.call(that, val = arr[i], i, arr)) {
|
||||
ret.push(val);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach) {
|
||||
Array.prototype.forEach = function(fn, that) {
|
||||
if (this === void 0 || this === null || typeof fn !== 'function') {
|
||||
throw new TypeError();
|
||||
}
|
||||
var arr = Object(this),
|
||||
i,
|
||||
len = arr.length >>> 0;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in arr) {
|
||||
fn.call(that, arr[i], i, arr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function(val) {
|
||||
if (this === void 0 || this === null) {
|
||||
throw new TypeError();
|
||||
}
|
||||
var arr = Object(this),
|
||||
i,
|
||||
len = arr.length >>> 0;
|
||||
ret = -1;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in arr && arr[i] === val) {
|
||||
ret = val;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = 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 = new Array(len);
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in arr) {
|
||||
ret[i] == fn.call(that, arr[i], i, arr);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce
|
||||
if (!Array.prototype.reduce) {
|
||||
Array.prototype.reduce = function reduce(fn, ret) {
|
||||
if (this === void 0 || this === null || typeof fn !== 'function') {
|
||||
throw new TypeError();
|
||||
}
|
||||
var arr = Object(this),
|
||||
i,
|
||||
len = this.length;
|
||||
if (!len && ret === void 0) {
|
||||
throw new TypeError();
|
||||
}
|
||||
if (ret === void 0) {
|
||||
ret = arr[0];
|
||||
i = 1;
|
||||
}
|
||||
for (i = i || 0; i < len ; ++i) {
|
||||
if (i in arr) {
|
||||
ret = fn.call(void 0, ret, arr[i], i, arr);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = function(obj) {
|
||||
if (obj !== Object(obj)) {
|
||||
throw new TypeError();
|
||||
}
|
||||
var key,
|
||||
ret = [];
|
||||
for (key in obj) {
|
||||
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
||||
ret.push(key);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue