◐ Shell
clean mode source ↗

async_hooks: add trackPromises option to createHook() by joyeecheung · Pull Request #61415 · nodejs/node

@nodejs-github-bot added async_hooks

Issues and PRs related to the async hooks subsystem.

needs-ci

PRs that need a full CI run.

labels

Jan 17, 2026
This adds a trackPromises option that allows users to completely opt
out of the promise hooks that are installed whenever an async hook is
added. For those who do not need to track promises, this avoids
the excessive hook invocation and the heavy overhead from it.

This option was previously already implemented internally to skip the
noise from promise hooks when debugging async operations via the
V8 inspector. This patch just exposes it.

@Flarna Flarna added the semver-minor

PRs that contain new features and should be released in the next minor version.

label

Jan 18, 2026

Flarna

@Flarna Flarna added the commit-queue-squash

Add this label to instruct the Commit Queue to squash all the PR commits into the first one.

label

Jan 19, 2026

avivkeller

@joyeecheung

aduh95 pushed a commit that referenced this pull request

Jan 28, 2026
This adds a trackPromises option that allows users to completely opt
out of the promise hooks that are installed whenever an async hook is
added. For those who do not need to track promises, this avoids
the excessive hook invocation and the heavy overhead from it.

This option was previously already implemented internally to skip the
noise from promise hooks when debugging async operations via the
V8 inspector. This patch just exposes it.

PR-URL: #61415
Refs: #57148
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>

nodejs-github-bot added a commit that referenced this pull request

Feb 2, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add trackPromises option to createHook() (Joyee Cheung) #61415
src:
  * improve textEncoder encode performance with simdutf (Mert Can Altin) #61496
stream:
  * (SEMVER-MINOR) add bytes() method to stream/consumers (wantaek) #60426
test_runner:
  * (SEMVER-MINOR) add env option to run function (Ethan Arrowood) #61367
url:
  * update ada to v3.4.2 and support unicode 17 (Yagiz Nizipli) #61593

PR-URL: #61635

aduh95

aduh95 added a commit that referenced this pull request

Feb 2, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
net:
  * (SEMVER-MINOR) add `setTOS` and `getTOS` to `Socket` (Amol Yadav) #61503
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
  * improve `TextEncoder` encode performance with `simdutf` (Mert Can Altin) #61496
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
url:
  * update Ada to v3.4.2 and support Unicode 17 (Yagiz Nizipli) #61593

PR-URL: #61635

aduh95 added a commit that referenced this pull request

Feb 2, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
net:
  * (SEMVER-MINOR) add `setTOS` and `getTOS` to `Socket` (Amol Yadav) #61503
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
  * improve `TextEncoder` encode performance with `simdutf` (Mert Can Altin) #61496
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
url:
  * update Ada to v3.4.2 and support Unicode 17 (Yagiz Nizipli) #61593

PR-URL: #61635

aduh95 added a commit that referenced this pull request

Feb 3, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
net:
  * (SEMVER-MINOR) add `setTOS` and `getTOS` to `Socket` (Amol Yadav) #61503
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
  * improve `TextEncoder` encode performance with `simdutf` (Mert Can Altin) #61496
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
url:
  * update Ada to v3.4.2 and support Unicode 17 (Yagiz Nizipli) #61593

PR-URL: #61635

aduh95 pushed a commit that referenced this pull request

Feb 10, 2026
This adds a trackPromises option that allows users to completely opt
out of the promise hooks that are installed whenever an async hook is
added. For those who do not need to track promises, this avoids
the excessive hook invocation and the heavy overhead from it.

This option was previously already implemented internally to skip the
noise from promise hooks when debugging async operations via the
V8 inspector. This patch just exposes it.

PR-URL: #61415
Refs: #57148
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>

nodejs-github-bot added a commit that referenced this pull request

Feb 22, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add trackPromises option to createHook() (Joyee Cheung) #61415
build,deps:
  * replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
deps:
  * (SEMVER-MINOR) add LIEF as a dependency (Joyee Cheung) #61167
  * (SEMVER-MINOR) add tools and scripts to pull LIEF as a dependency (Joyee Cheung) #61167
events:
  * (SEMVER-MINOR) repurpose `events.listenerCount()` to accept EventTargets (René) #60214
fs:
  * (SEMVER-MINOR) add ignore option to fs.watch (Matteo Collina) #61433
http:
  * (SEMVER-MINOR) add http.setGlobalProxyFromEnv() (Joyee Cheung) #60953
