diff --git a/build_support/mini_require.js b/build_support/mini_require.js index ee0d22d6c07..489711629ac 100644 --- a/build_support/mini_require.js +++ b/build_support/mini_require.js @@ -61,10 +61,13 @@ var _define = function(module, deps, payload) { if (arguments.length == 2) payload = deps; - if (!_define.modules) - _define.modules = {}; - - _define.modules[module] = payload; + if (!_define.modules) { + _define.modules = Object.create(null); + _define.payloads = Object.create(null); + } + + _define.payloads[module] = payload; + define.modules[module] = null; }; /** @@ -130,30 +133,27 @@ var lookup = function(parentId, moduleName) { var module = _define.modules[moduleName]; if (!module) { - return null; - } - - if (typeof module === 'function') { - var exports = {}; - var mod = { - id: moduleName, - uri: '', - exports: exports, - packaged: true - }; - - var req = function(module, callback) { - return _require(moduleName, module, callback); - }; - - var returnValue = module(req, exports, mod); - exports = returnValue || mod.exports; - - // cache the resulting module object for next time - _define.modules[moduleName] = exports; - return exports; + module = _define.payloads[moduleName]; + if (typeof module === 'function') { + var exports = {}; + var mod = { + id: moduleName, + uri: '', + exports: exports, + packaged: true + }; + + var req = function(module, callback) { + return _require(moduleName, module, callback); + }; + + var returnValue = module(req, exports, mod); + exports = returnValue || mod.exports; + _define.modules[moduleName] = exports; + delete _define.payloads[moduleName]; + } + module = _define.modules[moduleName] = exports; } - return module; };