From 22a66cb6e243a3f1c867b62e3942fd2e828019d9 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Thu, 8 Mar 2012 13:56:09 -0800 Subject: integrating v0.7 montage into ninja Signed-off-by: Valerio Virgillito --- node_modules/montage/require/node.js | 49 +++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'node_modules/montage/require/node.js') diff --git a/node_modules/montage/require/node.js b/node_modules/montage/require/node.js index 9fcea3f5..3ba5a322 100644 --- a/node_modules/montage/require/node.js +++ b/node_modules/montage/require/node.js @@ -40,10 +40,13 @@ Require.Compiler = function (config) { var names = ["require", "exports", "module"]; var scopeNames = Object.keys(config.scope); names.push.apply(names, scopeNames); - return function(module) { - if (module.factory) + return function (module) { + if (module.factory) { return module; - if (!module.factory && module.text !== void 0) { + } else if ( + module.text !== void 0 && + module.type === "javascript" + ) { var factory = globalEval( "(function(" + names.join(",") + "){" + module.text + @@ -59,18 +62,41 @@ Require.Compiler = function (config) { // https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope //module.factory = new Function("require", "exports", "module", module.text + "\n//*/\n//@ sourceURL="+module.path); } - return module; }; }; -Require.DefaultLoaderConstructor = function(config) { +Require.Loader = function (config, load) { + return function (url, module) { + return Require.read(url) + .then(function (text) { + module.type = "javascript"; + module.text = text; + module.location = url; + }, function (reason, error, rejection) { + return load(url, module); + }); + }; +}; + +Require.NodeLoader = function (config) { + return function (url, module) { + var id = url.slice(config.location.length); + return { + type: "native", + exports: require(id), + location: url + } + }; +}; + +Require.makeLoader = function(config) { return Require.MappingsLoader( config, Require.ExtensionsLoader( config, Require.PathsLoader( config, - Require.CachingLoader( + Require.MemoizedLoader( config, Require.Loader( config, @@ -82,17 +108,6 @@ Require.DefaultLoaderConstructor = function(config) { ); }; -Require.NodeLoader = function (config) { - return function (url, module) { - var id = url.slice(config.location.length); - return { - type: "native", - exports: require(id), - location: url - } - }; -} - Require.main = function () { var require = Require.Sandbox(); require.async(process.argv[2]).end(); -- cgit v1.2.3