node/lib/internal/process
Matteo Collina a9da9ffc04
repl: remove dependency on domain module
Replace the domain-based error handling with AsyncLocalStorage and
setUncaughtExceptionCaptureCallback. This removes the REPL's dependency
on the deprecated domain module while preserving all existing behavior:

- Synchronous errors during eval are caught and displayed
- Async errors (setTimeout, promises, etc.) are caught via the
  uncaught exception capture callback
- Top-level await errors are caught and displayed
- The REPL continues operating after errors
- Multiple REPL instances can coexist with errors routed correctly

Changes:
- Use AsyncLocalStorage to track which REPL instance owns an async
  context, replacing domain's automatic async tracking
- Add setupExceptionCapture() to install
  setUncaughtExceptionCaptureCallback for catching async errors and
  routing them to the correct REPL
- Extract error handling logic into REPLServer.prototype._handleError()
- Wrap eval execution in replContext.run() for async context tracking
- Update newListener protection to check AsyncLocalStorage context
- Throw ERR_INVALID_ARG_VALUE if options.domain is passed

PR-URL: https://github.com/nodejs/node/pull/61227
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2026-03-06 15:38:36 +00:00
..
execution.js repl: remove dependency on domain module 2026-03-06 15:38:36 +00:00
finalization.js lib: fix typos 2024-09-25 14:35:18 +00:00
per_thread.js lib: prefer call() over apply() if argument list is not array 2025-11-23 08:45:46 +00:00
permission.js src,permission: add --allow-inspector ability 2025-09-11 20:10:02 +00:00
pre_execution.js src,permission: add --permission-audit 2026-02-26 00:48:26 +00:00
promises.js process: optimize asyncHandledRejections by using FixedQueue 2026-01-02 11:40:05 +00:00
report.js src: add cli option to preserve env vars on dr 2024-11-08 17:49:43 +00:00
signal.js
task_queues.js async_hooks: enabledHooksExist shall return if hooks are enabled 2025-12-31 14:45:20 +00:00
warning.js lib: prefer logical assignment 2024-10-09 06:42:16 +00:00
worker_thread_only.js