module:
  * (SEMVER-MINOR) allow subpath imports that start with `#/` (Jan Martin) #60864
process:
  * (SEMVER-MINOR) preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) #60913
sea:
  * (SEMVER-MINOR) split sea binary manipulation code (Joyee Cheung) #61167
sqlite:
  * (SEMVER-MINOR) enable defensive mode by default (Bart Louwers) #61266
  * (SEMVER-MINOR) add sqlite prepare options args (Guilherme Araújo) #61311
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
stream:
  * (SEMVER-MINOR) add bytes() method to stream/consumers (wantaek) #60426
  * (SEMVER-MINOR) do not pass `readable.compose()` output via `Readable.from()` (René) #60907
test:
  * (SEMVER-MINOR) use fixture directories for sea tests (Joyee Cheung) #61167
test_runner:
  * (SEMVER-MINOR) add env option to run function (Ethan Arrowood) #61367
  * (SEMVER-MINOR) support expecting a test-case to fail (Jacob Smith) #60669
util:
  * (SEMVER-MINOR) add convertProcessSignalToExitCode utility (Erick Wendel) #60963

PR-URL: #61924

aduh95 pushed a commit that referenced this pull request

Feb 22, 2026
This adds a trackPromises option that allows users to completely opt
out of the promise hooks that are installed whenever an async hook is
added. For those who do not need to track promises, this avoids
the excessive hook invocation and the heavy overhead from it.

This option was previously already implemented internally to skip the
noise from promise hooks when debugging async operations via the
V8 inspector. This patch just exposes it.

PR-URL: #61415
Refs: #57148
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>

aduh95 added a commit that referenced this pull request

Feb 22, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
build,deps:
  * replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
deps:
  * (SEMVER-MINOR) add LIEF as a dependency (Joyee Cheung) #61167
events:
  * (SEMVER-MINOR) repurpose `events.listenerCount()` to accept `EventTarget`s (René) #60214
fs:
  * (SEMVER-MINOR) add `ignore` option to `fs.watch` (Matteo Collina) #61433
http:
  * (SEMVER-MINOR) add `http.setGlobalProxyFromEnv()` (Joyee Cheung) #60953
module:
  * (SEMVER-MINOR) allow subpath imports that start with `#/` (Jan Martin) #60864
process:
  * (SEMVER-MINOR) preserve `AsyncLocalStorage` in `queueMicrotask` only when needed (Gürgün Dayıoğlu) #60913
sea:
  * (SEMVER-MINOR) split sea binary manipulation code (Joyee Cheung) #61167
sqlite:
  * (SEMVER-MINOR) enable defensive mode by default (Bart Louwers) #61266
  * (SEMVER-MINOR) add sqlite prepare options args (Guilherme Araújo) #61311
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
  * (SEMVER-MINOR) do not pass `readable.compose()` output via `Readable.from()` (René) #60907
test:
  * (SEMVER-MINOR) use fixture directories for sea tests (Joyee Cheung) #61167
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
  * (SEMVER-MINOR) support expecting a test-case to fail (Jacob Smith) #60669
util:
  * (SEMVER-MINOR) add `convertProcessSignalToExitCode` utility (Erick Wendel) #60963

PR-URL: #61924

aduh95 added a commit that referenced this pull request

Feb 23, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
build,deps:
  * replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
deps:
  * (SEMVER-MINOR) add LIEF as a dependency (Joyee Cheung) #61167
events:
  * (SEMVER-MINOR) repurpose `events.listenerCount()` to accept `EventTarget`s (René) #60214
fs:
  * (SEMVER-MINOR) add `ignore` option to `fs.watch` (Matteo Collina) #61433
http:
  * (SEMVER-MINOR) add `http.setGlobalProxyFromEnv()` (Joyee Cheung) #60953
module:
  * (SEMVER-MINOR) allow subpath imports that start with `#/` (Jan Martin) #60864
process:
  * (SEMVER-MINOR) preserve `AsyncLocalStorage` in `queueMicrotask` only when needed (Gürgün Dayıoğlu) #60913
sea:
  * (SEMVER-MINOR) split sea binary manipulation code (Joyee Cheung) #61167
sqlite:
  * (SEMVER-MINOR) enable defensive mode by default (Bart Louwers) #61266
  * (SEMVER-MINOR) add sqlite prepare options args (Guilherme Araújo) #61311
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
  * (SEMVER-MINOR) do not pass `readable.compose()` output via `Readable.from()` (René) #60907
