8000 2.1.20 · requirejs/requirejs-npm@1ff5486 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1ff5486

Browse files
committed
2.1.20
1 parent 627e638 commit 1ff5486

File tree

2 files changed

+67
-24
lines changed

2 files changed

+67
-24
lines changed

requirejs/bin/r.js

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env node
22
/**
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.
44
* Available via the MIT or new BSD license.
55
* see: http://github.com/jrburke/requirejs for details
66
*/
@@ -21,7 +21,7 @@ var requirejs, require, define, xpcUtil;
2121
(function (console, args, readFileFunc) {
2222
var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
2323
nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci,
24-
version = '2.1.19',
24+
version = '2.1.20',
2525
jsSuffixRegExp = /\.js$/,
2626
commandOption = '',
2727
useLibLoaded = {},
@@ -250,7 +250,7 @@ var requirejs, require, define, xpcUtil;
250250
}
251251

252252
/** 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.
254254
* Available via the MIT or new BSD license.
255255
* see: http://github.com/jrburke/requirejs for details
256256
*/
@@ -263,7 +263,7 @@ var requirejs, require, define, xpcUtil;
263263
(function (global) {
264264
var req, s, head, baseElement, dataMain, src,
265265
interactiveScript, currentlyAddingScript, mainScript, subPath,
266-
version = '2.1.19',
266+
version = '2.1.20',
267267
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
268268
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
269269
jsSuffixRegExp = /\.js$/,
@@ -272,7 +272,6 @@ var requirejs, require, define, xpcUtil;
272272
ostring = op.toString,
273273
hasOwn = op.hasOwnProperty,
274274
ap = Array.prototype,
275-
apsp = ap.splice,
276275
isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
277276
isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
278277
//PS3 indicates loaded and complete, but need to wait for complete
@@ -805,11 +804,13 @@ var requirejs, require, define, xpcUtil;
805804
function takeGlobalQueue() {
806805
//Push all the globalDefQueue items into the context's defQueue
807806
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+
});
813814
globalDefQueue = [];
814815
}
815816
}
@@ -1096,7 +1097,10 @@ var requirejs, require, define, xpcUtil;
10961097
factory = this.factory;
10971098

10981099
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+
}
11001104
} else if (this.error) {
11011105
this.emit('error', this.error);
11021106
} else if (!this.defining) {
@@ -1495,6 +1499,7 @@ var requirejs, require, define, xpcUtil;
14951499
callGetModule(args);
14961500
}
14971501
}
1502+
context.defQueueMap = {};
14981503
}
14991504

15001505
context = {
@@ -1504,6 +1509,7 @@ var requirejs, require, define, xpcUtil;
15041509
defined: defined,
15051510
urlFetched: urlFetched,
15061511
defQueue: defQueue,
1512+
defQueueMap: {},
15071513
Module: Module,
15081514
makeModuleMap: makeModuleMap,
15091515
nextTick: req.nextTick,
@@ -1753,6 +1759,7 @@ var requirejs, require, define, xpcUtil;
17531759
defQueue.splice(i, 1);
17541760
}
17551761
});
1762+
delete context.defQueueMap[id];
17561763

17571764
if (mod) {
17581765
//Hold on to listeners in case the
@@ -1814,6 +1821,7 @@ var requirejs, require, define, xpcUtil;
18141821

18151822
callGetModule(args);
18161823
}
1824+
context.defQueueMap = {};
18171825

18181826
//Do this after the cycle of callGetModule in case the result
18191827
//of those calls/init calls changes the registry.
@@ -2318,7 +2326,12 @@ var requirejs, require, define, xpcUtil;
23182326
//where the module name is not known until the script onload event
23192327
//occurs. If no context, use the global queue, and get it processed
23202328
//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+
}
23222335
};
23232336

