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