aboutsummaryrefslogtreecommitdiffstats
path: root/external
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2014-07-17 09:03:29 -0700
committerTimmy Willison <timmywillisn@gmail.com>2014-07-17 09:03:29 -0700
commit8356948ed4ee13af218af74c56c8a91ee9523828 (patch)
tree098e64768c29db92a13456ae08d4aa808f379c94 /external
parente1949f43711b5808d42378bafb6728b40b1738d6 (diff)
downloadjquery-8356948ed4ee13af218af74c56c8a91ee9523828.tar.gz
jquery-8356948ed4ee13af218af74c56c8a91ee9523828.zip
Build: update front-end dependencies
Diffstat (limited to 'external')
-rw-r--r--external/requirejs/require.js96
-rw-r--r--external/sinon/LICENSE.txt2
-rw-r--r--external/sinon/fake_timers.js28
3 files changed, 79 insertions, 47 deletions
diff --git a/external/requirejs/require.js b/external/requirejs/require.js
index e7bc14d36..7f31fa204 100644
--- a/external/requirejs/require.js
+++ b/external/requirejs/require.js
@@ -1,5 +1,5 @@
/** vim: et:ts=4:sw=4:sts=4
- * @license RequireJS 2.1.10 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
+ * @license RequireJS 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details
*/
@@ -12,7 +12,7 @@ var requirejs, require, define;
(function (global) {
var req, s, head, baseElement, dataMain, src,
interactiveScript, currentlyAddingScript, mainScript, subPath,
- version = '2.1.10',
+ version = '2.1.14',
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
jsSuffixRegExp = /\.js$/,
@@ -141,7 +141,7 @@ var requirejs, require, define;
throw err;
}
- //Allow getting a global that expressed in
+ //Allow getting a global that is expressed in
//dot notation, like 'a.b.c'.
function getGlobal(value) {
if (!value) {
@@ -180,7 +180,7 @@ var requirejs, require, define;
if (typeof requirejs !== 'undefined') {
if (isFunction(requirejs)) {
- //Do not overwrite and existing requirejs instance.
+ //Do not overwrite an existing requirejs instance.
return;
}
cfg = requirejs;
@@ -232,21 +232,20 @@ var requirejs, require, define;
* @param {Array} ary the array of path segments.
*/
function trimDots(ary) {
- var i, part, length = ary.length;
- for (i = 0; i < length; i++) {
+ var i, part;
+ for (i = 0; i < ary.length; i++) {
part = ary[i];
if (part === '.') {
ary.splice(i, 1);
i -= 1;
} else if (part === '..') {
- if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
- //End of the line. Keep at least one non-dot
- //path segment at the front so it can be mapped
- //correctly to disk. Otherwise, there is likely
- //no path mapping for a path starting with '..'.
- //This can still fail, but catches the most reasonable
- //uses of ..
- break;
+ // If at the start, or previous value is still ..,
+ // keep them so that when converted to a path it may
+ // still work when converted to a path, even though
+ // as an ID it is less than ideal. In larger point
+ // releases, may be better to just kick out an error.
+ if (i === 0 || (i == 1 && ary[2] === '..') || ary[i - 1] === '..') {
+ continue;
} else if (i > 0) {
ary.splice(i - 1, 2);
i -= 2;
@@ -267,43 +266,37 @@ var requirejs, require, define;
*/
function normalize(name, baseName, applyMap) {
var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,
- foundMap, foundI, foundStarMap, starI,
- baseParts = baseName && baseName.split('/'),
- normalizedBaseParts = baseParts,
+ foundMap, foundI, foundStarMap, starI, normalizedBaseParts,
+ baseParts = (baseName && baseName.split('/')),
map = config.map,
starMap = map && map['*'];
//Adjust any relative paths.
- if (name && name.charAt(0) === '.') {
- //If have a base name, try to normalize against it,
- //otherwise, assume it is a top-level require that will
- //be relative to baseUrl in the end.
- if (baseName) {
+ if (name) {
+ name = name.split('/');
+ lastIndex = name.length - 1;
+
+ // If wanting node ID compatibility, strip .js from end
+ // of IDs. Have to do this here, and not in nameToUrl
+ // because node allows either .js or non .js to map
+ // to same file.
+ if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
+ name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
+ }
+
+ // Starts with a '.' so need the baseName
+ if (name[0].charAt(0) === '.' && baseParts) {
//Convert baseName to array, and lop off the last part,
//so that . matches that 'directory' and not name of the baseName's
//module. For instance, baseName of 'one/two/three', maps to
//'one/two/three.js', but we want the directory, 'one/two' for
//this normalization.
normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
- name = name.split('/');
- lastIndex = name.length - 1;
-
- // If wanting node ID compatibility, strip .js from end
- // of IDs. Have to do this here, and not in nameToUrl
- // because node allows either .js or non .js to map
- // to same file.
- if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
- name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
- }
-
name = normalizedBaseParts.concat(name);
- trimDots(name);
- name = name.join('/');
- } else if (name.indexOf('./') === 0) {
- // No baseName, so this is ID is resolved relative
- // to baseUrl, pull off the leading dot.
- name = name.substring(2);
}
+
+ trimDots(name);
+ name = name.join('/');
}
//Apply map config if available.
@@ -379,7 +372,13 @@ var requirejs, require, define;
//retry
pathConfig.shift();
context.require.undef(id);
- context.require([id]);
+
+ //Custom require that does not do map translation, since
+ //ID is "absolute", already mapped/resolved.
+ context.makeRequire(null, {
+ skipMap: true
+ })([id]);
+
return true;
}
}
@@ -445,7 +444,16 @@ var requirejs, require, define;
return normalize(name, parentName, applyMap);
});
} else {
- normalizedName = normalize(name, parentName, applyMap);
+ // If nested plugin references, then do not try to
+ // normalize, as it will not normalize correctly. This
+ // places a restriction on resourceIds, and the longer
+ // term solution is not to normalize until plugins are
+ // loaded and all normalizations to allow for async
+ // loading of a loader plugin. But for now, fixes the
+ // common uses. Details in #1131
+ normalizedName = name.indexOf('!') === -1 ?
+ normalize(name, parentName, applyMap) :
+ name;
}
} else {
//A regular module.
@@ -567,7 +575,7 @@ var requirejs, require, define;
mod.usingExports = true;
if (mod.map.isDefine) {
if (mod.exports) {
- return mod.exports;
+ return (defined[mod.map.id] = mod.exports);
} else {
return (mod.exports = defined[mod.map.id] = {});
}
@@ -583,7 +591,7 @@ var requirejs, require, define;
config: function () {
return getOwn(config.config, mod.map.id) || {};
},
- exports: handlers.exports(mod)
+ exports: mod.exports || (mod.exports = {})
});
}
}
@@ -1502,7 +1510,7 @@ var requirejs, require, define;
/**
* Called to enable a module if it is still in the registry
* awaiting enablement. A second arg, parent, the parent module,
- * is passed in for context, when this method is overriden by
+ * is passed in for context, when this method is overridden by
* the optimizer. Not shown here to keep code compact.
*/
enable: function (depMap) {
diff --git a/external/sinon/LICENSE.txt b/external/sinon/LICENSE.txt
index 892a26a66..e7f50d123 100644
--- a/external/sinon/LICENSE.txt
+++ b/external/sinon/LICENSE.txt
@@ -1,6 +1,6 @@
(The BSD License)
-Copyright (c) 2010-2013, Christian Johansen, christian@cjohansen.no
+Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/external/sinon/fake_timers.js b/external/sinon/fake_timers.js
index dbcdb8b68..0d5136827 100644
--- a/external/sinon/fake_timers.js
+++ b/external/sinon/fake_timers.js
@@ -24,6 +24,13 @@ if (typeof sinon == "undefined") {
}
(function (global) {
+ // node expects setTimeout/setInterval to return a fn object w/ .ref()/.unref()
+ // browsers, a number.
+ // see https://github.com/cjohansen/Sinon.JS/pull/436
+ var timeoutResult = setTimeout(function() {}, 0);
+ var addTimerReturnsObject = typeof timeoutResult === 'object';
+ clearTimeout(timeoutResult);
+
var id = 1;
function addTimer(args, recurring) {
@@ -53,7 +60,16 @@ if (typeof sinon == "undefined") {
this.timeouts[toId].interval = delay;
}
- return toId;
+ if (addTimerReturnsObject) {
+ return {
+ id: toId,
+ ref: function() {},
+ unref: function() {}
+ };
+ }
+ else {
+ return toId;
+ }
}
function parseTime(str) {
@@ -119,10 +135,18 @@ if (typeof sinon == "undefined") {
},
clearTimeout: function clearTimeout(timerId) {
+ if (!timerId) {
+ // null appears to be allowed in most browsers, and appears to be relied upon by some libraries, like Bootstrap carousel
+ return;
+ }
if (!this.timeouts) {
this.timeouts = [];
}
-
+ // in Node, timerId is an object with .ref()/.unref(), and
+ // its .id field is the actual timer id.
+ if (typeof timerId === 'object') {
+ timerId = timerId.id
+ }
if (timerId in this.timeouts) {
delete this.timeouts[timerId];
}