From 7fa5157497389cbc90766680f85921b8aa458c9d Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 28 Jan 2019 16:20:40 +0100 Subject: module: do not use `process.exit()` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Inside workers, using stdio is always asynchronous, so using `process.exit()` always interrupts sending of messages to the parent thread, including error messages presented over stdio. Do not use `process.exit()` and instead trigger a “real” uncaught exception. PR-URL: https://github.com/nodejs/node/pull/25769 Reviewed-By: Ruben Bridgewater Reviewed-By: Gus Caplan Reviewed-By: Michaël Zasso Reviewed-By: Guy Bedford Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- lib/internal/modules/cjs/loader.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 8b357e5254..3405ef4322 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -60,14 +60,12 @@ module.exports = Module; let asyncESM; let ModuleJob; let createDynamicModule; -let decorateErrorStack; function lazyLoadESM() { asyncESM = require('internal/process/esm_loader'); ModuleJob = require('internal/modules/esm/module_job'); createDynamicModule = require( 'internal/modules/esm/create_dynamic_module'); - decorateErrorStack = require('internal/util').decorateErrorStack; } const { @@ -794,9 +792,7 @@ Module.runMain = function() { return loader.import(pathToFileURL(process.argv[1]).pathname); }) .catch((e) => { - decorateErrorStack(e); - console.error(e); - process.exit(1); + internalBinding('util').triggerFatalException(e); }); } else { Module._load(process.argv[1], null, true); -- cgit v1.2.3