Remove unneeded compatibility polyfills
- `Object.create` supported with IE9+: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Browser_compatibility - `Object.keys` supported with IE9+: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#Browser_compatibility - `Array.prototype.filter` supported in IE9+: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter#Browser_compatibility - `Array.prototype.indexOf` supported in IE9+: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Browser_compatibility - `Array.prototype.map` supported in IE9+: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Browser_compatibility - `Function.prototype.bind` supported in IE9+: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Browser_compatibility - `String.prototype.trim` supported with IE9+: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Browser_compatibility - `outerHTML` supported with Firefox 11+: https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML#Browser_compatibility - `window.devicePixelRatio` supported in IE11+: http://caniuse.com/#feat=devicepixelratio Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
f7f2711547
commit
f7ca3ec201
|
@ -1,155 +0,0 @@
|
|||
/**
|
||||
* 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) {
|
||||
Function.prototype.bind = function (oThis) {
|
||||
if (typeof this !== "function") {
|
||||
// closest thing possible to the ECMAScript 5 internal IsCallable function
|
||||
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
|
||||
}
|
||||
|
||||
var aArgs = Array.prototype.slice.call(arguments, 1),
|
||||
fToBind = this,
|
||||
fNOP = function () {},
|
||||
fBound = function () {
|
||||
return fToBind.apply(this instanceof fNOP && oThis
|
||||
? this
|
||||
: oThis,
|
||||
aArgs.concat(Array.prototype.slice.call(arguments)));
|
||||
};
|
||||
|
||||
fNOP.prototype = this.prototype;
|
||||
fBound.prototype = new fNOP();
|
||||
|
||||
return fBound;
|
||||
};
|
||||
}
|
||||
|
||||
//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim
|
||||
if(!String.prototype.trim) {
|
||||
String.prototype.trim = function () {
|
||||
return this.replace(/^\s+|\s+$/g,'');
|
||||
};
|
||||
}
|
||||
|
||||
// Older Firefoxes doesn't support outerHTML
|
||||
// From http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox#answer-3819589
|
||||
function outerHTML(node){
|
||||
// In newer browsers use the internal property otherwise build a wrapper.
|
||||
return node.outerHTML || (
|
||||
function(n){
|
||||
var div = document.createElement('div'), h;
|
||||
div.appendChild( n.cloneNode(true) );
|
||||
h = div.innerHTML;
|
||||
div = null;
|
||||
return h;
|
||||
})(node);
|
||||
}
|
||||
|
||||
// devicePixelRatio for IE10
|
||||
window.devicePixelRatio = window.devicePixelRatio ||
|
||||
window.screen.deviceXDPI / window.screen.logicalXDPI || 1;
|
|
@ -20,7 +20,6 @@
|
|||
"placeholder.js"
|
||||
],
|
||||
"modules": [
|
||||
"compatibility.js",
|
||||
"jquery.ocdialog.js",
|
||||
"oc-dialogs.js",
|
||||
"js.js",
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
},
|
||||
// From stackoverflow.com/questions/1408289/best-way-to-do-variable-interpolation-in-javascript
|
||||
_build: function(o){
|
||||
var data = this.elem.attr('type') === 'text/template' ? this.elem.html() : outerHTML(this.elem.get(0));
|
||||
var data = this.elem.attr('type') === 'text/template' ? this.elem.html() : this.elem.get(0).outerHTML;
|
||||
try {
|
||||
return data.replace(/{([^{}]*)}/g,
|
||||
function (a, b) {
|
||||
|
|
|
@ -143,7 +143,6 @@ class OC_Template extends \OC\Template\Base {
|
|||
OC_Util::addScript("oc-dialogs", null, true);
|
||||
OC_Util::addScript("jquery.ocdialog", null, true);
|
||||
OC_Util::addStyle("jquery.ocdialog");
|
||||
OC_Util::addScript("compatibility", null, true);
|
||||
OC_Util::addScript('files/fileinfo');
|
||||
OC_Util::addScript('files/client');
|
||||
|
||||
|
|
Loading…
Reference in New Issue