Fix exception output for module load exceptions
So instead of: node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ You will now see: path/to/foo.js:1 throw new Error('bar'); ^ This is a sub-set of isaacs patch here: https://github.com/joyent/node/issues/3235 The difference is that this patch purely adresses the exception output, but does not try to make any behavior changes / improvements.
This commit is contained in:
parent
814033365b
commit
bf9d8e9214
@ -304,11 +304,16 @@ Module._load = function(request, parent, isMain) {
|
||||
}
|
||||
|
||||
Module._cache[filename] = module;
|
||||
|
||||
var hadException = true;
|
||||
|
||||
try {
|
||||
module.load(filename);
|
||||
} catch (err) {
|
||||
delete Module._cache[filename];
|
||||
throw err;
|
||||
hadException = false;
|
||||
} finally {
|
||||
if (hadException) {
|
||||
delete Module._cache[filename];
|
||||
}
|
||||
}
|
||||
|
||||
return module.exports;
|
||||
|
@ -1,6 +1,6 @@
|
||||
before
|
||||
|
||||
module.js:311
|
||||
throw err;
|
||||
^
|
||||
*test*message*stack_overflow.js:31
|
||||
function stackOverflow() {
|
||||
^
|
||||
RangeError: Maximum call stack size exceeded
|
||||
|
@ -1,6 +1,6 @@
|
||||
before
|
||||
|
||||
module.js:311
|
||||
throw err;
|
||||
^
|
||||
*test*message*throw_custom_error.js:31
|
||||
throw { name: 'MyCustomError', message: 'This is a custom message' };
|
||||
^
|
||||
MyCustomError: This is a custom message
|
||||
|
@ -1,6 +1,6 @@
|
||||
before
|
||||
|
||||
module.js:311
|
||||
throw err;
|
||||
^
|
||||
*/test/message/throw_non_error.js:31
|
||||
throw { foo: 'bar' };
|
||||
^
|
||||
[object Object]
|
||||
|
@ -1,8 +1,8 @@
|
||||
before
|
||||
|
||||
module.js:311
|
||||
throw err;
|
||||
^
|
||||
*test*message*undefined_reference_in_new_context.js:34
|
||||
script.runInNewContext();
|
||||
^
|
||||
ReferenceError: foo is not defined
|
||||
at evalmachine.<anonymous>:*
|
||||
at Object.<anonymous> (*test*message*undefined_reference_in_new_context.js:*)
|
||||
|
Loading…
x
Reference in New Issue
Block a user