23242337
define.amd = {
@@ -26060,7 +26073,8 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
2606026073
parse.parseNode = function (node, onMatch, fnExpScope) {
2606126074
var name, deps, cjsDeps, arg, factory, exp, refsDefine, bodyNode,
2606226075
args = node && node[argPropName],
26063-
callName = parse.hasRequire(node);
26076+
callName = parse.hasRequire(node),
26077+
isUmd = false;
2606426078

2606526079
if (callName === 'require' || callName === 'requirejs') {
2606626080
//A plain require/requirejs call
@@ -26092,6 +26106,13 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
2609226106
//Just the factory, no name or deps
2609326107
factory = name;
2609426108
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;
2609526116
} else if (name.type !== 'Literal') {
2609626117
//An object literal, just null out
2609726118
name = deps = factory = null;
@@ -26128,7 +26149,7 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
2612826149
if (cjsDeps.length) {
2612926150
deps = cjsDeps;
2613026151
}
26131-
} else if (deps || factory) {
26152+
} else if (deps || (factory && !isUmd)) {
2613226153
//Does not match the shape of an AMD call.
2613326154
return;
2613426155
}
@@ -26773,6 +26794,8 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
2677326794
defineJQueryRegExp: /typeof\s+define\s*===?\s*["']function["']\s*&&\s*define\s*\.\s*amd\s*&&\s*define\s*\.\s*amd\s*\.\s*jQuery/g,
2677426795
defineHasRegExp: /typeof\s+define\s*==(=)?\s*['"]function['"]\s*&&\s*typeof\s+define\.amd\s*==(=)?\s*['"]object['"]\s*&&\s*define\.amd/g,
2677526796
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*/,
2677626799
amdefineRegExp: /if\s*\(\s*typeof define\s*\!==\s*'function'\s*\)\s*\{\s*[^\{\}]+amdefine[^\{\}]+\}/g,
2677726800

2677826801
removeStrict: function (contents, config) {
@@ -26799,6 +26822,10 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
2679926822
fileContents = fileContents.replace(pragma.defineHasRegExp,
2680026823
"typeof " + ns + ".define === 'function' && typeof " + ns + ".define.amd === 'object' && " + ns + ".define.amd");
2680126824

26825+
//Namespace async.js define use:
26826+
fileContents = fileContents.replace(pragma.defineExistsAndAmdRegExp,
26827+
"typeof " + ns + ".define !== 'undefined' && " + ns + ".define.amd");
26828+
2680226829
//Namespace define checks.
2680326830
//Do these ones last, since they are a subset of the more specific
2680426831
//checks above.
@@ -26808,6 +26835,8 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
2680826835
"typeof " + ns + ".define === 'function' && " + ns + ".define['amd']");
2680926836
fileContents = fileContents.replace(pragma.defineTypeFirstCheckRegExp,
2681026837
"'function' === typeof " + ns + ".define && " + ns + ".define.amd");
26838+
fileContents = fileContents.replace(pragma.defineExistsRegExp,
26839+
"typeof " + ns + ".define !== 'undefined'");
2681126840

2681226841
//Check for require.js with the require/define definitions
2681326842
if (pragma.apiDefRegExp.test(fileContents) &&
@@ -26995,6 +27024,7 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
2699527024

2699627025
return pragma;
2699727026
});
27027+
2699827028
if(env === 'browser') {
2699927029
/**
2700027030
* @license Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.

requirejs/require.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** vim: et:ts=4:sw=4:sts=4
2-
* @license RequireJS 2.1.19 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
2+
* @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
33
* Available via the MIT or new BSD license.
44
* see: http://github.com/jrburke/requirejs for details
55
*/
@@ -12,7 +12,7 @@ var requirejs, require, define;
1212
(function (global) {
1313
var req, s, head, baseElement, dataMain, src,
1414
interactiveScript, currentlyAddingScript, mainScript, subPath,
15-
version = '2.1.19',
15+
version = '2.1.20',
1616
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
1717
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
1818
jsSuffixRegExp = /\.js$/,
@@ -21,7 +21,6 @@ var requirejs, require, define;
2121
ostring = op.toString,
2222
hasOwn = op.hasOwnProperty,
2323
ap = Array.prototype,
24-
apsp = ap.splice,
2524
isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
2625
isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
2726
//PS3 indicates loaded and complete, but need to wait for complete
@@ -554,11 +553,13 @@ var requirejs, require, define;
554553
function takeGlobalQueue() {
555554
//Push all the globalDefQueue items into the context's defQueue
556555
if (globalDefQueue.length) {
557-
//Array splice in the values since the context code has a
558-
//local var ref to defQueue, so cannot just reassign the one
559-
//on context.
560-
apsp.apply(defQueue,
561-
[defQueue.length, 0].concat(globalDefQueue));
556+
each(globalDefQueue, function(queueItem) {
557+
var id = queueItem[0];
558+
if (typeof id === 'string') {
559+
context.defQueueMap[id] = true;
560+
}
561+
defQueue.push(queueItem);
562+
});
562563
globalDefQueue = [];
563564
}
564565
}
@@ -845,7 +846,10 @@ var requirejs, require, define;
845846
factory = this.factory;
846847

847848
if (!this.inited) {
848-
this.fetch();
849+
// Only fetch if not already in the defQueue.
850+ if (!hasProp(context.defQueueMap, id)) {
851+
this.fetch();
852+
}
849853
} else if (this.error) {
850854
this.emit('error', this.error);
851855
} else if (!this.defining) {
@@ -1244,6 +1248,7 @@ var requirejs, require, define;
12441248
callGetModule(args);
12451249
}
12461250
}
1251+
context.defQueueMap = {};
12471252
}
12481253

12491254
context = {
@@ -1253,6 +1258,7 @@ var requirejs, require, define;
12531258
defined: defined,
12541259
urlFetched: urlFetched,
12551260
defQueue: defQueue,
1261+
defQueueMap: {},
12561262
Module: Module,
12571263
makeModuleMap: makeModuleMap,
12581264
nextTick: req.nextTick,
@@ -1502,6 +1508,7 @@ var requirejs, require, define;
15021508
defQueue.splice(i, 1);
15031509
}
15041510
});
1511+
delete context.defQueueMap[id];
15051512

15061513
if (mod) {
15071514
//Hold on to listeners in case the
@@ -1563,6 +1570,7 @@ var requirejs, require, define;
15631570

15641571
callGetModule(args);
15651572
}
1573+
context.defQueueMap = {};
15661574

15671575
//Do this after the cycle of callGetModule in case the result
15681576
//of those calls/init calls changes the registry.
@@ -2067,7 +2075,12 @@ var requirejs, require, define;
20672075
//where the module name is not known until the script onload event
20682076
//occurs. If no context, use the global queue, and get it processed
20692077
//in the onscript load callback.
2070-
(context ? context.defQueue : globalDefQueue).push([name, deps, callback]);
2078+
if (context) {
2079+
context.defQueue.push([name, deps, callback]);
2080+
context.defQueueMap[name] = true;
2081+
} else {
2082+
globalDefQueue.push([name, deps, callback]);
2083+
}
20712084
};
20722085

20732086
define.amd = {

0 commit comments

Comments
 (0)
0