diff --git a/lib/main.js b/lib/main.js index 9025c71..40f88ba 100644 --- a/lib/main.js +++ b/lib/main.js @@ -6,7 +6,10 @@ if (typeof document !== "undefined") { root: null, modules: {}, loaded: {}, - + moduleName: undefined, + moduleNames: [], + + // TODO Input parameters not supported, for modules loaded as a string globalEval: function(data) { if ( data ) { // We use execScript on Internet Explorer @@ -25,11 +28,15 @@ if (typeof document !== "undefined") { if (!loaded) { if (mod) { minispade.loaded[name] = true; - + if (typeof mod === "string") { this.globalEval(mod); } else { - mod(); + minispade.moduleNames.push(name); + minispade.moduleName = name; + mod.apply(window, [].slice.call(arguments, 1)); + minispade.moduleNames.pop(); + minispade.moduleName = minispade.moduleNames[minispade.moduleNames.length - 1] } } else { if (minispade.root && name.substr(0,minispade.root.length) !== minispade.root) { @@ -47,15 +54,17 @@ if (typeof document !== "undefined") { for (var module in this.modules) { if (!this.modules.hasOwnProperty(module)) { continue; } if (regex && !regex.test(module)) { continue; } - minispade.requireModule(module); + var params = [].slice.call(arguments, 1); + params.unshift(module); + minispade.requireModule.apply(window, params); } }, require: function(path) { if (typeof path === 'string') { - minispade.requireModule(path); + minispade.requireModule.apply(window, [].slice.call(arguments, 0)); } else { - minispade.requireAll(path); + minispade.requireAll.apply(window, [].slice.call(arguments, 0)); } },