Browse Source

Fix: uncaughtException was broken for main module

See: 635986e433
v0.7.4-release
Felix Geisendörfer 15 years ago
committed by Ryan Dahl
parent
commit
ef54777fa5
  1. 6
      src/node.js
  2. 9
      test/message/undefined_reference_in_new_context.out
  3. 10
      test/simple/test-exception-handler2.js

6
src/node.js

@ -749,7 +749,11 @@ if (process.argv[1]) {
process.argv[1] = path.join(cwd, process.argv[1]);
}
module.runMain();
// REMOVEME: nextTick should not be necessary. This hack to get
// test/simple/test-exception-handler2.js working.
process.nextTick(function() {
module.runMain();
});
} else {
// No arguments, run the repl
var repl = module.requireNative('repl');

9
test/message/undefined_reference_in_new_context.out

@ -1,9 +1,8 @@
before
*.js:*
*cript.runIn*Context(*);
*^
node.js:*
throw e;
^
ReferenceError: foo is not defined
at evalmachine.<anonymous>:*
at *test/message/undefined_reference_in_new_context.js:*
@ -11,4 +10,6 @@ ReferenceError: foo is not defined
at Module._loadScriptSync (node.js:*)
at Module.loadSync (node.js:*)
at Object.runMain (node.js:*)
at Array.<anonymous> (node.js:*)
at EventEmitter._tickCallback (node.js:*)
at node.js:*

10
test/simple/test-exception-handler2.js

@ -1,11 +1,21 @@
common = require("../common");
assert = common.assert
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});
var timeoutFired = false;
setTimeout(function () {
console.log('This will still run.');
timeoutFired = true;
}, 500);
process.on('exit', function() {
assert.ok(timeoutFired);
});
// Intentionally cause an exception, but don't catch it.
nonexistentFunc();
console.log('This will not run.');

Loading…
Cancel
Save