1
1
/**
2
- * @license r.js 2.1.19 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
2
+ * @license r.js 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
3
3
* Available via the MIT or new BSD license.
4
4
* see: http://github.com/jrburke/requirejs for details
5
5
*/
@@ -20,7 +20,7 @@ var requirejs, require, define, xpcUtil;
20
20
(function (console, args, readFileFunc) {
21
21
var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
22
22
nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci,
23
- version = '2.1.19 ',
23
+ version = '2.1.20 ',
24
24
jsSuffixRegExp = /\.js$/,
25
25
commandOption = '',
26
26
useLibLoaded = {},
@@ -249,7 +249,7 @@ var requirejs, require, define, xpcUtil;
249
249
}
250
250
251
251
/** vim: et:ts=4:sw=4:sts=4
252
- * @license RequireJS 2.1.19 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
252
+ * @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
253
253
* Available via the MIT or new BSD license.
254
254
* see: http://github.com/jrburke/requirejs for details
255
255
*/
@@ -262,7 +262,7 @@ var requirejs, require, define, xpcUtil;
262
262
(function (global) {
263
263
var req, s, head, baseElement, dataMain, src,
264
264
interactiveScript, currentlyAddingScript, mainScript, subPath,
265
- version = '2.1.19 ',
265
+ version = '2.1.20 ',
266
266
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
267
267
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
268
268
jsSuffixRegExp = /\.js$/,
@@ -271,7 +271,6 @@ var requirejs, require, define, xpcUtil;
271
271
ostring = op.toString,
272
272
hasOwn = op.hasOwnProperty,
273
273
ap = Array.prototype,
274
- apsp = ap.splice,
275
274
isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
276
275
isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
277
276
//PS3 indicates loaded and complete, but need to wait for complete
@@ -804,11 +803,13 @@ var requirejs, require, define, xpcUtil;
804
803
function takeGlobalQueue() {
805
804
//Push all the globalDefQueue items into the context's defQueue
806
805
if (globalDefQueue.length) {
807
- //Array splice in the values since the context code has a
808
- //local var ref to defQueue, so cannot just reassign the one
809
- //on context.
810
- apsp.apply(defQueue,
811
- [defQueue.length, 0].concat(globalDefQueue));
806
+ each(globalDefQueue, function(queueItem) {
807
+ var id = queueItem[0];
808
+ if (typeof id === 'string') {
809
+ context.defQueueMap[id] = true;
810
+ }
811
+ defQueue.push(queueItem);
812
+ });
812
813
globalDefQueue = [];
813
814
}
814
815
}
@@ -1095,7 +1096,10 @@ var requirejs, require, define, xpcUtil;
1095
1096
factory = this.factory;
1096
1097
1097
1098
if (!this.inited) {
1098
- this.fetch();
1099
+ // Only fetch if not already in the defQueue.
1100
+ if (!hasProp(context.defQueueMap, id)) {
1101
+ this.fetch();
1102
+ }
1099
1103
} else if (this.error) {
1100
1104
this.emit('error', this.error);
1101
1105
} else if (!this.defining) {
@@ -1494,6 +1498,7 @@ var requirejs, require, define, xpcUtil;
1494
1498
callGetModule(args);
1495
1499
}
1496
1500
}
1501
+ context.defQueueMap = {};
1497
1502
}
1498
1503
1499
1504
context = {
@@ -1503,6 +1508,7 @@ var requirejs, require, define, xpcUtil;
1503
1508
defined: defined,
1504
1509
urlFetched: urlFetched,
1505
1510
defQueue: defQueue,
1511
+ defQueueMap: {},
1506
1512
Module: Module,
1507
1513
makeModuleMap: makeModuleMap,
1508
1514
nextTick: req.nextTick,
@@ -1752,6 +1758,7 @@ var requirejs, require, define, xpcUtil;
1752
1758
defQueue.splice(i, 1);
1753
1759
}
1754
1760
});
1761
+ delete context.defQueueMap[id];
1755
1762
1756
1763
if (mod) {
1757
1764
//Hold on to listeners in case the
@@ -1813,6 +1820,7 @@ var requirejs, require, define, xpcUtil;
1813
1820
1814
1821
callGetModule(args);
1815
1822
}
1823
+ context.defQueueMap = {};
1816
1824
1817
1825
//Do this after the cycle of callGetModule in case the result
1818
1826
//of those calls/init calls changes the registry.
@@ -2317,7 +2325,12 @@ var requirejs, require, define, xpcUtil;
2317
2325
//where the module name is not known until the script onload event
2318
2326
//occurs. If no context, use the global queue, and get it processed
2319
2327
//in the onscript load callback.
2320
- (context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
2328
+ if (context) {
2329
+ context.defQueue.push([name, deps, callback]);
2330
+ context.defQueueMap[name] = true;
2331
+ } else {
2332
+ globalDefQueue.push([name, deps, callback]);
2333
+ }
2321
2334
};
2322
2335
2323
2336
define.amd = {
@@ -26059,7 +26072,8 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
26059
26072
parse.parseNode = function (node, onMatch, fnExpScope) {
26060
26073
var name, deps, cjsDeps, arg, factory, exp, refsDefine, bodyNode,
26061
26074
args = node && node[argPropName],
26062
- callName = parse.hasRequire(node);
26075
+ callName = parse.hasRequire(node),
26076
+ isUmd = false;
26063
26077
26064
26078
if (callName === 'require' || callName === 'requirejs') {
26065
26079
//A plain require/requirejs call
@@ -26091,6 +26105,13 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
26091
26105
//Just the factory, no name or deps
26092
26106
factory = name;
26093
26107
name = deps = null;
26108
+ } else if (name.type === 'Identifier' && args.length === 1 &&
26109
+ hasProp(fnExpScope, name.name)) {
26110
+ //define(e) where e is a UMD identifier for the factory
26111
+ //function.
26112
+ isUmd = true;
26113
+ factory = name;
26114
+ name = null;
26094
26115
} else if (name.type !== 'Literal') {
26095
26116
//An object literal, just null out
26096
26117
name = deps = factory = null;
@@ -26127,7 +26148,7 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
26127
26148
if (cjsDeps.length) {
26128
26149
deps = cjsDeps;
26129
26150
}
26130
- } else if (deps || factory) {
26151
+ } else if (deps || ( factory && !isUmd) ) {
26131
26152
//Does not match the shape of an AMD call.
26132
26153
return;
26133
26154
}
@@ -26772,6 +26793,8 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
26772
26793
defineJQueryRegExp: /typeof\s+define\s*===?\s*["']function["']\s*&&\s*define\s*\.\s*amd\s*&&\s*define\s*\.\s*amd\s*\.\s*jQuery/g,
26773
26794
defineHasRegExp: /typeof\s+define\s*==(=)?\s*['"]function['"]\s*&&\s*typeof\s+define\.amd\s*==(=)?\s*['"]object['"]\s*&&\s*define\.amd/g,
26774
26795
defineTernaryRegExp: /typeof\s+define\s*===?\s*['"]function["']\s*&&\s*define\s*\.\s*amd\s*\?\s*define/,
26796
+ defineExistsRegExp: /\s+typeof\s+define\s*!==?\s*['"]undefined["']\s*/,
26797
+ defineExistsAndAmdRegExp: /typeof\s+define\s*!==?\s*['"]undefined["']\s*&&\s*define\s*\.\s*amd\s*/,
26775
26798
amdefineRegExp: /if\s*\(\s*typeof define\s*\!==\s*'function'\s*\)\s*\{\s*[^\{\}]+amdefine[^\{\}]+\}/g,
26776
26799
26777
26800
removeStrict: function (contents, config) {
@@ -26798,6 +26821,10 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
26798
26821
fileContents = fileContents.replace(pragma.defineHasRegExp,
26799
26822
"typeof " + ns + ".define === 'function' && typeof " + ns + ".define.amd === 'object' && " + ns + ".define.amd");
26800
26823
26824
+ //Namespace async.js define use:
26825
+ fileContents = fileContents.replace(pragma.defineExistsAndAmdRegExp,
26826
+ "typeof " + ns + ".define !== 'undefined' && " + ns + ".define.amd");
26827
+
26801
26828
//Namespace define checks.
26802
26829
//Do these ones last, since they are a subset of the more specific
26803
26830
//checks above.
@@ -26807,6 +26834,8 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
26807
26834
"typeof " + ns + ".define === 'function' && " + ns + ".define['amd']");
26808
26835
fileContents = fileContents.replace(pragma.defineTypeFirstCheckRegExp,
26809
26836
"'function' === typeof " + ns + ".define && " + ns + ".define.amd");
26837
+ fileContents = fileContents.replace(pragma.defineExistsRegExp,
26838
+ "typeof " + ns + ".define !== 'undefined'");
26810
26839
26811
26840
//Check for require.js with the require/define definitions
26812
26841
if (pragma.apiDefRegExp.test(fileContents) &&
@@ -26994,6 +27023,7 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
26994
27023
26995
27024
return pragma;
26996
27025
});
27026
+
26997
27027
if(env === 'browser') {
26998
27028
/**
26999
27029
* @license Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
0 commit comments