Skip to content

Commit 9002016

Browse files
committed
Merge branch 'uselib'
2 parents c3bcdf5 + ae10634 commit 9002016

File tree

6 files changed

+93
-6
lines changed

6 files changed

+93
-6
lines changed

build/jslib/parse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ define(['uglifyjs/index'], function (uglify) {
401401
//This is a litle bit inefficient, it ends up with two uglifyjs parser
402402
//calls. Can revisit later, but trying to build out larger functional
403403
//pieces first.
404-
var dependencies = parse.getAnonDeps(fileName, fileContents),
404+
var dependencies = [],
405405
astRoot = parser.parse(fileContents);
406406

407407
parse.recurse(astRoot, function (callName, config, name, deps) {

build/jslib/x.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @license r.js 1.0.4 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
2+
* @license r.js 1.0.4+ 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,9 +20,10 @@ 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.4',
23+
version = '1.0.4+',
2424
jsSuffixRegExp = /\.js$/,
2525
commandOption = '',
26+
useLibLoaded = {},
2627
//Used by jslib/rhino/args.js
2728
rhinoArgs = args,
2829
readFile = typeof readFileFunc !== 'undefined' ? readFileFunc : null;
@@ -190,6 +191,28 @@ var requirejs, require, define;
190191
}, ['build', 'logger'], runBuild);
191192
};
192193

194+
requirejs.tools = {
195+
useLib: function (contextName, callback) {
196+
if (!callback) {
197+
callback = contextName;
198+
contextName = 'uselib';
199+
}
200+
201+
if (!useLibLoaded[contextName]) {
202+
loadLib();
203+
useLibLoaded[contextName] = true;
204+
}
205+
206+
var req = requirejs({
207+
context: contextName
208+
});
209+
210+
req(['build'], function () {
211+
callback(req);
212+
});
213+
}
214+
};
215+
193216
requirejs.define = define;
194217

195218
module.exports = requirejs;

build/tests/tools/uselib/a.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
define(['b', 'c', 'd/e'], function (b, c, e) {
2+
3+
});

build/tests/tools/uselib/b.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
define(function(require) {
2+
var a = require('a'),
3+
c = require('c'),
4+
e = require('d/e');
5+
return function() {};
6+
});

build/tests/tools/uselib/parseDeps.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
'use strict';
2+
/*jslint nomen: false */
3+
/*global require, __dirname, console */
4+
5+
var requirejs = require('../../../../r.js'),
6+
fs = require('fs'),
7+
path = require('path'),
8+
jsRegExp = /\.js$/,
9+
dir = __dirname,
10+
thisName = path.basename(__filename);
11+
12+
function onLib(require) {
13+
require(['parse'], function (parse) {
14+
var deps = {};
15+
16+
fs.readdirSync(dir).filter(function (name) {
17+
//Do not include this file in the output.
18+
return name !== thisName && jsRegExp.test(name);
19+
}).forEach(function (name) {
20+
var fileName = path.join(dir, name),
21+
contents = fs.readFileSync(fileName, 'utf8');
22+
deps[path.basename(name, '.js')] = parse.findDependencies(fileName,
23+
contents);
24+
});
25+
26+
console.log(JSON.stringify(deps, null, ' '));
27+
});
28+
}
29+
30+
//Do it twice, just to make sure it all holds together on multiple passes.
31+
requirejs.tools.useLib(onLib);
32+
requirejs.tools.useLib(onLib);

dist/r-edge.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @license r.js 1.0.4 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
2+
* @license r.js 1.0.4+ 20120106 9:40pm 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,9 +20,10 @@ 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.4',
23+
version = '1.0.4+ 20120106 9:40pm',
2424
jsSuffixRegExp = /\.js$/,
2525
commandOption = '',
26+
useLibLoaded = {},
2627
//Used by jslib/rhino/args.js
2728
rhinoArgs = args,
2829
readFile = typeof readFileFunc !== 'undefined' ? readFileFunc : null;
@@ -6872,7 +6873,7 @@ define('parse', ['uglifyjs/index'], function (uglify) {
68726873
//This is a litle bit inefficient, it ends up with two uglifyjs parser
68736874
//calls. Can revisit later, but trying to build out larger functional
68746875
//pieces first.
6875-
var dependencies = parse.getAnonDeps(fileName, fileContents),
6876+
var dependencies = [],
68766877
astRoot = parser.parse(fileContents);
68776878

68786879
parse.recurse(astRoot, function (callName, config, name, deps) {
@@ -9181,6 +9182,28 @@ function (lang, logger, file, parse, optimize, pragma,
91819182
}, ['build', 'logger'], runBuild);
91829183
};
91839184

9185+
requirejs.tools = {
9186+
useLib: function (contextName, callback) {
9187+
if (!callback) {
9188+
callback = contextName;
9189+
contextName = 'uselib';
9190+
}
9191+
9192+
if (!useLibLoaded[contextName]) {
9193+
loadLib();
9194+
useLibLoaded[contextName] = true;
9195+
}
9196+
9197+
var req = requirejs({
9198+
context: contextName
9199+
});
9200+
9201+
req(['build'], function () {
9202+
callback(req);
9203+
});
9204+
}
9205+
};
9206+
91849207
requirejs.define = define;
91859208

91869209
module.exports = requirejs;

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