Skip to content

Commit e37fff7

Browse files
committed
Fixes requirejs#344, do not find obj.require calls for runtime dependency scanning
1 parent 31660dd commit e37fff7

6 files changed

Lines changed: 46 additions & 2 deletions

File tree

require.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var requirejs, require, define;
1212

1313
var version = '2.0.2+',
1414
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
15-
cjsRequireRegExp = /require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
15+
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
1616
jsSuffixRegExp = /\.js$/,
1717
currDirRegExp = /^\.\//,
1818
ostring = Object.prototype.toString,

tests/all.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ doh.registerUrl("dataMainBaseUrl", "../dataMain/baseUrl/dataMainBaseUrl.html");
1818
if (hasToString) {
1919
doh.registerUrl("anonSimple", "../anon/anonSimple.html");
2020
doh.registerUrl("cjsSpace", "../cjsSpace/cjsSpace.html");
21+
doh.registerUrl("cjsDotRequire", "../cjsSpace/cjsDotRequire.html");
2122
doh.registerUrl("packages", "../packages/packages.html");
2223
}
2324

tests/cjsSpace/c.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
define(function (require) {
2+
if (typeof obj !== 'undefined') {
3+
obj.require('bad');
4+
}
5+
return {
6+
name: 'c'
7+
};
8+
});
9+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require({
2+
baseUrl: './'
3+
},
4+
['a', 'c'],
5+
function(a, c) {
6+
doh.register(
7+
'cjsDotRequire',
8+
[
9+
function cjsDotRequire(t){
10+
t.is('a', a.name);
11+
t.is('b', a.b.name);
12+
t.is('c', c.name);
13+
}
14+
]
15+
);
16+
doh.run();
17+
}
18+
);

tests/cjsSpace/cjsDotRequire.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>require.js: Skipping false obj.require('') Test</title>
5+
<script type="text/javascript" src="../../require.js"></script>
6+
<script type="text/javascript" src="../doh/runner.js"></script>
7+
<script type="text/javascript" src="../doh/_browserRunner.js"></script>
8+
<script type="text/javascript" src="cjsDotRequire-tests.js"></script>
9+
</head>
10+
<body>
11+
<h1>require.js: Skipping false obj.require('') Test</h1>
12+
<p>Test for <a href="https://github.com/jrburke/requirejs/issues/344">Issue 344</a>.
13+
Make sure modules that have obj.require() calls do not get found as dependencies.</p>
14+
<p>Check console for messages</p>
15+
</body>
16+
</html>

updatesubs.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ echo "Updating the cajon project"
2323
cp require.js ../cajon/tools/require.js
2424
cp ../r.js/r.js ../cajon/tools/r.js
2525
cd ../cajon/tools
26-
./build.sh
26+
./build-cajon.sh
2727
cd ../../requirejs
2828

2929
# The require-cs project

0 commit comments

Comments
 (0)