summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2016-10-19 23:08:11 +0200
committerMorris Jobke <hey@morrisjobke.de>2016-10-20 10:17:18 +0200
commitf7ca3ec2012b0790a78cb83b7f2f07aef0445905 (patch)
tree35e7e9fdaf98662f7d36a04d12165c8673d4d547 /core
parentf7f271154702883367f418c4f9e35418ab4219ef (diff)
downloadnextcloud-server-f7ca3ec2012b0790a78cb83b7f2f07aef0445905.tar.gz
nextcloud-server-f7ca3ec2012b0790a78cb83b7f2f07aef0445905.zip
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>
Diffstat (limited to 'core')
-rw-r--r--core/js/compatibility.js155
-rw-r--r--core/js/core.json1
-rw-r--r--core/js/octemplate.js2
3 files changed, 1 insertions, 157 deletions
diff --git a/core/js/compatibility.js b/core/js/compatibility.js
deleted file mode 100644
index ac942d202e8..00000000000
--- a/core/js/compatibility.js
+++ /dev/null
@@ -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;
diff --git a/core/js/core.json b/core/js/core.json
index e651c9d7597..c98928d0fed 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -20,7 +20,6 @@
"placeholder.js"
],
"modules": [
- "compatibility.js",
"jquery.ocdialog.js",
"oc-dialogs.js",
"js.js",
diff --git a/core/js/octemplate.js b/core/js/octemplate.js
index 67aa7d69cce..b24ad95c2b0 100644
--- a/core/js/octemplate.js
+++ b/core/js/octemplate.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) {