node/test/parallel/test-events-uncaught-exception-stack.js
Anna Henningsen 68d508a9e0
events: show throw stack trace for uncaught exception
Show the stack trace for the `eventemitter.emit('error')` call
in the case of an uncaught exception.

Previously, there would be no clue in Node’s output about where
the actual `throw` comes from.

PR-URL: https://github.com/nodejs/node/pull/19003
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-03-04 21:20:43 +00:00

17 lines
512 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
const EventEmitter = require('events');
// Tests that the error stack where the exception was thrown is *not* appended.
process.on('uncaughtException', common.mustCall((err) => {
const lines = err.stack.split('\n');
assert.strictEqual(lines[0], 'Error');
lines.slice(1).forEach((line) => {
assert(/^ at/.test(line), `${line} has an unexpected format`);
});
}));
new EventEmitter().emit('error', new Error());