summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-05-02 12:12:17 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2015-05-02 12:12:17 +0200
commit98843644fd3bd8d8198d9fff7ab17180b7ca097d (patch)
treee48b0b9949cc9513a800d37722c341596fbf9f69 /js
parent8313074915401859de4e6236fa14f9ad428451f5 (diff)
update client libs
Diffstat (limited to 'js')
-rw-r--r--js/vendor/es6-shim/.bower.json8
-rw-r--r--js/vendor/es6-shim/CHANGELOG.md7
-rw-r--r--js/vendor/es6-shim/bower.json2
-rw-r--r--js/vendor/es6-shim/component.json2
-rw-r--r--js/vendor/es6-shim/es6-shim.js85
-rw-r--r--js/vendor/es6-shim/es6-shim.map2
-rw-r--r--js/vendor/es6-shim/es6-shim.min.js4
-rw-r--r--js/vendor/es6-shim/package.json6
8 files changed, 91 insertions, 25 deletions
diff --git a/js/vendor/es6-shim/.bower.json b/js/vendor/es6-shim/.bower.json
index 354c79ee2..fa6307c70 100644
--- a/js/vendor/es6-shim/.bower.json
+++ b/js/vendor/es6-shim/.bower.json
@@ -1,6 +1,6 @@
{
"name": "es6-shim",
- "version": "0.30.0",
+ "version": "0.31.0",
"repo": "paulmillr/es6-shim",
"description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines",
"keywords": [
@@ -28,11 +28,11 @@
"test"
],
"homepage": "https://github.com/paulmillr/es6-shim",
- "_release": "0.30.0",
+ "_release": "0.31.0",
"_resolution": {
"type": "version",
- "tag": "0.30.0",
- "commit": "ba581d8a4b9c1bdbadc71188d18a011f6be638a0"
+ "tag": "0.31.0",
+ "commit": "dbbbe60d5cef7cb64f179c1c6fc483d3a1e26c5f"
},
"_source": "git://github.com/paulmillr/es6-shim.git",
"_target": "~0.*",
diff --git a/js/vendor/es6-shim/CHANGELOG.md b/js/vendor/es6-shim/CHANGELOG.md
index 976cdef7b..8f2b84314 100644
--- a/js/vendor/es6-shim/CHANGELOG.md
+++ b/js/vendor/es6-shim/CHANGELOG.md
@@ -1,5 +1,12 @@
# es6-shim x.x.x (not yet released)
+# es6-shim 0.31.0 (1 May 2015)
+* All Array.prototype methods should use `ToLength`, not `ToUint32`, on `this.length`.
+* Preserve and use original Array.prototype functions (for later shimming)
+* Make String#{startsWith, endsWith, includes} tests a bit more granular.
+* Fix Map/Set invalid receiver error messages for WebKit
+* Update `grunt-saucelabs`, `jscs`
+
# es6-shim 0.30.0 (26 Apr 2015)
* `Map` and `Set` methods are not generic, and must only be called on valid `Map` and `Set` objects.
* Use the native `Number#clz` (in Safari 8, eg) inside `Math.clz32`
diff --git a/js/vendor/es6-shim/bower.json b/js/vendor/es6-shim/bower.json
index 386992c6b..440cc8ee4 100644
--- a/js/vendor/es6-shim/bower.json
+++ b/js/vendor/es6-shim/bower.json
@@ -1,6 +1,6 @@
{
"name": "es6-shim",
- "version": "0.30.0",
+ "version": "0.31.0",
"repo": "paulmillr/es6-shim",
"description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines",
"keywords": [
diff --git a/js/vendor/es6-shim/component.json b/js/vendor/es6-shim/component.json
index 7e18ff677..257db652f 100644
--- a/js/vendor/es6-shim/component.json
+++ b/js/vendor/es6-shim/component.json
@@ -1,6 +1,6 @@
{
"name": "es6-shim",
- "version": "0.30.0",
+ "version": "0.31.0",
"repo": "paulmillr/es6-shim",
"description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines",
"keywords": [
diff --git a/js/vendor/es6-shim/es6-shim.js b/js/vendor/es6-shim/es6-shim.js
index 1ab73a3ea..1e80a9ff4 100644
--- a/js/vendor/es6-shim/es6-shim.js
+++ b/js/vendor/es6-shim/es6-shim.js
@@ -53,6 +53,11 @@
};
var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported();
+ var _forEach = Function.call.bind(Array.prototype.forEach);
+ var _map = Function.call.bind(Array.prototype.map);
+ var _reduce = Function.call.bind(Array.prototype.reduce);
+ var _filter = Function.call.bind(Array.prototype.filter);
+
var defineProperty = function (object, name, value, force) {
if (!force && name in object) { return; }
if (supportsDescriptors) {
@@ -70,7 +75,7 @@
// Define configurable, writable and non-enumerable props
// if they don’t exist.
var defineProperties = function (object, map) {
- Object.keys(map).forEach(function (name) {
+ _forEach(Object.keys(map), function (name) {
var method = map[name];
defineProperty(object, name, method, false);
});
@@ -888,6 +893,60 @@
overrideNative(Array, 'from', ArrayShims.from);
}
+ var toLengthsCorrectly = function (method, reversed) {
+ var obj = { length: -1 };
+ obj[reversed ? ((-1 >>> 0) - 1) : 0] = true;
+ return valueOrFalseIfThrows(function () {
+ method.call(obj, function () {
+ // note: in nonconforming browsers, this will be called
+ // -1 >>> 0 times, which is 4294967295, so the throw matters.
+ throw new RangeError('should not reach here');
+ }, []);
+ });
+ };
+ if (!toLengthsCorrectly(Array.prototype.forEach)) {
+ var originalForEach = Array.prototype.forEach;
+ overrideNative(Array.prototype, 'forEach', function forEach(callbackFn) {
+ if (this.length >= 0) { return originalForEach.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.map)) {
+ var originalMap = Array.prototype.map;
+ overrideNative(Array.prototype, 'map', function map(callbackFn) {
+ if (this.length >= 0) { return originalMap.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.filter)) {
+ var originalFilter = Array.prototype.filter;
+ overrideNative(Array.prototype, 'filter', function filter(callbackFn) {
+ if (this.length >= 0) { return originalFilter.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.some)) {
+ var originalSome = Array.prototype.some;
+ overrideNative(Array.prototype, 'some', function some(callbackFn) {
+ if (this.length >= 0) { return originalSome.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.every)) {
+ var originalEvery = Array.prototype.every;
+ overrideNative(Array.prototype, 'every', function every(callbackFn) {
+ if (this.length >= 0) { return originalEvery.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.reduce)) {
+ var originalReduce = Array.prototype.reduce;
+ overrideNative(Array.prototype, 'reduce', function reduce(callbackFn) {
+ if (this.length >= 0) { return originalReduce.apply(this, arguments); }
+ }, true);
+ }
+ if (!toLengthsCorrectly(Array.prototype.reduceRight, true)) {
+ var originalReduceRight = Array.prototype.reduceRight;
+ overrideNative(Array.prototype, 'reduceRight', function reduceRight(callbackFn) {
+ if (this.length >= 0) { return originalReduceRight.apply(this, arguments); }
+ }, true);
+ }
+
var maxSafeInteger = Math.pow(2, 53) - 1;
defineProperties(Number, {
MAX_SAFE_INTEGER: maxSafeInteger,
@@ -948,9 +1007,9 @@
var keys = Object.keys(Object(source));
var symbols;
if (ES.IsCallable(Object.getOwnPropertySymbols)) {
- symbols = Object.getOwnPropertySymbols(Object(source)).filter(isEnumerableOn(source));
+ symbols = _filter(Object.getOwnPropertySymbols(Object(source)), isEnumerableOn(source));
}
- return keys.concat(symbols || []).reduce(assignTo(source), target);
+ return _reduce(keys.concat(symbols || []), assignTo(source), target);
};
var ObjectShims = {
@@ -959,7 +1018,7 @@
if (!ES.TypeIsObject(target)) {
throw new TypeError('target must be an object');
}
- return Array.prototype.reduce.call(sliceArgs.apply(0, arguments), assignReducer);
+ return _reduce(sliceArgs.apply(0, arguments), assignReducer);
},
// Added in WebKit in https://bugs.webkit.org/show_bug.cgi?id=143865
@@ -1201,7 +1260,7 @@
// sets up proper prototype chain where possible
Object.setPrototypeOf(OrigRegExp, RegExpShim);
}
- Object.getOwnPropertyNames(OrigRegExp).forEach(function (key) {
+ _forEach(Object.getOwnPropertyNames(OrigRegExp), function (key) {
if (key === '$input') { return; } // Chrome < v39 & Opera < 26 have a nonstandard "$input" property
if (key in noop) { return; }
Value.proxy(OrigRegExp, key, RegExpShim);
@@ -1222,7 +1281,7 @@
leftContext: '$`',
rightContext: '$\''
};
- Object.keys(regexGlobals).forEach(function (prop) {
+ _forEach(Object.keys(regexGlobals), function (prop) {
if (prop in RegExp && !(regexGlobals[prop] in RegExp)) {
Value.getter(RegExp, regexGlobals[prop], function get() {
return RegExp[prop];
@@ -1353,8 +1412,8 @@
if (allZero) { return 0; }
var largest = Math.max.apply(Math, numbers);
- var divided = numbers.map(function (number) { return number / largest; });
- var sum = divided.map(square).reduce(add);
+ var divided = _map(numbers, function (number) { return number / largest; });
+ var sum = _reduce(_map(divided, square), add);
return largest * Math.sqrt(sum);
},
@@ -1595,7 +1654,7 @@
};
var triggerPromiseReactions = function (reactions, x) {
- reactions.forEach(function (reaction) {
+ _forEach(reactions, function (reaction) {
enqueue(function () {
// PromiseReactionTask
var handler = reaction.handler;
@@ -1865,7 +1924,7 @@
// Their fast path also requires that the environment preserve
// property insertion order, which is not guaranteed by the spec.
var testOrder = function (a) {
- var b = Object.keys(a.reduce(function (o, k) {
+ var b = Object.keys(_reduce(a, function (o, k) {
o[k] = true;
return o;
}, {}));
@@ -2216,7 +2275,7 @@
var ensureMap = function ensureMap(set) {
if (!set['[[SetData]]']) {
var m = set['[[SetData]]'] = new collectionShims.Map();
- Object.keys(set._storage).forEach(function (k) {
+ _forEach(Object.keys(set._storage), function (k) {
// fast check for leading '$'
if (k.charCodeAt(0) === 36) {
k = k.slice(1);
@@ -2329,7 +2388,7 @@
iterable = arguments[0];
}
if (Array.isArray(iterable) || Type.string(iterable)) {
- Array.prototype.forEach.call(iterable, function (entry) {
+ _forEach(iterable, function (entry) {
m.set(entry[0], entry[1]);
});
} else if (iterable instanceof Map) {
@@ -2785,7 +2844,7 @@
sup: function sub() { return ES.CreateHTML(this, 'sup', '', ''); }
};
defineProperties(String.prototype, stringHTMLshims);
- Object.keys(stringHTMLshims).forEach(function (key) {
+ _forEach(Object.keys(stringHTMLshims), function (key) {
var method = String.prototype[key];
var shouldOverwrite = false;
if (ES.IsCallable(method)) {
diff --git a/js/vendor/es6-shim/es6-shim.map b/js/vendor/es6-shim/es6-shim.map
index 433952cec..a812157a1 100644
--- a/js/vendor/es6-shim/es6-shim.map
+++ b/js/vendor/es6-shim/es6-shim.map
@@ -1 +1 @@
-{"version":3,"sources":["es6-shim.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","not","notThunker","func","notThunk","apply","arguments","throwsError","e","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","Object","defineProperty","supportsDescriptors","object","name","value","force","configurable","enumerable","writable","defineProperties","map","keys","forEach","method","create","prototype","properties","Prototype","supportsSubclassing","C","f","setPrototypeOf","Sub","Subclass","arg","o","constructor","startsWithRejectsRegex","String","startsWith","startsWithHandlesInfinity","Infinity","getGlobal","Function","globals","globalIsFinite","isFinite","hasStrictMode","call","startsWithIsCompliant","_indexOf","bind","indexOf","_toString","toString","_hasOwnProperty","hasOwnProperty","ArrayIterator","noop","Symbol","symbolSpecies","species","Type","x","string","regex","symbol","numberIsNaN","Number","isNaN","numberIsFinite","Value","getter","TypeError","get","proxy","originalObject","key","targetObject","originalDescriptor","getOwnPropertyDescriptor","getKey","set","setKey","redefine","property","newValue","descriptor","preserveToString","target","source","overrideNative","replacement","original","$iterator$","iterator","Set","addIterator","impl","implementation","isArguments","str","result","length","callee","safeApply","ES","Call","F","V","args","IsCallable","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","ToInt32","ToNumber","ToUint32","ToInteger","number","Math","floor","abs","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","b","SameValueZero","IsIterable","GetIterator","itFn","it","IteratorNext","next","Construct","obj","_es6construct","CreateHTML","tag","attribute","S","p1","escapedV","replace","p2","p3","emulateES6construct","fromCodePoint","originalFromCodePoint","codePoints","StringShims","i","RangeError","push","fromCharCode","join","raw","callSite","cooked","rawString","literalsegments","stringElements","nextIndex","nextKey","nextSeg","nextSub",1,"stringRepeat","repeat","s","times","half","stringMaxLength","StringPrototypeShims","thisStr","numTimes","searchString","searchStr","startArg","start","max","slice","endsWith","thisLen","posArg","pos","end","min","includes","position","codePointAt","first","charCodeAt","isEnd","second","hasStringTrimBug","trim","ws","trimRegexp","RegExp","StringIterator","_s","_i","done","substr","ArrayShims","from","iterable","mapFn","list","hasThisArg","thisArg","usingIterator","iterationValue","Array","of","iteratorResult","array","kind","retval","ObjectIterator","getAllKeys","shift","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","fin","count","direction","fill","O","relativeEnd","find","predicate","findIndex","values","entries","unscopables","originalArrayPrototypeValues","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arr","maxSafeInteger","pow","MIN_SAFE_INTEGER","EPSILON","parseInt","parseFloat","isInteger","isSafeInteger","item","idx","isEnumerableOn","propertyIsEnumerable","sliceArgs","initial","desiredArgCount","assignTo","assignToSource","assignReducer","symbols","getOwnPropertySymbols","filter","concat","reduce","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","proto","polyfill","FAKENULL","gpo","spo","p","objectKeysAcceptsPrimitives","originalObjectKeys","getOwnPropertyNames","objectGOPNAcceptsPrimitives","originalObjectGetOwnPropertyNames","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","seal","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","freeze","objectFreezeAcceptsPrimitives","originalObjectFreeze","isFrozen","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","flags","regExpFlagsGetter","global","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","OrigRegExp","RegExpShim","pattern","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","prop","square","n","add","inverseEpsilon","roundTiesToEven","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","numberCLZ","clz","MathShims","acosh","NaN","log","E","sqrt","asinh","atanh","cbrt","negate","exp","clz32","LOG2E","cosh","expm1","t","sum","hypot","y","anyNaN","allZero","anyInfinity","numbers","every","num","largest","divided","log2","log10","LOG10E","log1p","sign","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","v","MAX_VALUE","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","ceil","origImul","PromiseShim","Promise","Promise$prototype","IsPromise","promise","_promiseConstructor","_status","PromiseCapability","capability","resolver","resolve","reject","setTimeout","makeZeroTimeout","window","postMessage","timeouts","messageName","setZeroTimeout","fn","handleMessage","event","data","stopPropagation","addEventListener","makePromiseAsap","P","task","then","enqueue","setImmediate","process","nextTick","updatePromiseFromPotentialThenable","triggerPromiseReactions","reactions","reaction","handler","updateResult","promiseResolutionHandler","onFulfilled","onRejected","_resolveReactions","_rejectReactions","resolution","_result","reason","_promiseAllResolver","index","remaining","all","nextPromise","resolveElement","race","rejectPromise","resolvePromise","Identity","Thrower","catch","resolutionHandler","resolveReaction","rejectReaction","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","testOrder","k","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","type","emptyObject","collectionShims","Map","empty","MapEntry","prev","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","head","_head","_storage","_size","adder","nextItem","Map$prototype","fkey","entry","has","delete","clear","callback","context","isSet","_es6set","requireSetSlot","SetShim","[[SetData]]","Set$prototype","ensureMap","m","charAt","size","hasFKey","entireSet","mapAcceptsArguments","OrigMapNoArgs","isArray","mapUsesSameValueZero","mapSupportsChaining","origMapSet","origMapGet","origMapHas","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","SetDelete","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","OrigMap","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","mapIterationThrowsStopIterator","Reflect","throwUnlessTargetIsObject","construct","deleteProperty","desc","enumerate","ownKeys","callAndCatchException","ConvertExceptionToBoolean","internalGet","receiver","parent","undefined","internalSet","existingDesc","propertyKey","attributes","objectDotGetPrototypeOf","willCreateCircularPrototype","Date","dateToString","shimmedDateToString","valueOf","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","match","toLowerCase"],"mappings":"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