Skip to content
Snippets Groups Projects
Commit 75af38c1 authored by Thomas Tanghus's avatar Thomas Tanghus
Browse files

Move compatibility functions to compatibility.js and add two more.

parent 248e097f
No related branches found
No related tags found
No related merge requests found
/**
* implement Object.create for browsers without native support
*/
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
/**
* implement Object.keys for browsers without native support
*/
if (typeof Object.keys !== 'function') {
Object.keys = function(o) {
if (o !== Object(o)) {
throw new TypeError('Object.keys called on a non-object');
}
var k=[],p;
for (p in o) {
if (Object.prototype.hasOwnProperty.call(o,p)) {
k.push(p);
}
}
return k;
}
}
/**
* implement Array.filter for browsers without native support
*/
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length >>> 0;
if (typeof fun !== "function"){
throw new TypeError();
}
var res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
/**
* implement Array.indexOf for browsers without native support
*/
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0){
from += len;
}
for (; from < len; from++)
{
if (from in this && this[from] === elt){
return from;
}
}
return -1;
};
}
/**
* implement Array.map for browsers without native support
*/
if (!Array.prototype.map){
Array.prototype.map = function(fun /*, thisp */){
"use strict";
if (this === void 0 || this === null){
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function"){
throw new TypeError();
}
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++){
if (i in t){
res[i] = fun.call(thisp, t[i], i, t);
}
}
return res;
};
}
//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind
if (!Function.prototype.bind) {
......
......@@ -439,52 +439,6 @@ if(typeof localStorage !=='undefined' && localStorage !== null){
};
}
/**
* implement Array.filter for browsers without native support
*/
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun /*, thisp*/) {
var len = this.length >>> 0;
if (typeof fun !== "function"){
throw new TypeError();
}
var res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in this) {
var val = this[i]; // in case fun mutates this
if (fun.call(thisp, val, i, this))
res.push(val);
}
}
return res;
};
}
/**
* implement Array.indexOf for browsers without native support
*/
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length;
var from = Number(arguments[1]) || 0;
from = (from < 0) ? Math.ceil(from) : Math.floor(from);
if (from < 0){
from += len;
}
for (; from < len; from++)
{
if (from in this && this[from] === elt){
return from;
}
}
return -1;
};
}
/**
* check if the browser support svg images
*/
......@@ -704,32 +658,6 @@ $(document).ready(function(){
});
});
if (!Array.prototype.map){
Array.prototype.map = function(fun /*, thisp */){
"use strict";
if (this === void 0 || this === null){
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function"){
throw new TypeError();
}
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++){
if (i in t){
res[i] = fun.call(thisp, t[i], i, t);
}
}
return res;
};
}
/**
* Filter Jquery selector by attribute value
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment