From 5bec691575b4926cc73f067c7c82c15919fce3bb Mon Sep 17 00:00:00 2001 From: Jason Kohles Date: Thu, 13 Mar 2014 12:10:51 -0400 Subject: [PATCH 1/2] Fix require() to work with index.js --- src/main/js/lib/require.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/js/lib/require.js b/src/main/js/lib/require.js index d23298a..90830dd 100644 --- a/src/main/js/lib/require.js +++ b/src/main/js/lib/require.js @@ -80,7 +80,7 @@ module specification, the '.js' suffix is optional. } } else { // look for an index.js file - var indexJsFile = new File( dir + './index.js' ); + var indexJsFile = new File( dir, './index.js' ); if ( indexJsFile.exists() ) { return indexJsFile; } else { From 45217a0953d005cbe1645f110f8bab799197a707 Mon Sep 17 00:00:00 2001 From: Jason Kohles Date: Thu, 13 Mar 2014 14:18:45 -0400 Subject: [PATCH 2/2] Make error messages from require() more useful --- src/main/js/lib/require.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/js/lib/require.js b/src/main/js/lib/require.js index 90830dd..35d8212 100644 --- a/src/main/js/lib/require.js +++ b/src/main/js/lib/require.js @@ -244,7 +244,9 @@ When resolving module names to file paths, ScriptCraft uses the following rules. try { compiledWrapper = eval(code); } catch (e) { - throw 'Error:' + e + ' while evaluating module ' + canonizedFilename; + throw new Error( "Error evaluating module " + path + + " at " + canonizedFilename + " line #" + e.lineNumber + + ". Error was: " + e.message, canonizedFilename, e.lineNumber ); } var __dirname = '' + file.parentFile.canonicalPath; var parameters = [ @@ -259,7 +261,9 @@ When resolving module names to file paths, ScriptCraft uses the following rules. .apply(moduleInfo.exports, /* this */ parameters); } catch (e) { - throw 'Error:' + e + ' while executing module ' + canonizedFilename; + throw new Error( "Error executing module " + path + + " at " + canonizedFilename + " line #" + e.lineNumber + + ". Error was: " + e.message, canonizedFilename, e.lineNumber ) } if ( hooks ) { hooks.loaded( canonizedFilename );