mirror of
https://github.com/nodejs/node.git
synced 2025-05-10 17:57:53 +00:00

This commit removes `common.crashOnUnhandledRejection()` and adds `common.disableCrashOnUnhandledRejection()`. To reduce the risk of mistakes and make writing tests that involve promises simpler, always install the unhandledRejection hook in tests and provide a way to disable it for the rare cases where it's needed. PR-URL: https://github.com/nodejs/node/pull/21849 Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
26 lines
695 B
JavaScript
26 lines
695 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
if (process.argv[2] === 'async') {
|
|
common.disableCrashOnUnhandledRejection();
|
|
async function fn() {
|
|
fn();
|
|
throw new Error();
|
|
}
|
|
return (async function() { await fn(); })();
|
|
}
|
|
|
|
const assert = require('assert');
|
|
const { spawnSync } = require('child_process');
|
|
|
|
const ret = spawnSync(
|
|
process.execPath,
|
|
['--stack_size=75', __filename, 'async']
|
|
);
|
|
assert.strictEqual(ret.status, 0,
|
|
`EXIT CODE: ${ret.status}, STDERR:\n${ret.stderr}`);
|
|
const stderr = ret.stderr.toString('utf8', 0, 2048);
|
|
assert.ok(!/async.*hook/i.test(stderr));
|
|
assert.ok(stderr.includes('UnhandledPromiseRejectionWarning: Error'), stderr);
|