Replace augment.js with conditional polyfills for ES5 and ES6
This commit is contained in:
parent
9c83235f72
commit
fa0a933c24
7 changed files with 8487 additions and 446 deletions
|
@ -67,6 +67,11 @@ folder 'vendor/assets' do
|
|||
end
|
||||
end
|
||||
|
||||
folder 'polyfill' do
|
||||
file 'es5.js', 'https://polyfill.io/v3/polyfill.js?features=es5&flags=gated,always'
|
||||
file 'es6.js', 'https://polyfill.io/v3/polyfill.js?features=es6&flags=gated,always'
|
||||
end
|
||||
|
||||
folder 'javascripts' do
|
||||
file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js'
|
||||
file 'bowser.js', 'https://github.com/lancedikson/bowser/releases/download/1.9.4/bowser.js'
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
//= require jquery.throttle-debounce
|
||||
//= require bootstrap.tooltip
|
||||
//= require bootstrap.dropdown
|
||||
//= require augment
|
||||
//= require osm
|
||||
//= require leaflet
|
||||
//= require leaflet.osm
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/>
|
||||
<%= javascript_include_tag "html5shiv" unless browser.html5? %>
|
||||
<%= javascript_include_tag "es5" unless browser.es5? %>
|
||||
<%= javascript_include_tag "es6" unless browser.es6? %>
|
||||
<%= javascript_include_tag "application" %>
|
||||
<%= javascript_include_tag "i18n/" + I18n.locale.to_s %>
|
||||
<%= stylesheet_link_tag "screen-#{dir}", :media => "screen" %>
|
||||
|
|
|
@ -20,7 +20,7 @@ Rails.application.config.assets.precompile += %w[leaflet-all.css leaflet.ie.css]
|
|||
Rails.application.config.assets.precompile += %w[id.js id.css]
|
||||
Rails.application.config.assets.precompile += %w[embed.js embed.css]
|
||||
Rails.application.config.assets.precompile += %w[errors.css]
|
||||
Rails.application.config.assets.precompile += %w[html5shiv.js]
|
||||
Rails.application.config.assets.precompile += %w[html5shiv.js es5.js es6.js]
|
||||
Rails.application.config.assets.precompile += %w[images/marker-*.png img/*-handle.png]
|
||||
Rails.application.config.assets.precompile += %w[swfobject.js expressInstall.swf]
|
||||
Rails.application.config.assets.precompile += %w[potlatch2.swf]
|
||||
|
|
444
vendor/assets/augment.js/augment.js
vendored
444
vendor/assets/augment.js/augment.js
vendored
|
@ -1,444 +0,0 @@
|
|||
// augment.js JavaScript 1.8.5 methods for all, version: 0.4.2
|
||||
// using snippets from Mozilla - https://developer.mozilla.org/en/JavaScript
|
||||
// (c) 2011 Oliver Nightingale
|
||||
//
|
||||
// Released under MIT license.
|
||||
//
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every
|
||||
if (!Array.prototype.every) {
|
||||
Array.prototype.every = 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 thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in t && !fun.call(thisp, t[i], i, t))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter
|
||||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = 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 = [];
|
||||
var thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in t) {
|
||||
var val = t[i]; // in case fun mutates this
|
||||
if (fun.call(thisp, val, i, t))
|
||||
res.push(val);
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/foreach
|
||||
if (!Array.prototype.forEach) {
|
||||
Array.prototype.forEach = 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 thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in t)
|
||||
fun.call(thisp, t[i], i, t);
|
||||
}
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
|
||||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function(searchElement /*, fromIndex */) {
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (len === 0)
|
||||
return -1;
|
||||
|
||||
var n = 0;
|
||||
if (arguments.length > 0) {
|
||||
n = Number(arguments[1]);
|
||||
if (n !== n) // shortcut for verifying if it's NaN
|
||||
n = 0;
|
||||
else if (n !== 0 && n !== (Infinity) && n !== -(Infinity))
|
||||
n = (n > 0 || -1) * Math.floor(Math.abs(n));
|
||||
}
|
||||
|
||||
if (n >= len)
|
||||
return -1;
|
||||
|
||||
var k = n >= 0
|
||||
? n
|
||||
: Math.max(len - Math.abs(n), 0);
|
||||
|
||||
for (; k < len; k++) {
|
||||
if (k in t && t[k] === searchElement)
|
||||
return k;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray
|
||||
Array.isArray = Array.isArray || function(o) { return Object.prototype.toString.call(o) === '[object Array]'; };
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf
|
||||
if (!Array.prototype.lastIndexOf) {
|
||||
Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (len === 0)
|
||||
return -1;
|
||||
|
||||
var n = len;
|
||||
if (arguments.length > 1) {
|
||||
n = Number(arguments[1]);
|
||||
if (n !== n)
|
||||
n = 0;
|
||||
else if (n !== 0 && n !== (Infinity) && n !== -(Infinity))
|
||||
n = (n > 0 || -1) * Math.floor(Math.abs(n));
|
||||
}
|
||||
|
||||
var k = n >= 0
|
||||
? Math.min(n, len - 1)
|
||||
: len - Math.abs(n);
|
||||
|
||||
for (; k >= 0; k--) {
|
||||
if (k in t && t[k] === searchElement)
|
||||
return k;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map
|
||||
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/JavaScript/Reference/Global_Objects/Array/Reduce
|
||||
if (!Array.prototype.reduce) {
|
||||
Array.prototype.reduce = function(fun /*, initialValue */) {
|
||||
"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();
|
||||
|
||||
// no value to return if no initial value and an empty array
|
||||
if (len == 0 && arguments.length == 1)
|
||||
throw new TypeError();
|
||||
|
||||
var k = 0;
|
||||
var accumulator;
|
||||
if (arguments.length >= 2) {
|
||||
accumulator = arguments[1];
|
||||
} else {
|
||||
do {
|
||||
if (k in t) {
|
||||
accumulator = t[k++];
|
||||
break;
|
||||
}
|
||||
|
||||
// if array contains no values, no initial value to return
|
||||
if (++k >= len)
|
||||
throw new TypeError();
|
||||
}
|
||||
while (true);
|
||||
}
|
||||
|
||||
while (k < len) {
|
||||
if (k in t)
|
||||
accumulator = fun.call(undefined, accumulator, t[k], k, t);
|
||||
k++;
|
||||
}
|
||||
|
||||
return accumulator;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/ReduceRight
|
||||
if (!Array.prototype.reduceRight) {
|
||||
Array.prototype.reduceRight = function(callbackfn /*, initialValue */) {
|
||||
"use strict";
|
||||
|
||||
if (this === void 0 || this === null)
|
||||
throw new TypeError();
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof callbackfn !== "function")
|
||||
throw new TypeError();
|
||||
|
||||
// no value to return if no initial value, empty array
|
||||
if (len === 0 && arguments.length === 1)
|
||||
throw new TypeError();
|
||||
|
||||
var k = len - 1;
|
||||
var accumulator;
|
||||
if (arguments.length >= 2) {
|
||||
accumulator = arguments[1];
|
||||
} else {
|
||||
do {
|
||||
if (k in this) {
|
||||
accumulator = this[k--];
|
||||
break;
|
||||
}
|
||||
|
||||
// if array contains no values, no initial value to return
|
||||
if (--k < 0)
|
||||
throw new TypeError();
|
||||
}
|
||||
while (true);
|
||||
}
|
||||
|
||||
while (k >= 0) {
|
||||
if (k in t)
|
||||
accumulator = callbackfn.call(undefined, accumulator, t[k], k, t);
|
||||
k--;
|
||||
}
|
||||
|
||||
return accumulator;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some
|
||||
if (!Array.prototype.some) {
|
||||
Array.prototype.some = 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 thisp = arguments[1];
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (i in t && fun.call(thisp, t[i], i, t))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
}
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/now
|
||||
if (!Date.now) {
|
||||
Date.now = function now () {
|
||||
return +new Date();
|
||||
};
|
||||
}
|
||||
if (!Date.prototype.toISOString) {
|
||||
Date.prototype.toISOString = (function () {
|
||||
|
||||
var pad = function (n, length) {
|
||||
length = length || 2
|
||||
return (n = n + "", n.length === length) ? n : pad("0" + n, length);
|
||||
}
|
||||
|
||||
return function () {
|
||||
var year = this.getUTCFullYear()
|
||||
year = (year < 0 ? '-' : (year > 9999 ? '+' : '')) + ('00000' + Math.abs(year)).slice(0 <= year && year <= 9999 ? -4 : -6);
|
||||
|
||||
var date = [year, pad(this.getUTCMonth() + 1), pad(this.getUTCDate())].join("-")
|
||||
var time = [pad(this.getUTCHours()), pad(this.getUTCMinutes()), pad(this.getUTCSeconds())].join(":") + "." + pad(this.getUTCMilliseconds(), 3)
|
||||
return [date, time].join("T") + "Z"
|
||||
}
|
||||
})()
|
||||
};
|
||||
if (!Date.prototype.toJSON) {
|
||||
Date.prototype.toJSON = Date.prototype.toJSON
|
||||
};
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
|
||||
if (!Function.prototype.bind ) {
|
||||
|
||||
Function.prototype.bind = function(obj) {
|
||||
|
||||
if (typeof this !== 'function') throw new TypeError ("Function.prototype.bind - what is trying to be bound is not callable")
|
||||
|
||||
var slice = Array.prototype.slice,
|
||||
args = slice.call(arguments, 1),
|
||||
self = this,
|
||||
nop = function () {},
|
||||
bound = function () {
|
||||
|
||||
if (nop.prototype && this instanceof nop) {
|
||||
var result = self.apply(new nop, args.concat(slice.call(arguments)))
|
||||
return (Object(result) === result) ? result : self
|
||||
} else {
|
||||
return self.apply(obj, args.concat(slice.call(arguments)))
|
||||
};
|
||||
};
|
||||
|
||||
nop.prototype = self.prototype;
|
||||
|
||||
bound.prototype = new nop();
|
||||
|
||||
return bound;
|
||||
};
|
||||
}
|
||||
;(function () { "use strict"
|
||||
|
||||
var ensureIsObject = function (param) {
|
||||
if (param !== Object(param)) throw new TypeError('Object.getPrototypeOf called on non-object');
|
||||
}
|
||||
|
||||
if (!Object.getPrototypeOf) {
|
||||
if (typeof "test".__proto__ === "object") {
|
||||
Object.getPrototypeOf = function (obj) {
|
||||
ensureIsObject(obj)
|
||||
return obj.__proto__
|
||||
}
|
||||
} else {
|
||||
Object.getPrototypeOf = function (obj) {
|
||||
ensureIsObject(obj)
|
||||
return obj.constructor.prototype
|
||||
}
|
||||
};
|
||||
};
|
||||
})();
|
||||
// http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
|
||||
if (!Object.keys) {
|
||||
Object.keys = (function () {
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty,
|
||||
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
|
||||
dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
],
|
||||
dontEnumsLength = dontEnums.length
|
||||
|
||||
return function (obj) {
|
||||
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object')
|
||||
|
||||
var result = []
|
||||
|
||||
for (var prop in obj) {
|
||||
if (hasOwnProperty.call(obj, prop)) result.push(prop)
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
for (var i=0; i < dontEnumsLength; i++) {
|
||||
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i])
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
})()
|
||||
};if (!String.prototype.trim) {
|
||||
String.prototype.trim = (function () {
|
||||
|
||||
var trimLeft = /^\s+/,
|
||||
trimRight = /\s+$/
|
||||
|
||||
return function () {
|
||||
return this.replace(trimLeft, "").replace(trimRight, "")
|
||||
}
|
||||
})()
|
||||
};
|
||||
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex
|
||||
// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
|
||||
if (!Array.prototype.findIndex) {
|
||||
Object.defineProperty(Array.prototype, 'findIndex', {
|
||||
value: function(predicate) {
|
||||
// 1. Let O be ? ToObject(this value).
|
||||
if (this == null) {
|
||||
throw new TypeError('"this" is null or not defined');
|
||||
}
|
||||
|
||||
var o = Object(this);
|
||||
|
||||
// 2. Let len be ? ToLength(? Get(O, "length")).
|
||||
var len = o.length >>> 0;
|
||||
|
||||
// 3. If IsCallable(predicate) is false, throw a TypeError exception.
|
||||
if (typeof predicate !== 'function') {
|
||||
throw new TypeError('predicate must be a function');
|
||||
}
|
||||
|
||||
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||||
var thisArg = arguments[1];
|
||||
|
||||
// 5. Let k be 0.
|
||||
var k = 0;
|
||||
|
||||
// 6. Repeat, while k < len
|
||||
while (k < len) {
|
||||
// a. Let Pk be ! ToString(k).
|
||||
// b. Let kValue be ? Get(O, Pk).
|
||||
// c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
|
||||
// d. If testResult is true, return k.
|
||||
var kValue = o[k];
|
||||
if (predicate.call(thisArg, kValue, k, o)) {
|
||||
return k;
|
||||
}
|
||||
// e. Increase k by 1.
|
||||
k++;
|
||||
}
|
||||
|
||||
// 7. Return -1.
|
||||
return -1;
|
||||
},
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
}
|
1821
vendor/assets/polyfill/es5.js
vendored
Normal file
1821
vendor/assets/polyfill/es5.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
6658
vendor/assets/polyfill/es6.js
vendored
Normal file
6658
vendor/assets/polyfill/es6.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue