Skip to content

Commit 682ac7f

Browse files
committed
Fixes requirejs#64, make sure has.js amd check gets namespaced.
1 parent 9e06cab commit 682ac7f

File tree

4 files changed

+25
-10
lines changed

4 files changed

+25
-10
lines changed

build/jslib/pragma.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ define(['parse', 'logger'], function (parse, logger) {
3838
apiDefRegExp: /var requirejs, require, define;/,
3939
defineCheckRegExp: /typeof\s+define\s*===\s*["']function["']\s*&&\s*define\s*\.\s*amd/g,
4040
defineJQueryRegExp: /typeof\s+define\s*===\s*["']function["']\s*&&\s*define\s*\.\s*amd\s*&&\s*define\s*\.\s*amd\s*\.\s*jQuery/g,
41+
defineHasRegExp: /typeof\s+define\s*==(=)?\s*['"]function['"]\s*&&\s*typeof\s+define\.amd\s*==(=)?\s*['"]object['"]\s*&&\s*define\.amd/g,
4142
defineTernaryRegExp: /typeof\s+define\s*===\s*['"]function["']\s*&&\s*define\s*\.\s*amd\s*\?\s*define/,
4243
amdefineRegExp: /if\s*\(\s*typeof define\s*\!==\s*'function'\s*\)\s*\{\s*[^\{\}]+amdefine[^\{\}]+\}/g,
4344

@@ -50,7 +51,6 @@ define(['parse', 'logger'], function (parse, logger) {
5051
//Namespace require/define calls
5152
fileContents = fileContents.replace(pragma.nsRegExp, '$1' + ns + '.$2(');
5253

53-
5454
//Namespace define ternary use:
5555
fileContents = fileContents.replace(pragma.defineTernaryRegExp,
5656
"typeof " + ns + ".define === 'function' && " + ns + ".define.amd ? " + ns + ".define");
@@ -59,6 +59,10 @@ define(['parse', 'logger'], function (parse, logger) {
5959
fileContents = fileContents.replace(pragma.defineJQueryRegExp,
6060
"typeof " + ns + ".define === 'function' && " + ns + ".define.amd && " + ns + ".define.jQuery");
6161

62+
//Namespace has.js define use:
63+
fileContents = fileContents.replace(pragma.defineHasRegExp,
64+
"typeof " + ns + ".define === 'function' && typeof " + ns + ".define.amd === 'object' && " + ns + ".define.amd");
65+
6266
//Namespace define checks.
6367
//Do this one last, since it is a subset of the more specific
6468
//checks above.

build/tests/lib/namespace/expected.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@ if (typeof foo.define === 'function' && foo.define.amd && foo.define.jQuery) {
1515
});
1616
}
1717
;
18-
foo.define('modules/four',{
19-
name: 'four'
20-
});
18+
if(false){
2119

20+
}else if(typeof foo.define === 'function' && typeof foo.define.amd === 'object' && foo.define.amd){
21+
foo.define('modules/four',{
22+
name: 'four'
23+
});
24+
};
2225
(function (define) {
2326
foo.define('modules/three',[], function (require) {
2427
//If have dependencies, get them here
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
define({
2-
name: 'four'
3-
});
1+
if(false){
2+
3+
}else if(typeof define == "function" && typeof define.amd == "object" && define.amd){
4+
define({
5+
name: 'four'
6+
});
7+
}

dist/r-edge.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @license r.js 1.0.2+ 20111216 7pm Pacific Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
2+
* @license r.js 1.0.2+ 20111216 7:40pm Pacific Copyright (c) 2010-2011, 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
*/
@@ -20,7 +20,7 @@ var requirejs, require, define;
2020

2121
var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
2222
nodeDefine, exists, reqMain, loadedOptimizedLib,
23-
version = '1.0.2+ 20111216 7pm Pacific',
23+
version = '1.0.2+ 20111216 7:40pm Pacific',
2424
jsSuffixRegExp = /\.js$/,
2525
commandOption = '',
2626
//Used by jslib/rhino/args.js
@@ -7056,6 +7056,7 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
70567056
apiDefRegExp: /var requirejs, require, define;/,
70577057
defineCheckRegExp: /typeof\s+define\s*===\s*["']function["']\s*&&\s*define\s*\.\s*amd/g,
70587058
defineJQueryRegExp: /typeof\s+define\s*===\s*["']function["']\s*&&\s*define\s*\.\s*amd\s*&&\s*define\s*\.\s*amd\s*\.\s*jQuery/g,
7059+
defineHasRegExp: /typeof\s+define\s*==(=)?\s*['"]function['"]\s*&&\s*typeof\s+define\.amd\s*==(=)?\s*['"]object['"]\s*&&\s*define\.amd/g,
70597060
defineTernaryRegExp: /typeof\s+define\s*===\s*['"]function["']\s*&&\s*define\s*\.\s*amd\s*\?\s*define/,
70607061
amdefineRegExp: /if\s*\(\s*typeof define\s*\!==\s*'function'\s*\)\s*\{\s*[^\{\}]+amdefine[^\{\}]+\}/g,
70617062

@@ -7068,7 +7069,6 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
70687069
//Namespace require/define calls
70697070
fileContents = fileContents.replace(pragma.nsRegExp, '$1' + ns + '.$2(');
70707071

7071-
70727072
//Namespace define ternary use:
70737073
fileContents = fileContents.replace(pragma.defineTernaryRegExp,
70747074
"typeof " + ns + ".define === 'function' && " + ns + ".define.amd ? " + ns + ".define");
@@ -7077,6 +7077,10 @@ define('pragma', ['parse', 'logger'], function (parse, logger) {
70777077
fileContents = fileContents.replace(pragma.defineJQueryRegExp,
70787078
"typeof " + ns + ".define === 'function' && " + ns + ".define.amd && " + ns + ".define.jQuery");
70797079

7080+
//Namespace has.js define use:
7081+
fileContents = fileContents.replace(pragma.defineHasRegExp,
7082+
"typeof " + ns + ".define === 'function' && typeof " + ns + ".define.amd === 'object' && " + ns + ".define.amd");
7083+
70807084
//Namespace define checks.
70817085
//Do this one last, since it is a subset of the more specific
70827086
//checks above.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy