1
1
/**
2
- * @license r.js 1.0.5+ Wed, 01 Feb 2012 00:50:21 GMT Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
2
+ * @license r.js 1.0.5+ Wed, 01 Feb 2012 01:32:55 GMT Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
3
3
* Available via the MIT or new BSD license.
4
4
* see: http://github.com/jrburke/requirejs for details
5
5
*/
@@ -20,7 +20,7 @@ var requirejs, require, define;
20
20
21
21
var fileName , env , fs , vm , path , exec , rhinoContext , dir , nodeRequire ,
22
22
nodeDefine , exists , reqMain , loadedOptimizedLib ,
23
- version = '1.0.5+ Wed, 01 Feb 2012 00:50:21 GMT' ,
23
+ version = '1.0.5+ Wed, 01 Feb 2012 01:32:55 GMT' ,
24
24
jsSuffixRegExp = / \. j s $ / ,
25
25
commandOption = '' ,
26
26
useLibLoaded = { } ,
@@ -7066,36 +7066,22 @@ define('parse', ['./uglifyjs/index'], function (uglify) {
7066
7066
7067
7067
/**
7068
7068
* Determines if define(), require({}|[]) or requirejs was called in the
7069
- * file. If the file declares a function define() {}, then the define() usage
7070
- * in the file does not count as AMD usage.
7069
+ * file. Also finds out if define() is declared and if define.amd is called.
7071
7070
*/
7072
7071
parse . usesAmdOrRequireJs = function ( fileName , fileContents , options ) {
7073
- var uses = false ,
7074
- usesDefine = false ,
7075
- declaresDefine = false ,
7076
- astRoot = parser . parse ( fileContents ) ;
7072
+ var astRoot = parser . parse ( fileContents ) ,
7073
+ uses ;
7077
7074
7078
- parse . recurse ( astRoot , function ( type ) {
7079
- if ( type === 'define' ) {
7080
- usesDefine = true ;
7081
- } else if ( type === 'declaresDefine' ) {
7082
- declaresDefine = true ;
7083
- } else {
7084
- return ( uses = true ) ;
7075
+ parse . recurse ( astRoot , function ( prop ) {
7076
+ if ( ! uses ) {
7077
+ uses = { } ;
7085
7078
}
7086
- return false ;
7079
+ uses [ prop ] = true ;
7087
7080
} , options , parse . findAmdOrRequireJsNode ) ;
7088
7081
7089
- //If define was used, but define was not declared, then
7090
- //considered true.
7091
- if ( usesDefine && ! declaresDefine ) {
7092
- uses = true ;
7093
- }
7094
-
7095
7082
return uses ;
7096
7083
} ;
7097
7084
7098
-
7099
7085
/**
7100
7086
* Determines if require(''), exports.x =, module.exports =,
7101
7087
* __dirname, __filename are used. So, not strictly traditional CommonJS,
@@ -7128,7 +7114,7 @@ define('parse', ['./uglifyjs/index'], function (uglify) {
7128
7114
} else if ( node [ 0 ] === 'var' && node [ 1 ] && node [ 1 ] [ 0 ] && node [ 1 ] [ 0 ] [ 0 ] === 'exports' ) {
7129
7115
//Hmm, a variable assignment for exports, so does not use cjs exports.
7130
7116
return onMatch ( 'varExports' ) ;
7131
- } else if ( node [ 0 ] === 'assign' && node [ 2 ] [ 0 ] === 'dot' ) {
7117
+ } else if ( node [ 0 ] === 'assign' && node [ 2 ] && node [ 2 ] [ 0 ] === 'dot' ) {
7132
7118
args = node [ 2 ] [ 1 ] ;
7133
7119
7134
7120
if ( args ) {
@@ -7330,6 +7316,10 @@ define('parse', ['./uglifyjs/index'], function (uglify) {
7330
7316
7331
7317
if ( node [ 0 ] === 'defun' && node [ 1 ] === 'define' ) {
7332
7318
type = 'declaresDefine' ;
7319
+ } else if ( node [ 0 ] === 'assign' && node [ 2 ] && node [ 2 ] [ 2 ] === 'amd' &&
7320
+ node [ 2 ] [ 1 ] && node [ 2 ] [ 1 ] [ 0 ] === 'name' &&
7321
+ node [ 2 ] [ 1 ] [ 1 ] === 'define' ) {
7322
+ type = 'defineAmd' ;
7333
7323
} else if ( node [ 0 ] === 'call' ) {
7334
7324
call = node [ 1 ] ;
7335
7325
args = node [ 2 ] ;
@@ -7340,7 +7330,7 @@ define('parse', ['./uglifyjs/index'], function (uglify) {
7340
7330
( call [ 1 ] [ 1 ] === 'require' || call [ 1 ] [ 1 ] === 'requirejs' ) ) &&
7341
7331
call [ 2 ] === 'config' ) ) {
7342
7332
//A require.config() or requirejs.config() call.
7343
- type = call [ 1 ] [ 1 ] + '.config ' ;
7333
+ type = call [ 1 ] [ 1 ] + 'Config ' ;
7344
7334
} else if ( call [ 0 ] === 'name' &&
7345
7335
( call [ 1 ] === 'require' || call [ 1 ] === 'requirejs' ) ) {
7346
7336
//A require() or requirejs() config call.
0 commit comments