diff --git a/js/require.js b/js/require.js index 8d266caa..5d6b2998 100644 --- a/js/require.js +++ b/js/require.js @@ -1,5 +1,5 @@ /** vim: et:ts=4:sw=4:sts=4 - * @license RequireJS 1.0.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. + * @license RequireJS 1.0.2 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */ @@ -11,8 +11,8 @@ var requirejs, require, define; (function () { //Change this version number for each release. - var version = "1.0.0", - commentRegExp = /(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg, + var version = "1.0.2", + commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, cjsRequireRegExp = /require\(\s*["']([^'"\s]+)["']\s*\)/g, currDirRegExp = /^\.\//, jsSuffixRegExp = /\.js$/, @@ -268,6 +268,10 @@ var requirejs, require, define; if (pkgConfig && name === pkgName + '/' + pkgConfig.main) { name = pkgName; } + } else if (name.indexOf("./") === 0) { + // No baseName, so this is ID is resolved relative + // to baseUrl, pull off the leading dot. + name = name.substring(2); } } return name; @@ -407,7 +411,8 @@ var requirejs, require, define; map = manager.map, fullName = map.fullName, args = manager.deps, - listeners = manager.listeners; + listeners = manager.listeners, + cjsModule; //Call the callback to define the module, if necessary. if (cb && isFunction(cb)) { @@ -425,7 +430,11 @@ var requirejs, require, define; //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. - if (manager.cjsModule && manager.cjsModule.exports !== undefined) { + cjsModule = manager.cjsModule; + if (cjsModule && + cjsModule.exports !== undefined && + //Make sure it is not already the exports value + cjsModule.exports !== defined[fullName]) { ret = defined[fullName] = manager.cjsModule.exports; } else if (ret === undefined && manager.usingExports) { //exports already set the defined value. @@ -1048,7 +1057,16 @@ var requirejs, require, define; //Regular dependency. if (!urlFetched[url] && !loaded[fullName]) { req.load(context, fullName, url); - urlFetched[url] = true; + + //Mark the URL as fetched, but only if it is + //not an empty: URL, used by the optimizer. + //In that case we need to be sure to call + //load() for each module that is mapped to + //empty: so that dependencies are satisfied + //correctly. + if (url.indexOf('empty:') !== 0) { + urlFetched[url] = true; + } } } }