summaryrefslogtreecommitdiff
path: root/lib/internal/main/worker_thread.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/internal/main/worker_thread.js')
-rw-r--r--lib/internal/main/worker_thread.js40
1 files changed, 21 insertions, 19 deletions
diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js
index 90e84f204b..50a19be77d 100644
--- a/lib/internal/main/worker_thread.js
+++ b/lib/internal/main/worker_thread.js
@@ -166,26 +166,28 @@ function workerOnGlobalUncaughtException(error, fromPromise) {
}
debug(`[${threadId}] uncaught exception handled = ${handled}`);
- if (!handled) {
- let serialized;
- try {
- const { serializeError } = require('internal/error-serdes');
- serialized = serializeError(error);
- } catch {}
- debug(`[${threadId}] uncaught exception serialized = ${!!serialized}`);
- if (serialized)
- port.postMessage({
- type: ERROR_MESSAGE,
- error: serialized
- });
- else
- port.postMessage({ type: COULD_NOT_SERIALIZE_ERROR });
-
- const { clearAsyncIdStack } = require('internal/async_hooks');
- clearAsyncIdStack();
-
- process.exit();
+ if (handled) {
+ return true;
}
+
+ let serialized;
+ try {
+ const { serializeError } = require('internal/error-serdes');
+ serialized = serializeError(error);
+ } catch {}
+ debug(`[${threadId}] uncaught exception serialized = ${!!serialized}`);
+ if (serialized)
+ port.postMessage({
+ type: ERROR_MESSAGE,
+ error: serialized
+ });
+ else
+ port.postMessage({ type: COULD_NOT_SERIALIZE_ERROR });
+
+ const { clearAsyncIdStack } = require('internal/async_hooks');
+ clearAsyncIdStack();
+
+ process.exit();
}
// Patch the global uncaught exception handler so it gets picked up by