node/lib/internal
Trivikram Kamat 0855d452bc
debugger: lazily wait for initial break output
Wait for the initial pause render before completing debugger REPL
startup, but only when the initial pause is actually observed during
startup initialization.

Creating the wait promise before Runtime.runIfWaitingForDebugger() can
hang when the debug target exits or disconnects without producing an
initial pause event. It also assumes the inspector object always has
parsed CLI options, which is not true for tests that use a minimal mock
inspector.

Create the initial-render wait lazily from the Debugger.paused handler
while startup initialization is active. This preserves prompt ordering
for normal initial breaks without blocking startup when no initial pause
render occurs.

Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com>
Assisted-by: openai:gpt-5.5
PR-URL: https://github.com/nodejs/node/pull/63969
Refs: https://github.com/nodejs/node/actions/runs/27582782593/job/81546582775
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2026-06-25 16:07:45 +02:00
..
assert
async_local_storage
bootstrap quic: move quic behind compile time flag 2026-05-07 17:32:44 +02:00
child_process child_process: serialize advanced IPC messages natively 2026-06-25 16:07:42 +02:00
cluster
console
crypto crypto: make webcrypto aliasKeyFormat directional 2026-06-25 16:07:41 +02:00
debugger debugger: lazily wait for initial break output 2026-06-25 16:07:45 +02:00
dns dns: coerce -0 to +0 in lookup and resolver inputs 2026-06-25 16:07:32 +02:00
encoding lib: fix typo idenity => identity 2026-06-18 00:15:52 +02:00
errors
events events: improve addAbortListener perf by caching options object 2026-06-25 16:07:37 +02:00
fs fs: do not treat EPERM as ENOTEMPTY on Windows 2026-06-25 16:07:45 +02:00
http2 http2: emit session close before stream close 2026-06-18 21:12:35 +01:00
inspector inspector: coerce key and value to string in webstorage events 2026-05-09 09:32:20 +02:00
legacy
main watch: print name of changed file that triggers restart 2026-06-25 16:07:45 +02:00
modules module: use file: URL as sourceURL for type-stripped CommonJS 2026-06-25 16:07:35 +02:00
per_context lib: improve control abstraction coverage in frozen intrinsics 2026-06-25 16:07:39 +02:00
perf lib: refactor internal webidl converters 2026-06-23 01:06:46 +01:00
process permission: handle process.chdir on writereport 2026-06-17 20:02:05 +02:00
quic crypto: harden KeyObject internal slots 2026-06-23 01:06:39 +01:00
readline
repl repl: fix dedup comparing normalized line against raw history 2026-06-18 00:15:53 +02:00
source_map
streams stream: fix Utf8Stream stall after full write of multi-byte data 2026-06-25 16:07:44 +02:00
test
test_runner test_runner: remove unused shuffleArrayWithSeed 2026-06-25 16:07:39 +02:00
tls tls: add certificateCompression option 2026-06-25 16:07:43 +02:00
util util: fix scientific notation formatting 2026-06-25 16:07:41 +02:00
v8 lib: avoid quadratic shift() in startup snapshot callback 2026-05-07 15:41:47 +02:00
vm
watch_mode watch: print name of changed file that triggers restart 2026-06-25 16:07:45 +02:00
webstreams stream: fix Writable.toWeb() desiredSize for non-object-mode 2026-06-25 16:07:45 +02:00
worker lib: refactor internal webidl converters 2026-06-23 01:06:46 +01:00
abort_controller.js
assert.js
async_context_frame.js
async_hooks.js
blob.js lib: refactor internal webidl converters 2026-06-23 01:06:46 +01:00
blocklist.js net: coerce -0 to +0 in BlockList prefixes 2026-06-25 16:07:32 +02:00
buffer.js
child_process.js child_process: pass spawn options to the binding positionally 2026-06-25 16:07:44 +02:00
cli_table.js
constants.js
data_url.js
dgram.js
encoding.js
error_serdes.js
errors.js tls: add unsupported renegotiation error 2026-06-18 00:15:50 +02:00
event_target.js
file.js
fixed_queue.js
freelist.js
freeze_intrinsics.js lib: improve control abstraction coverage in frozen intrinsics 2026-06-25 16:07:39 +02:00
heap_utils.js
histogram.js
http.js lib,test: redact proxy credentials in tunnel errors 2026-06-17 20:02:05 +02:00
inspector_async_hook.js
inspector_network_tracking.js
js_stream_socket.js
linkedlist.js
locks.js lib: refactor internal webidl converters 2026-06-23 01:06:46 +01:00
mime.js
navigator.js lib: make Navigator#language getter throw on invalid this 2026-06-25 16:07:33 +02:00
net.js net: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive 2026-06-25 16:07:39 +02:00
options.js doc: fix node-config-schema 2026-05-07 18:14:56 +02:00
priority_queue.js
promise_hooks.js
querystring.js
README.md
repl.js
socket_list.js
socketaddress.js
stream_base_commons.js
timers.js
trace_events_async_hooks.js
tty.js
url.js url: fix URLSearchParams(null) to prudce null= per spec 2026-06-25 16:07:38 +02:00
util.js util: remove unused functions 2026-06-18 21:12:37 +01:00
v8_prof_polyfill.js
validators.js fs: coerce -0 to +0 in mode flags and watch intervals 2026-06-25 16:07:32 +02:00
vm.js
wasm_web_api.js
watchdog.js
webidl.js lib: optimize webidl conversion options 2026-06-25 15:30:43 +02:00
webstorage.js inspector: auto collect webstorage data 2026-05-09 09:32:20 +02:00
worker.js watch: track worker entry files in watch mode 2026-05-07 15:41:48 +02:00

Internal Modules

The modules located in lib/internal directory are exclusively meant for internal usage within the Node.js core. They are not intended to be accessed via user modules require(). These modules may change at any point in time. Relying on these internal modules outside the core is not supported and can lead to unpredictable behavior.

In certain scenarios, accessing these internal modules for debugging or experimental purposes might be necessary. Node.js provides the --expose-internals flag to expose these modules to userland code. This flag only exists to assist Node.js maintainers with debugging internals. It is not meant for use outside the project.