test:
  * (SEMVER-MINOR) use fixture directories for sea tests (Joyee Cheung) #61167
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
  * (SEMVER-MINOR) support expecting a test-case to fail (Jacob Smith) #60669
util:
  * (SEMVER-MINOR) add `convertProcessSignalToExitCode` utility (Erick Wendel) #60963

PR-URL: #61924

aduh95 added a commit to aduh95/node that referenced this pull request

Feb 24, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) nodejs#61415
build,deps:
  * replace cjs-module-lexer with merve (Yagiz Nizipli) nodejs#61456
deps:
  * (SEMVER-MINOR) add LIEF as a dependency (Joyee Cheung) nodejs#61167
events:
  * (SEMVER-MINOR) repurpose `events.listenerCount()` to accept `EventTarget`s (René) nodejs#60214
fs:
  * (SEMVER-MINOR) add `ignore` option to `fs.watch` (Matteo Collina) nodejs#61433
http:
  * (SEMVER-MINOR) add `http.setGlobalProxyFromEnv()` (Joyee Cheung) nodejs#60953
module:
  * (SEMVER-MINOR) allow subpath imports that start with `#/` (Jan Martin) nodejs#60864
process:
  * (SEMVER-MINOR) preserve `AsyncLocalStorage` in `queueMicrotask` only when needed (Gürgün Dayıoğlu) nodejs#60913
sea:
  * (SEMVER-MINOR) split sea binary manipulation code (Joyee Cheung) nodejs#61167
sqlite:
  * (SEMVER-MINOR) enable defensive mode by default (Bart Louwers) nodejs#61266
  * (SEMVER-MINOR) add sqlite prepare options args (Guilherme Araújo) nodejs#61311
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) nodejs#61548
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) nodejs#60426
  * (SEMVER-MINOR) do not pass `readable.compose()` output via `Readable.from()` (René) nodejs#60907
test:
  * (SEMVER-MINOR) use fixture directories for sea tests (Joyee Cheung) nodejs#61167
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) nodejs#61367
  * (SEMVER-MINOR) support expecting a test-case to fail (Jacob Smith) nodejs#60669
util:
  * (SEMVER-MINOR) add `convertProcessSignalToExitCode` utility (Erick Wendel) nodejs#60963

PR-URL: nodejs#61924

ruyadorno pushed a commit that referenced this pull request

Feb 24, 2026
Notable changes:

async_hooks:
  * (SEMVER-MINOR) add `trackPromises` option to `createHook()` (Joyee Cheung) #61415
build,deps:
  * replace cjs-module-lexer with merve (Yagiz Nizipli) #61456
deps:
  * (SEMVER-MINOR) add LIEF as a dependency (Joyee Cheung) #61167
events:
  * (SEMVER-MINOR) repurpose `events.listenerCount()` to accept `EventTarget`s (René) #60214
fs:
  * (SEMVER-MINOR) add `ignore` option to `fs.watch` (Matteo Collina) #61433
http:
  * (SEMVER-MINOR) add `http.setGlobalProxyFromEnv()` (Joyee Cheung) #60953
module:
  * (SEMVER-MINOR) allow subpath imports that start with `#/` (Jan Martin) #60864
process:
  * (SEMVER-MINOR) preserve `AsyncLocalStorage` in `queueMicrotask` only when needed (Gürgün Dayıoğlu) #60913
sea:
  * (SEMVER-MINOR) split sea binary manipulation code (Joyee Cheung) #61167
sqlite:
  * (SEMVER-MINOR) enable defensive mode by default (Bart Louwers) #61266
  * (SEMVER-MINOR) add sqlite prepare options args (Guilherme Araújo) #61311
src:
  * (SEMVER-MINOR) add initial support for ESM in embedder API (Joyee Cheung) #61548
stream:
  * (SEMVER-MINOR) add `bytes()` method to `node:stream/consumers` (wantaek) #60426
  * (SEMVER-MINOR) do not pass `readable.compose()` output via `Readable.from()` (René) #60907
test:
  * (SEMVER-MINOR) use fixture directories for sea tests (Joyee Cheung) #61167
test_runner:
  * (SEMVER-MINOR) add `env` option to `run` function (Ethan Arrowood) #61367
  * (SEMVER-MINOR) support expecting a test-case to fail (Jacob Smith) #60669
util:
  * (SEMVER-MINOR) add `convertProcessSignalToExitCode` utility (Erick Wendel) #60963

PR-URL: #61924