allow exporting function in mini_require.js

This commit is contained in:
nightwing 2013-04-30 01:04:00 +04:00
commit 23f9f6f849

View file

@ -61,10 +61,13 @@ var _define = function(module, deps, payload) {
if (arguments.length == 2) if (arguments.length == 2)
payload = deps; payload = deps;
if (!_define.modules) if (!_define.modules) {
_define.modules = {}; _define.modules = Object.create(null);
_define.payloads = Object.create(null);
}
_define.modules[module] = payload; _define.payloads[module] = payload;
define.modules[module] = null;
}; };
/** /**
@ -130,9 +133,7 @@ var lookup = function(parentId, moduleName) {
var module = _define.modules[moduleName]; var module = _define.modules[moduleName];
if (!module) { if (!module) {
return null; module = _define.payloads[moduleName];
}
if (typeof module === 'function') { if (typeof module === 'function') {
var exports = {}; var exports = {};
var mod = { var mod = {
@ -148,12 +149,11 @@ var lookup = function(parentId, moduleName) {
var returnValue = module(req, exports, mod); var returnValue = module(req, exports, mod);
exports = returnValue || mod.exports; exports = returnValue || mod.exports;
// cache the resulting module object for next time
_define.modules[moduleName] = exports; _define.modules[moduleName] = exports;
return exports; delete _define.payloads[moduleName];
}
module = _define.modules[moduleName] = exports;
} }
return module; return module;
}; };