Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

src: set PromiseHooks by Environment #38821

Closed
wants to merge 8 commits into from

Conversation

bengl
Copy link
Member

@bengl bengl commented May 26, 2021

The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: #36394
Fixes: #38781
Signed-off-by: Bryan English bryan@bryanenglish.com

@github-actions github-actions bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels May 26, 2021
src/env.h Outdated Show resolved Hide resolved
@Flarna Flarna added the async_hooks Issues and PRs related to the async hooks subsystem. label May 26, 2021
@jasnell
Copy link
Member

jasnell commented May 26, 2021

Any indications on any performance impact here? The changes LGTM modulo @Qard's comments but it would be good to know if this erases any of the performance boost moving to the new model introduced.

@bengl
Copy link
Member Author

bengl commented May 26, 2021

@jasnell

$ node -v
v16.2.0
$ node benchmark/async_hooks/promises.js
async_hooks/promises.js asyncHooks="enabled" n=1000000: 988,948.9406156435
async_hooks/promises.js asyncHooks="enabledWithDestroy" n=1000000: 177,732.39844667522
async_hooks/promises.js asyncHooks="enabledWithInitOnly" n=1000000: 949,161.9536836644
async_hooks/promises.js asyncHooks="disabled" n=1000000: 1,510,627.0817555273
$ ./node -v
v17.0.0-pre
$ ./node benchmark/async_hooks/promises.js
async_hooks/promises.js asyncHooks="enabled" n=1000000: 1,007,064.1369893635
async_hooks/promises.js asyncHooks="enabledWithDestroy" n=1000000: 186,349.95616517004
async_hooks/promises.js asyncHooks="enabledWithInitOnly" n=1000000: 964,554.1856452228
async_hooks/promises.js asyncHooks="disabled" n=1000000: 1,552,148.7418675767

It looks like it did not erase any of the performance boost.

The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>
@bengl bengl force-pushed the bengl/contextpromisehooks branch from 3d1b02e to 7986a9b Compare May 26, 2021 22:03
@Qard
Copy link
Member

Qard commented May 26, 2021

Much thanks @bengl for taking this off my hands. :)

@nodejs-github-bot
Copy link
Collaborator

@Qard
Copy link
Member

Qard commented May 27, 2021

Looks like this is failing the pummel/test-vm-memleak test. Probably the contexts need to be stored as weak references?

@bengl
Copy link
Member Author

bengl commented May 27, 2021

@Qard yeah I switched that up in the fixup commit. It worked locally, and we'll see what the tests do.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@aduh95
Copy link
Contributor

aduh95 commented May 27, 2021

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1032/

                                                                   confidence improvement accuracy (*)   (**)  (***)
async_hooks/promises.js asyncHooks='disabled' n=1000000                           -2.90 %       ±3.28% ±4.37% ±5.69%
async_hooks/promises.js asyncHooks='enabled' n=1000000                      *     -2.41 %       ±2.39% ±3.20% ±4.19%
async_hooks/promises.js asyncHooks='enabledWithDestroy' n=1000000         ***      2.55 %       ±1.42% ±1.89% ±2.47%
async_hooks/promises.js asyncHooks='enabledWithInitOnly' n=1000000                 0.15 %       ±3.28% ±4.36% ±5.67%

targos
targos previously requested changes May 27, 2021
Copy link
Member

@targos targos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@bengl
Copy link
Member Author

bengl commented May 27, 2021

I'm able to replicate the crash that seems to be happening nondeterministically in CI. I made a build with --debug-node and used lldb, but I think I need some help in interpreting the results. it seems to be occurring inside V8::Context::New, so I'm not sure how that would be affected by the changes I introduced here.

Expand this to see the lldb session
$ lldb -- ./node --max-old-space-size=32 --expose-gc test/pummel/test-vm-memleak.js
(lldb) target create "./node"
Current executable set to '/home/bengl/node/node' (x86_64).
(lldb) settings set -- target.run-args  "--max-old-space-size=32" "--expose-gc" "test/pummel/test-vm-memleak.js"
(lldb) r
Process 716429 launched: '/home/bengl/node/node' (x86_64)
Process 716429 exited with status = 0 (0x00000000)
(lldb) r
Process 716498 launched: '/home/bengl/node/node' (x86_64)
Process 716498 stopped
* thread #1, name = 'node', stop reason = signal SIGSEGV: invalid address (fault address: 0xca10)
    frame #0: 0x000000000143e4b0 node`v8::internal::FixStaleLeftTrimmedHandlesVisitor::VisitRootPointers(v8::internal::Root, char const*, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot) + 32
node`v8::internal::FixStaleLeftTrimmedHandlesVisitor::VisitRootPointers:
->  0x143e4b0 <+32>: movq   -0x1(%rax), %rdx
    0x143e4b4 <+36>: testb  $0x1, %dl
    0x143e4b7 <+39>: je     0x143e4a0                 ; <+16>
    0x143e4b9 <+41>: movq   -0x1(%rax), %rax
(lldb) bt
* thread #1, name = 'node', stop reason = signal SIGSEGV: invalid address (fault address: 0xca10)
  * frame #0: 0x000000000143e4b0 node`v8::internal::FixStaleLeftTrimmedHandlesVisitor::VisitRootPointers(v8::internal::Root, char const*, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot) + 32
    frame #1: 0x0000000001298be4 node`v8::internal::HandleScopeImplementer::IterateThis(v8::internal::RootVisitor*) + 68
    frame #2: 0x000000000143537f node`v8::internal::Heap::IterateRoots(v8::internal::RootVisitor*, v8::base::EnumSet<v8::internal::SkipRoot, int>) + 511
    frame #3: 0x0000000001443958 node`v8::internal::IncrementalMarking::StartMarking() + 376
    frame #4: 0x0000000001443718 node`v8::internal::IncrementalMarking::Start(v8::internal::GarbageCollectionReason) + 968
    frame #5: 0x000000000142c71a node`v8::internal::Heap::StartIncrementalMarkingIfAllocationLimitIsReached(int, v8::GCCallbackFlags) + 410
    frame #6: 0x00000000014ac11d node`v8::internal::PagedSpace::AllocateRawSlow(int, v8::internal::AllocationAlignment, v8::internal::AllocationOrigin) + 61
    frame #7: 0x0000000001407266 node`v8::internal::Heap::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) + 470
    frame #8: 0x0000000001436be1 node`v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) + 33
    frame #9: 0x0000000001436c81 node`v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) + 33
    frame #10: 0x00000000017e12a4 node`v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) + 196
    frame #11: 0x00000000017e3f7f node`int v8::internal::Deserializer::ReadSingleBytecodeData<v8::internal::SlotAccessorForHeapObject>(unsigned char, v8::internal::SlotAccessorForHeapObject) + 271
    frame #12: 0x00000000017e15c8 node`v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) + 1000
    frame #13: 0x00000000017e2feb node`int v8::internal::Deserializer::ReadSingleBytecodeData<v8::internal::SlotAccessorForHandle>(unsigned char, v8::internal::SlotAccessorForHandle) + 219
    frame #14: 0x00000000017e2eef node`v8::internal::Deserializer::ReadObject() + 47
    frame #15: 0x00000000017df7ae node`v8::internal::ContextDeserializer::Deserialize(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSGlobalProxy>, v8::DeserializeInternalFieldsCallback) + 1150
    frame #16: 0x00000000017df306 node`v8::internal::ContextDeserializer::DeserializeContext(v8::internal::Isolate*, v8::internal::SnapshotData const*, bool, v8::internal::Handle<v8::internal::JSGlobalProxy>, v8::DeserializeInternalFieldsCallback) + 118
    frame #17: 0x00000000017fc657 node`v8::internal::Snapshot::NewContextFromSnapshot(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSGlobalProxy>, unsigned long, v8::DeserializeInternalFieldsCallback) + 295
    frame #18: 0x00000000014f4765 node`v8::internal::Genesis::Genesis(v8::internal::Isolate*, v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Local<v8::ObjectTemplate>, unsigned long, v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 245
    frame #19: 0x00000000014dd62d node`v8::internal::Bootstrapper::CreateEnvironment(v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Local<v8::ObjectTemplate>, v8::ExtensionConfiguration*, unsigned long, v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 77
    frame #20: 0x0000000001285cea node`v8::NewContext(v8::Isolate*, v8::ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, v8::MaybeLocal<v8::Value>, unsigned long, v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 1690
    frame #21: 0x0000000001286127 node`v8::Context::New(v8::Isolate*, v8::ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, v8::MaybeLocal<v8::Value>, v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 39
    frame #22: 0x0000000000f96482 node`node::contextify::ContextifyContext::CreateV8Context(this=0x0000000004da66e0, env=0x0000000004ca01a0, sandbox_obj=(val_ = 0x00007fffffffd008), options=0x00007fffffffcd28) at node_contextify.cc:199:24
    frame #23: 0x0000000000f96066 node`node::contextify::ContextifyContext::ContextifyContext(this=0x0000000004da66e0, env=0x0000000004ca01a0, sandbox_obj=(val_ = 0x00007fffffffd008), options=0x00007fffffffcd28) at node_contextify.cc:117:36
    frame #24: 0x0000000000f9e4c4 node`std::_MakeUniq<node::contextify::ContextifyContext>::__single_object std::make_unique<node::contextify::ContextifyContext, node::Environment*&, v8::Local<v8::Object>&, node::contextify::ContextOptions&>(__args=0x00007fffffffcd80, __args=0x00007fffffffcd70, __args=0x00007fffffffcd28) at unique_ptr.h:962:34
    frame #25: 0x0000000000f97edb node`node::contextify::ContextifyContext::MakeContext(args=0x00007fffffffce30) at node_contextify.cc:308:7
    frame #26: 0x00000000012d5ca7 node`v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 535
    frame #27: 0x00000000012d52e3 node`v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 691
    frame #28: 0x00000000012d4987 node`v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 247
    frame #29: 0x0000000001ad83f9 node`Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 57
    frame #30: 0x0000000001a70ea5 node`Builtins_InterpreterEntryTrampoline + 197
    frame #31: 0x0000000001a70ea5 node`Builtins_InterpreterEntryTrampoline + 197
    frame #32: 0x0000000001a70ea5 node`Builtins_InterpreterEntryTrampoline + 197
    frame #33: 0x0000000001a714e0 node
    frame #34: 0x0000000001a70ea5 node`Builtins_InterpreterEntryTrampoline + 197
    frame #35: 0x0000000001a6f11b node`Builtins_JSEntryTrampoline + 91
    frame #36: 0x0000000001a6eea3 node`Builtins_JSEntry + 131
    frame #37: 0x00000000013b4282 node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) + 2658
    frame #38: 0x00000000013b3805 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 213
    frame #39: 0x00000000012822c9 node`v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 425
    frame #40: 0x0000000000ee86c1 node`node::Environment::RunTimers(handle=0x0000000004ca0358) at env.cc:870:15
    frame #41: 0x0000000001a52b36 node`uv__run_timers(loop=0x0000000004b87130) at timer.c:178:5
    frame #42: 0x0000000001a5589b node`uv_run(loop=0x0000000004b87130, mode=UV_RUN_DEFAULT) at core.c:376:5
    frame #43: 0x0000000000e2adfc node`node::SpinEventLoop(env=0x0000000004ca01a0) at embed_helpers.cc:35:7
    frame #44: 0x0000000001036776 node`node::NodeMainInstance::Run(this=0x00007fffffffdb00, env_info=0x0000000004b8bb30) at node_main_instance.cc:143:19
    frame #45: 0x0000000000f50d93 node`node::Start(argc=4, argv=0x00007fffffffdd98) at node.cc:1125:38
    frame #46: 0x0000000001d99e62 node`main(argc=4, argv=0x00007fffffffdd98) at node_main.cc:127:10
    frame #47: 0x00007ffff7a5fcb2 libc.so.6`__libc_start_main + 242
    frame #48: 0x0000000000dd2abe node`_start + 46

@addaleax
Copy link
Member

/cc @joyeecheung based on the stack trace

src/env-inl.h Outdated Show resolved Hide resolved
src/env-inl.h Outdated Show resolved Hide resolved
src/env-inl.h Show resolved Hide resolved
@joyeecheung
Copy link
Member

I'm able to replicate the crash that seems to be happening nondeterministically in CI. I made a build with --debug-node and used lldb, but I think I need some help in interpreting the results. it seems to be occurring inside V8::Context::New, so I'm not sure how that would be affected by the changes I introduced here.

From a quick look this looks more like a bug in V8, either the GC is visiting things that it's not supposed to, or something is wiped off by GC unintentionally. Does this reproduce consistently?

@bengl
Copy link
Member Author

bengl commented May 27, 2021

@joyeecheung

Does this reproduce consistently?

I'm able to reproduce it in roughly (I'm guessing) 20% of the runs of that test (test/pummel/test-vm-memleak.js) on my (Linux) machine.

@Qard
Copy link
Member

Qard commented May 27, 2021

It reproduces on macOS too.

@Qard
Copy link
Member

Qard commented May 27, 2021

Is there a specific reason for the --max_old_space_size=32? It doesn't crash at all at 64.

addaleax added a commit that referenced this pull request Jun 3, 2021
Refs: #38821 (comment)

PR-URL: #38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
targos pushed a commit that referenced this pull request Jun 11, 2021
Refs: #38821 (comment)

PR-URL: #38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Qard pushed a commit to Qard/node that referenced this pull request Jun 15, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
richardlau pushed a commit that referenced this pull request Jul 16, 2021
Refs: #38821 (comment)

PR-URL: #38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
richardlau pushed a commit that referenced this pull request Jul 19, 2021
Refs: #38821 (comment)

PR-URL: #38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Qard pushed a commit to Qard/node that referenced this pull request Jul 19, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
richardlau pushed a commit that referenced this pull request Jul 20, 2021
Refs: #38821 (comment)

PR-URL: #38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Qard pushed a commit to Qard/node that referenced this pull request Jul 21, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Qard pushed a commit to Qard/node that referenced this pull request Jul 21, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Qard pushed a commit to Qard/node that referenced this pull request Jul 21, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Qard pushed a commit to Qard/node that referenced this pull request Aug 1, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
targos pushed a commit that referenced this pull request Aug 3, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: #36394
Fixes: #38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: #38821
Backport-PR-URL: #38577
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
BethGriggs pushed a commit that referenced this pull request Aug 12, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: #36394
Fixes: #38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: #38821
Backport-PR-URL: #38577
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
MylesBorins pushed a commit that referenced this pull request Aug 31, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: #36394
Fixes: #38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: #38821
Backport-PR-URL: #38577
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
mwalbeck pushed a commit to mwalbeck/docker-jellyfin-livestream that referenced this pull request Oct 6, 2021
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://github.com/nodejs/node) | stage | minor | `14.17.6-buster` -> `14.18.0-buster` |

---

### Release Notes

<details>
<summary>nodejs/node</summary>

### [`v14.18.0`](https://github.com/nodejs/node/releases/v14.18.0)

[Compare Source](https://github.com/nodejs/node/compare/v14.17.6...v14.18.0)

##### Notable Changes

-   \[[`3a60de0135`](https://github.com/nodejs/node/commit/3a60de0135)] - **assert**: change status of legacy asserts (James M Snell) [#&#8203;38113](https://github.com/nodejs/node/pull/38113)
-   \[[`df37c106a7`](https://github.com/nodejs/node/commit/df37c106a7)] - **(SEMVER-MINOR)** **buffer**: introduce Blob (James M Snell) [#&#8203;36811](https://github.com/nodejs/node/pull/36811)
-   \[[`223494c548`](https://github.com/nodejs/node/commit/223494c548)] - **(SEMVER-MINOR)** **buffer**: add base64url encoding option (Filip Skokan) [#&#8203;36952](https://github.com/nodejs/node/pull/36952)
-   \[[`14fc4ddabc`](https://github.com/nodejs/node/commit/14fc4ddabc)] - **(SEMVER-MINOR)** **child_process**: allow `options.cwd` receive a URL (Khaidi Chu) [#&#8203;38862](https://github.com/nodejs/node/pull/38862)
-   \[[`b68b13acb3`](https://github.com/nodejs/node/commit/b68b13acb3)] - **(SEMVER-MINOR)** **child_process**: add timeout to spawn and fork (Nitzan Uziely) [#&#8203;37256](https://github.com/nodejs/node/pull/37256)
-   \[[`da98c9f99b`](https://github.com/nodejs/node/commit/da98c9f99b)] - **(SEMVER-MINOR)** **child_process**: allow promisified exec to be cancel (Carlos Fuentes) [#&#8203;34249](https://github.com/nodejs/node/pull/34249)
-   \[[`779310ac87`](https://github.com/nodejs/node/commit/779310ac87)] - **(SEMVER-MINOR)** **child_process**: add 'overlapped' stdio flag (Thiago Padilha) [#&#8203;29412](https://github.com/nodejs/node/pull/29412)
-   \[[`40eb3b79f1`](https://github.com/nodejs/node/commit/40eb3b79f1)] - **(SEMVER-MINOR)** **cli**: add -C alias for --conditions flag (Guy Bedford) [#&#8203;38755](https://github.com/nodejs/node/pull/38755)
-   \[[`39eba0a2e1`](https://github.com/nodejs/node/commit/39eba0a2e1)] - **(SEMVER-MINOR)** **cli**: add --node-memory-debug option (Anna Henningsen) [#&#8203;35537](https://github.com/nodejs/node/pull/35537)
-   \[[`d8d9a9628a`](https://github.com/nodejs/node/commit/d8d9a9628a)] - **(SEMVER-MINOR)** **dns**: add "tries" option to Resolve options (Luan Devecchi) [#&#8203;39610](https://github.com/nodejs/node/pull/39610)
-   \[[`15ba19b020`](https://github.com/nodejs/node/commit/15ba19b020)] - **(SEMVER-MINOR)** **dns**: allow `--dns-result-order` to change default dns verbatim (Ouyang Yadong) [#&#8203;38099](https://github.com/nodejs/node/pull/38099)
-   \[[`307c1d817f`](https://github.com/nodejs/node/commit/307c1d817f)] - **doc**: refactor fs docs structure (James M Snell) [#&#8203;37170](https://github.com/nodejs/node/pull/37170)
-   \[[`9ee3f77e32`](https://github.com/nodejs/node/commit/9ee3f77e32)] - **(SEMVER-MINOR)** **errors**: remove experimental from --enable-source-maps (Benjamin Coe) [#&#8203;37362](https://github.com/nodejs/node/pull/37362)
-   \[[`e73bfed2f4`](https://github.com/nodejs/node/commit/e73bfed2f4)] - **esm**: deprecate legacy main lookup for modules (Guy Bedford) [#&#8203;36918](https://github.com/nodejs/node/pull/36918)
-   \[[`989c204a58`](https://github.com/nodejs/node/commit/989c204a58)] - **(SEMVER-MINOR)** **fs**: allow empty string for temp directory prefix (Voltrex) [#&#8203;39028](https://github.com/nodejs/node/pull/39028)
-   \[[`ef72490cde`](https://github.com/nodejs/node/commit/ef72490cde)] - **(SEMVER-MINOR)** **fs**: allow no-params fsPromises fileHandle read (Nitzan Uziely) [#&#8203;38287](https://github.com/nodejs/node/pull/38287)
-   \[[`cad9d20f64`](https://github.com/nodejs/node/commit/cad9d20f64)] - **(SEMVER-MINOR)** **fs**: add support for async iterators to `fsPromises.writeFile` (HiroyukiYagihashi) [#&#8203;37490](https://github.com/nodejs/node/pull/37490)
-   \[[`2b0e2706c0`](https://github.com/nodejs/node/commit/2b0e2706c0)] - **fs**: improve fsPromises readFile performance (Nitzan Uziely) [#&#8203;37608](https://github.com/nodejs/node/pull/37608)
-   \[[`fe12cc07b3`](https://github.com/nodejs/node/commit/fe12cc07b3)] - **(SEMVER-MINOR)** **fs**: add fsPromises.watch() (James M Snell) [#&#8203;37179](https://github.com/nodejs/node/pull/37179)
-   \[[`2459c115a8`](https://github.com/nodejs/node/commit/2459c115a8)] - **(SEMVER-MINOR)** **fs**: allow `position` parameter to be a `BigInt` in read and readSync (Darshan Sen) [#&#8203;36190](https://github.com/nodejs/node/pull/36190)
-   \[[`6544cfb4b9`](https://github.com/nodejs/node/commit/6544cfb4b9)] - **(SEMVER-MINOR)** **http2**: add support for sensitive headers (Anna Henningsen) [#&#8203;34145](https://github.com/nodejs/node/pull/34145)
-   \[[`a6c6cbb4e6`](https://github.com/nodejs/node/commit/a6c6cbb4e6)] - **(SEMVER-MINOR)** **http2**: allow setting the local window size of a session (Yongsheng Zhang) [#&#8203;35978](https://github.com/nodejs/node/pull/35978)
-   \[[`1e5aca550c`](https://github.com/nodejs/node/commit/1e5aca550c)] - **inspector**: mark as stable (Gireesh Punathil) [#&#8203;37748](https://github.com/nodejs/node/pull/37748)
-   \[[`93af04afbb`](https://github.com/nodejs/node/commit/93af04afbb)] - **(SEMVER-MINOR)** **module**: add support for `URL` to `import.meta.resolve` (Antoine du Hamel) [#&#8203;38587](https://github.com/nodejs/node/pull/38587)
-   \[[`f9f9389d83`](https://github.com/nodejs/node/commit/f9f9389d83)] - **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed `require(…)` calls (ExE Boss) [#&#8203;37246](https://github.com/nodejs/node/pull/37246)
-   \[[`87c71065eb`](https://github.com/nodejs/node/commit/87c71065eb)] - **(SEMVER-MINOR)** **net**: introduce net.BlockList (James M Snell) [#&#8203;34625](https://github.com/nodejs/node/pull/34625)
-   \[[`b421d99a48`](https://github.com/nodejs/node/commit/b421d99a48)] - **(SEMVER-MINOR)** **node-api**: allow retrieval of add-on file name (Gabriel Schulhof) [#&#8203;37195](https://github.com/nodejs/node/pull/37195)
-   \[[`6a4811df8a`](https://github.com/nodejs/node/commit/6a4811df8a)] - **(SEMVER-MINOR)** **os**: add os.devNull (Luigi Pinca) [#&#8203;38569](https://github.com/nodejs/node/pull/38569)
-   \[[`4a88ddeeca`](https://github.com/nodejs/node/commit/4a88ddeeca)] - **(SEMVER-MINOR)** **perf_hooks**: introduce createHistogram (James M Snell) [#&#8203;37155](https://github.com/nodejs/node/pull/37155)
-   \[[`1a6bf1c4a3`](https://github.com/nodejs/node/commit/1a6bf1c4a3)] - **(SEMVER-MINOR)** **process**: add api to enable source-maps programmatically (legendecas) [#&#8203;39085](https://github.com/nodejs/node/pull/39085)
-   \[[`99735a6fe8`](https://github.com/nodejs/node/commit/99735a6fe8)] - **(SEMVER-MINOR)** **process**: add `'worker'` event (James M Snell) [#&#8203;38659](https://github.com/nodejs/node/pull/38659)
-   \[[`3982919317`](https://github.com/nodejs/node/commit/3982919317)] - **(SEMVER-MINOR)** **process**: add direct access to rss without iterating pages (Adrien Maret) [#&#8203;34291](https://github.com/nodejs/node/pull/34291)
-   \[[`526e6c7bde`](https://github.com/nodejs/node/commit/526e6c7bde)] - **(SEMVER-MINOR)** **readline**: add AbortSignal support to interface (Nitzan Uziely) [#&#8203;37932](https://github.com/nodejs/node/pull/37932)
-   \[[`e6eee08692`](https://github.com/nodejs/node/commit/e6eee08692)] - **(SEMVER-MINOR)** **readline**: add support for the AbortController to the question method (Mattias Runge-Broberg) [#&#8203;33676](https://github.com/nodejs/node/pull/33676)
-   \[[`32de361d70`](https://github.com/nodejs/node/commit/32de361d70)] - **(SEMVER-MINOR)** **readline**: add history event and option to set initial history (Mattias Runge-Broberg) [#&#8203;33662](https://github.com/nodejs/node/pull/33662)
-   \[[`797f7f8a38`](https://github.com/nodejs/node/commit/797f7f8a38)] - **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed `require(…)` calls (ExE Boss) [#&#8203;37246](https://github.com/nodejs/node/pull/37246)
-   \[[`abfd71b64c`](https://github.com/nodejs/node/commit/abfd71b64c)] - **(SEMVER-MINOR)** **src**: call overload ctor from the original ctor (Darshan Sen) [#&#8203;39768](https://github.com/nodejs/node/pull/39768)
-   \[[`1efae01b18`](https://github.com/nodejs/node/commit/1efae01b18)] - **(SEMVER-MINOR)** **src**: add a constructor overload for CallbackScope (Darshan Sen) [#&#8203;39768](https://github.com/nodejs/node/pull/39768)
-   \[[`f7933804ba`](https://github.com/nodejs/node/commit/f7933804ba)] - **(SEMVER-MINOR)** **src**: allow to negate boolean CLI flags (Michaël Zasso) [#&#8203;39023](https://github.com/nodejs/node/pull/39023)
-   \[[`6d06ac2202`](https://github.com/nodejs/node/commit/6d06ac2202)] - **(SEMVER-MINOR)** **src**: add --heapsnapshot-near-heap-limit option (Joyee Cheung) [#&#8203;33010](https://github.com/nodejs/node/pull/33010)
-   \[[`577d228ca0`](https://github.com/nodejs/node/commit/577d228ca0)] - **(SEMVER-MINOR)** **src**: add way to get IsolateData and allocator from Environment (Anna Henningsen) [#&#8203;36441](https://github.com/nodejs/node/pull/36441)
-   \[[`658a266cd4`](https://github.com/nodejs/node/commit/658a266cd4)] - **(SEMVER-MINOR)** **src**: allow preventing SetPrepareStackTraceCallback (Shelley Vohr) [#&#8203;36447](https://github.com/nodejs/node/pull/36447)
-   \[[`f421422ea4`](https://github.com/nodejs/node/commit/f421422ea4)] - **(SEMVER-MINOR)** **src**: add maybe versions of EmitExit and EmitBeforeExit (Anna Henningsen) [#&#8203;35486](https://github.com/nodejs/node/pull/35486)
-   \[[`a62d4d60f4`](https://github.com/nodejs/node/commit/a62d4d60f4)] - **(SEMVER-MINOR)** **stream**: add readableDidRead if has been read from (Robert Nagy) [#&#8203;39589](https://github.com/nodejs/node/pull/39589)
-   \[[`63502131a3`](https://github.com/nodejs/node/commit/63502131a3)] - **(SEMVER-MINOR)** **stream**: pipeline accept Buffer as a valid first argument (Nitzan Uziely) [#&#8203;37739](https://github.com/nodejs/node/pull/37739)
-   \[[`68bbebd42c`](https://github.com/nodejs/node/commit/68bbebd42c)] - **(SEMVER-MINOR)** **tls**: allow reading data into a static buffer (Andrey Pechkurov) [#&#8203;35753](https://github.com/nodejs/node/pull/35753)
-   \[[`1cbb74d63d`](https://github.com/nodejs/node/commit/1cbb74d63d)] - **(SEMVER-MINOR)** **url**: expose urlToHttpOptions utility (Yongsheng Zhang) [#&#8203;35960](https://github.com/nodejs/node/pull/35960)
-   \[[`8eb11356dd`](https://github.com/nodejs/node/commit/8eb11356dd)] - **(SEMVER-MINOR)** **util**: expose toUSVString (Robert Nagy) [#&#8203;39814](https://github.com/nodejs/node/pull/39814)
-   \[[`84fcdc3074`](https://github.com/nodejs/node/commit/84fcdc3074)] - **(SEMVER-MINOR)** **v8**: implement v8.stopCoverage() (Joyee Cheung) [#&#8203;33807](https://github.com/nodejs/node/pull/33807)
-   \[[`b238b6bf17`](https://github.com/nodejs/node/commit/b238b6bf17)] - **(SEMVER-MINOR)** **v8**: implement v8.takeCoverage() (Joyee Cheung) [#&#8203;33807](https://github.com/nodejs/node/pull/33807)
-   \[[`9f6bc58da8`](https://github.com/nodejs/node/commit/9f6bc58da8)] - **(SEMVER-MINOR)** **worker**: add setEnvironmentData/getEnvironmentData (James M Snell) [#&#8203;37486](https://github.com/nodejs/node/pull/37486)

##### Commits

##### Semver-minor commits

-   \[[`f3563d3197`](https://github.com/nodejs/node/commit/f3563d3197)] - **(SEMVER-MINOR)** **async_hooks**: use new v8::Context PromiseHook API (Stephen Belanger) [#&#8203;36394](https://github.com/nodejs/node/pull/36394)
-   \[[`df37c106a7`](https://github.com/nodejs/node/commit/df37c106a7)] - **(SEMVER-MINOR)** **buffer**: introduce Blob (James M Snell) [#&#8203;36811](https://github.com/nodejs/node/pull/36811)
-   \[[`223494c548`](https://github.com/nodejs/node/commit/223494c548)] - **(SEMVER-MINOR)** **buffer**: add base64url encoding option (Filip Skokan) [#&#8203;36952](https://github.com/nodejs/node/pull/36952)
-   \[[`14fc4ddabc`](https://github.com/nodejs/node/commit/14fc4ddabc)] - **(SEMVER-MINOR)** **child_process**: allow `options.cwd` receive a URL (Khaidi Chu) [#&#8203;38862](https://github.com/nodejs/node/pull/38862)
-   \[[`b68b13acb3`](https://github.com/nodejs/node/commit/b68b13acb3)] - **(SEMVER-MINOR)** **child_process**: add timeout to spawn and fork (Nitzan Uziely) [#&#8203;37256](https://github.com/nodejs/node/pull/37256)
-   \[[`da98c9f99b`](https://github.com/nodejs/node/commit/da98c9f99b)] - **(SEMVER-MINOR)** **child_process**: allow promisified exec to be cancel (Carlos Fuentes) [#&#8203;34249](https://github.com/nodejs/node/pull/34249)
-   \[[`779310ac87`](https://github.com/nodejs/node/commit/779310ac87)] - **(SEMVER-MINOR)** **child_process**: add 'overlapped' stdio flag (Thiago Padilha) [#&#8203;29412](https://github.com/nodejs/node/pull/29412)
-   \[[`40eb3b79f1`](https://github.com/nodejs/node/commit/40eb3b79f1)] - **(SEMVER-MINOR)** **cli**: add -C alias for --conditions flag (Guy Bedford) [#&#8203;38755](https://github.com/nodejs/node/pull/38755)
-   \[[`39eba0a2e1`](https://github.com/nodejs/node/commit/39eba0a2e1)] - **(SEMVER-MINOR)** **cli**: add --node-memory-debug option (Anna Henningsen) [#&#8203;35537](https://github.com/nodejs/node/pull/35537)
-   \[[`d9b58a0262`](https://github.com/nodejs/node/commit/d9b58a0262)] - **(SEMVER-MINOR)** **deps**: V8: cherry-pick [`fa4cb17`](https://github.com/nodejs/node/commit/fa4cb172cde2) (Stephen Belanger) [#&#8203;38577](https://github.com/nodejs/node/pull/38577)
-   \[[`9d7177c152`](https://github.com/nodejs/node/commit/9d7177c152)] - **(SEMVER-MINOR)** **deps**: V8: cherry-pick [`4c07451`](https://github.com/nodejs/node/commit/4c074516397b) (Stephen Belanger) [#&#8203;36394](https://github.com/nodejs/node/pull/36394)
-   \[[`ec0f0ef8ef`](https://github.com/nodejs/node/commit/ec0f0ef8ef)] - **(SEMVER-MINOR)** **deps**: V8: cherry-pick [`5f44131`](https://github.com/nodejs/node/commit/5f4413194480) (Stephen Belanger) [#&#8203;36394](https://github.com/nodejs/node/pull/36394)
-   \[[`3e7238e45a`](https://github.com/nodejs/node/commit/3e7238e45a)] - **(SEMVER-MINOR)** **deps**: V8: cherry-pick [`272445f`](https://github.com/nodejs/node/commit/272445f10927) (Stephen Belanger) [#&#8203;36394](https://github.com/nodejs/node/pull/36394)
-   \[[`214e568597`](https://github.com/nodejs/node/commit/214e568597)] - **(SEMVER-MINOR)** **deps**: V8: backport [`c0fceaa`](https://github.com/nodejs/node/commit/c0fceaa0669b) (Stephen Belanger) [#&#8203;36394](https://github.com/nodejs/node/pull/36394)
-   \[[`d8d9a9628a`](https://github.com/nodejs/node/commit/d8d9a9628a)] - **(SEMVER-MINOR)** **dns**: add "tries" option to Resolve options (Luan Devecchi) [#&#8203;39610](https://github.com/nodejs/node/pull/39610)
-   \[[`15ba19b020`](https://github.com/nodejs/node/commit/15ba19b020)] - **(SEMVER-MINOR)** **dns**: allow `--dns-result-order` to change default dns verbatim (Ouyang Yadong) [#&#8203;38099](https://github.com/nodejs/node/pull/38099)
-   \[[`defb77cac9`](https://github.com/nodejs/node/commit/defb77cac9)] - **(SEMVER-MINOR)** **doc**: add missing change to resolver ctor (Luan Devecchi) [#&#8203;39610](https://github.com/nodejs/node/pull/39610)
-   \[[`9ee3f77e32`](https://github.com/nodejs/node/commit/9ee3f77e32)] - **(SEMVER-MINOR)** **errors**: remove experimental from --enable-source-maps (Benjamin Coe) [#&#8203;37362](https://github.com/nodejs/node/pull/37362)
-   \[[`989c204a58`](https://github.com/nodejs/node/commit/989c204a58)] - **(SEMVER-MINOR)** **fs**: allow empty string for temp directory prefix (Voltrex) [#&#8203;39028](https://github.com/nodejs/node/pull/39028)
-   \[[`ef72490cde`](https://github.com/nodejs/node/commit/ef72490cde)] - **(SEMVER-MINOR)** **fs**: allow no-params fsPromises fileHandle read (Nitzan Uziely) [#&#8203;38287](https://github.com/nodejs/node/pull/38287)
-   \[[`cad9d20f64`](https://github.com/nodejs/node/commit/cad9d20f64)] - **(SEMVER-MINOR)** **fs**: add support for async iterators to `fsPromises.writeFile` (HiroyukiYagihashi) [#&#8203;37490](https://github.com/nodejs/node/pull/37490)
-   \[[`fe12cc07b3`](https://github.com/nodejs/node/commit/fe12cc07b3)] - **(SEMVER-MINOR)** **fs**: add fsPromises.watch() (James M Snell) [#&#8203;37179](https://github.com/nodejs/node/pull/37179)
-   \[[`2459c115a8`](https://github.com/nodejs/node/commit/2459c115a8)] - **(SEMVER-MINOR)** **fs**: allow `position` parameter to be a `BigInt` in read and readSync (Darshan Sen) [#&#8203;36190](https://github.com/nodejs/node/pull/36190)
-   \[[`6544cfb4b9`](https://github.com/nodejs/node/commit/6544cfb4b9)] - **(SEMVER-MINOR)** **http2**: add support for sensitive headers (Anna Henningsen) [#&#8203;34145](https://github.com/nodejs/node/pull/34145)
-   \[[`a6c6cbb4e6`](https://github.com/nodejs/node/commit/a6c6cbb4e6)] - **(SEMVER-MINOR)** **http2**: allow setting the local window size of a session (Yongsheng Zhang) [#&#8203;35978](https://github.com/nodejs/node/pull/35978)
-   \[[`93af04afbb`](https://github.com/nodejs/node/commit/93af04afbb)] - **(SEMVER-MINOR)** **module**: add support for `URL` to `import.meta.resolve` (Antoine du Hamel) [#&#8203;38587](https://github.com/nodejs/node/pull/38587)
-   \[[`f9f9389d83`](https://github.com/nodejs/node/commit/f9f9389d83)] - **(SEMVER-MINOR)** **module**: add support for `node:`‑prefixed `require(…)` calls (ExE Boss) [#&#8203;37246](https://github.com/nodejs/node/pull/37246)
-   \[[`76d4f22bab`](https://github.com/nodejs/node/commit/76d4f22bab)] - **(SEMVER-MINOR)** **net**: allow net.BlockList to use net.SocketAddress objects (James M Snell) [#&#8203;37917](https://github.com/nodejs/node/pull/37917)
-   \[[`82363d864d`](https://github.com/nodejs/node/commit/82363d864d)] - **(SEMVER-MINOR)** **net**: add SocketAddress class (James M Snell) [#&#8203;37917](https://github.com/nodejs/node/pull/37917)
-   \[[`0202ba46b8`](https://github.com/nodejs/node/commit/0202ba46b8)] - **(SEMVER-MINOR)** **net**: make net.BlockList cloneable (James M Snell) [#&#8203;37917](https://github.com/nodejs/node/pull/37917)
-   \[[`a41a3e3b3f`](https://github.com/nodejs/node/commit/a41a3e3b3f)] - **(SEMVER-MINOR)** **net**: make blocklist family case insensitive (James M Snell) [#&#8203;34864](https://github.com/nodejs/node/pull/34864)
-   \[[`87c71065eb`](https://github.com/nodejs/node/commit/87c71065eb)] - **(SEMVER-MINOR)** **net**: introduce net.BlockList (James M Snell) [#&#8203;34625](https://github.com/nodejs/node/pull/34625)
-   \[[`b421d99a48`](https://github.com/nodejs/node/commit/b421d99a48)] - **(SEMVER-MINOR)** **node-api**: allow retrieval of add-on file name (Gabriel Schulhof) [#&#8203;37195](https://github.com/nodejs/node/pull/37195)
-   \[[`6a4811df8a`](https://github.com/nodejs/node/commit/6a4811df8a)] - **(SEMVER-MINOR)** **os**: add os.devNull (Luigi Pinca) [#&#8203;38569](https://github.com/nodejs/node/pull/38569)
-   \[[`4a88ddeeca`](https://github.com/nodejs/node/commit/4a88ddeeca)] - **(SEMVER-MINOR)** **perf_hooks**: introduce createHistogram (James M Snell) [#&#8203;37155](https://github.com/nodejs/node/pull/37155)
-   \[[`1a6bf1c4a3`](https://github.com/nodejs/node/commit/1a6bf1c4a3)] - **(SEMVER-MINOR)** **process**: add api to enable source-maps programmatically (legendecas) [#&#8203;39085](https://github.com/nodejs/node/pull/39085)
-   \[[`99735a6fe8`](https://github.com/nodejs/node/commit/99735a6fe8)] - **(SEMVER-MINOR)** **process**: add `'worker'` event (James M Snell) [#&#8203;38659](https://github.com/nodejs/node/pull/38659)
-   \[[`3982919317`](https://github.com/nodejs/node/commit/3982919317)] - **(SEMVER-MINOR)** **process**: add direct access to rss without iterating pages (Adrien Maret) [#&#8203;34291](https://github.com/nodejs/node/pull/34291)
-   \[[`526e6c7bde`](https://github.com/nodejs/node/commit/526e6c7bde)] - **(SEMVER-MINOR)** **readline**: add AbortSignal support to interface (Nitzan Uziely) [#&#8203;37932](https://github.com/nodejs/node/pull/37932)
-   \[[`e6eee08692`](https://github.com/nodejs/node/commit/e6eee08692)] - **(SEMVER-MINOR)** **readline**: add support for the AbortController to the question method (Mattias Runge-Broberg) [#&#8203;33676](https://github.com/nodejs/node/pull/33676)
-   \[[`32de361d70`](https://github.com/nodejs/node/commit/32de361d70)] - **(SEMVER-MINOR)** **readline**: add history event and option to set initial history (Mattias Runge-Broberg) [#&#8203;33662](https://github.com/nodejs/node/pull/33662)
-   \[[`797f7f8a38`](https://github.com/nodejs/node/commit/797f7f8a38)] - **(SEMVER-MINOR)** **repl**: add auto‑completion for `node:`‑prefixed `require(…)` calls (ExE Boss) [#&#8203;37246](https://github.com/nodejs/node/pull/37246)
-   \[[`abfd71b64c`](https://github.com/nodejs/node/commit/abfd71b64c)] - **(SEMVER-MINOR)** **src**: call overload ctor from the original ctor (Darshan Sen) [#&#8203;39768](https://github.com/nodejs/node/pull/39768)
-   \[[`1efae01b18`](https://github.com/nodejs/node/commit/1efae01b18)] - **(SEMVER-MINOR)** **src**: add a constructor overload for CallbackScope (Darshan Sen) [#&#8203;39768](https://github.com/nodejs/node/pull/39768)
-   \[[`1aa2080d29`](https://github.com/nodejs/node/commit/1aa2080d29)] - **(SEMVER-MINOR)** **src**: fix align in cares_wrap.h (Luan) [#&#8203;39610](https://github.com/nodejs/node/pull/39610)
-   \[[`f7933804ba`](https://github.com/nodejs/node/commit/f7933804ba)] - **(SEMVER-MINOR)** **src**: allow to negate boolean CLI flags (Michaël Zasso) [#&#8203;39023](https://github.com/nodejs/node/pull/39023)
-   \[[`6d06ac2202`](https://github.com/nodejs/node/commit/6d06ac2202)] - **(SEMVER-MINOR)** **src**: add --heapsnapshot-near-heap-limit option (Joyee Cheung) [#&#8203;33010](https://github.com/nodejs/node/pull/33010)
-   \[[`4091eb9db7`](https://github.com/nodejs/node/commit/4091eb9db7)] - **(SEMVER-MINOR)** **src**: move node_binding to modern THROW_ERR\* (James M Snell) [#&#8203;35469](https://github.com/nodejs/node/pull/35469)
-   \[[`577d228ca0`](https://github.com/nodejs/node/commit/577d228ca0)] - **(SEMVER-MINOR)** **src**: add way to get IsolateData and allocator from Environment (Anna Henningsen) [#&#8203;36441](https://github.com/nodejs/node/pull/36441)
-   \[[`658a266cd4`](https://github.com/nodejs/node/commit/658a266cd4)] - **(SEMVER-MINOR)** **src**: allow preventing SetPrepareStackTraceCallback (Shelley Vohr) [#&#8203;36447](https://github.com/nodejs/node/pull/36447)
-   \[[`f421422ea4`](https://github.com/nodejs/node/commit/f421422ea4)] - **(SEMVER-MINOR)** **src**: add maybe versions of EmitExit and EmitBeforeExit (Anna Henningsen) [#&#8203;35486](https://github.com/nodejs/node/pull/35486)
-   \[[`a62d4d60f4`](https://github.com/nodejs/node/commit/a62d4d60f4)] - **(SEMVER-MINOR)** **stream**: add readableDidRead if has been read from (Robert Nagy) [#&#8203;39589](https://github.com/nodejs/node/pull/39589)
-   \[[`63502131a3`](https://github.com/nodejs/node/commit/63502131a3)] - **(SEMVER-MINOR)** **stream**: pipeline accept Buffer as a valid first argument (Nitzan Uziely) [#&#8203;37739](https://github.com/nodejs/node/pull/37739)
-   \[[`72ef41c72b`](https://github.com/nodejs/node/commit/72ef41c72b)] - **(SEMVER-MINOR)** **test**: add wpt tests for Blob (Michaël Zasso) [#&#8203;36811](https://github.com/nodejs/node/pull/36811)
-   \[[`68bbebd42c`](https://github.com/nodejs/node/commit/68bbebd42c)] - **(SEMVER-MINOR)** **tls**: allow reading data into a static buffer (Andrey Pechkurov) [#&#8203;35753](https://github.com/nodejs/node/pull/35753)
-   \[[`587deacad9`](https://github.com/nodejs/node/commit/587deacad9)] - **(SEMVER-MINOR)** **tools**: add `Worker` to type-parser (James M Snell) [#&#8203;38659](https://github.com/nodejs/node/pull/38659)
-   \[[`1cbb74d63d`](https://github.com/nodejs/node/commit/1cbb74d63d)] - **(SEMVER-MINOR)** **url**: expose urlToHttpOptions utility (Yongsheng Zhang) [#&#8203;35960](https://github.com/nodejs/node/pull/35960)
-   \[[`8eb11356dd`](https://github.com/nodejs/node/commit/8eb11356dd)] - **(SEMVER-MINOR)** **util**: expose toUSVString (Robert Nagy) [#&#8203;39814](https://github.com/nodejs/node/pull/39814)
-   \[[`84fcdc3074`](https://github.com/nodejs/node/commit/84fcdc3074)] - **(SEMVER-MINOR)** **v8**: implement v8.stopCoverage() (Joyee Cheung) [#&#8203;33807](https://github.com/nodejs/node/pull/33807)
-   \[[`b238b6bf17`](https://github.com/nodejs/node/commit/b238b6bf17)] - **(SEMVER-MINOR)** **v8**: implement v8.takeCoverage() (Joyee Cheung) [#&#8203;33807](https://github.com/nodejs/node/pull/33807)
-   \[[`9f6bc58da8`](https://github.com/nodejs/node/commit/9f6bc58da8)] - **(SEMVER-MINOR)** **worker**: add setEnvironmentData/getEnvironmentData (James M Snell) [#&#8203;37486](https://github.com/nodejs/node/pull/37486)

##### Semver-patch commits

-   \[[`3a60de0135`](https://github.com/nodejs/node/commit/3a60de0135)] - **assert**: change status of legacy asserts (James M Snell) [#&#8203;38113](https://github.com/nodejs/node/pull/38113)
-   \[[`5a42be9719`](https://github.com/nodejs/node/commit/5a42be9719)] - **async_hooks**: use resource stack for AsyncLocalStorage run (Stephen Belanger) [#&#8203;39890](https://github.com/nodejs/node/pull/39890)
-   \[[`fc29ddb38e`](https://github.com/nodejs/node/commit/fc29ddb38e)] - **async_hooks**: emit promise trace events from JS (Stephen Belanger) [#&#8203;39135](https://github.com/nodejs/node/pull/39135)
-   \[[`13296d1abf`](https://github.com/nodejs/node/commit/13296d1abf)] - **async_hooks**: eliminate native PromiseHook (Stephen Belanger) [#&#8203;39135](https://github.com/nodejs/node/pull/39135)
-   \[[`48e5971e51`](https://github.com/nodejs/node/commit/48e5971e51)] - **async_hooks**: check for empty contexts before removing (Bryan English) [#&#8203;39095](https://github.com/nodejs/node/pull/39095)
-   \[[`691c00c48b`](https://github.com/nodejs/node/commit/691c00c48b)] - **async_hooks**: switch between native and context hooks correctly (Stephen Belanger) [#&#8203;38912](https://github.com/nodejs/node/pull/38912)
-   \[[`8484ab2a6c`](https://github.com/nodejs/node/commit/8484ab2a6c)] - **buffer**: avoid creating the backing store in the thread (James M Snell) [#&#8203;37052](https://github.com/nodejs/node/pull/37052)
-   \[[`c8d039a872`](https://github.com/nodejs/node/commit/c8d039a872)] - **buffer**: make Blob's constructor more spec-compliant (Michaël Zasso) [#&#8203;37361](https://github.com/nodejs/node/pull/37361)
-   \[[`05d73ac286`](https://github.com/nodejs/node/commit/05d73ac286)] - **buffer**: make Blob's slice method more spec-compliant (Michaël Zasso) [#&#8203;37361](https://github.com/nodejs/node/pull/37361)
-   \[[`e7cf2efc60`](https://github.com/nodejs/node/commit/e7cf2efc60)] - **buffer**: add @&#8203;[@&#8203;toStringTag](https://github.com/toStringTag) to Blob (Colin Ihrig) [#&#8203;37336](https://github.com/nodejs/node/pull/37336)
-   \[[`d99deeaf97`](https://github.com/nodejs/node/commit/d99deeaf97)] - **build**: fix update authors commit (Mestery) [#&#8203;39858](https://github.com/nodejs/node/pull/39858)
-   \[[`5e1cba81bf`](https://github.com/nodejs/node/commit/5e1cba81bf)] - **build**: add authors.yml (Tierney Cyren) [#&#8203;35831](https://github.com/nodejs/node/pull/35831)
-   \[[`ed3c332089`](https://github.com/nodejs/node/commit/ed3c332089)] - **build**: add option to hide console window (Cheng Zhao) [#&#8203;39712](https://github.com/nodejs/node/pull/39712)
-   \[[`c696f97c5e`](https://github.com/nodejs/node/commit/c696f97c5e)] - **build**: exclude markdown files from some GitHub Actions (Rich Trott) [#&#8203;39565](https://github.com/nodejs/node/pull/39565)
-   \[[`0bd6dd1ee2`](https://github.com/nodejs/node/commit/0bd6dd1ee2)] - **build**: use lts shorthand in GitHub Actions (Rich Trott) [#&#8203;39538](https://github.com/nodejs/node/pull/39538)
-   \[[`3482bca643`](https://github.com/nodejs/node/commit/3482bca643)] - **build**: override python executable path on configure (legendecas) [#&#8203;39465](https://github.com/nodejs/node/pull/39465)
-   \[[`61261cdb8e`](https://github.com/nodejs/node/commit/61261cdb8e)] - **build**: use Node.js 14 in commit-lint.yml (Rich Trott) [#&#8203;39506](https://github.com/nodejs/node/pull/39506)
-   \[[`719f1563c1`](https://github.com/nodejs/node/commit/719f1563c1)] - **build**: fix `host_arch_cc()` for AIX/IBM i (Richard Lau) [#&#8203;39481](https://github.com/nodejs/node/pull/39481)
-   \[[`6e06b2ff9d`](https://github.com/nodejs/node/commit/6e06b2ff9d)] - **build**: update coverage Makefile target comments (Richard Lau) [#&#8203;39365](https://github.com/nodejs/node/pull/39365)
-   \[[`4e28d2b2c0`](https://github.com/nodejs/node/commit/4e28d2b2c0)] - **build**: run workflows when a PR is ready for review (Michaël Zasso) [#&#8203;39405](https://github.com/nodejs/node/pull/39405)
-   \[[`0da5d74da4`](https://github.com/nodejs/node/commit/0da5d74da4)] - **build**: update to setup-node@v2 (Rich Trott) [#&#8203;39366](https://github.com/nodejs/node/pull/39366)
-   \[[`f2e1c2267e`](https://github.com/nodejs/node/commit/f2e1c2267e)] - **build**: update gcovr for gcc 8 compatibility (Richard Lau) [#&#8203;39326](https://github.com/nodejs/node/pull/39326)
-   \[[`131dd6ec4d`](https://github.com/nodejs/node/commit/131dd6ec4d)] - **build**: remove unused comment in Makefile (LitoMore) [#&#8203;39171](https://github.com/nodejs/node/pull/39171)
-   \[[`40e46321b0`](https://github.com/nodejs/node/commit/40e46321b0)] - **build**: uvwasi honours node_shared_libuv (Jérémy Lal) [#&#8203;39260](https://github.com/nodejs/node/pull/39260)
-   \[[`5c6ab719f2`](https://github.com/nodejs/node/commit/5c6ab719f2)] - **build**: shorten path used in tarball build workflow (Richard Lau) [#&#8203;39192](https://github.com/nodejs/node/pull/39192)
-   \[[`870526374c`](https://github.com/nodejs/node/commit/870526374c)] - **build**: add `library_files` to gyp variables (himself65) [#&#8203;39293](https://github.com/nodejs/node/pull/39293)
-   \[[`0e221156aa`](https://github.com/nodejs/node/commit/0e221156aa)] - **build**: pass directory instead of list of files to js2c.py (Joyee Cheung) [#&#8203;39069](https://github.com/nodejs/node/pull/39069)
-   \[[`8d8415415b`](https://github.com/nodejs/node/commit/8d8415415b)] - **build**: don't pass `--mode` argument to V8 test-runner (Richard Lau) [#&#8203;39055](https://github.com/nodejs/node/pull/39055)
-   \[[`2d50217634`](https://github.com/nodejs/node/commit/2d50217634)] - **build**: fix commit linter on unrebased PRs (Mary Marchini) [#&#8203;39121](https://github.com/nodejs/node/pull/39121)
-   \[[`c93d5e006e`](https://github.com/nodejs/node/commit/c93d5e006e)] - **build**: use Actions to validate commit message (Mary Marchini) [#&#8203;32417](https://github.com/nodejs/node/pull/32417)
-   \[[`0bcaf9c4d1`](https://github.com/nodejs/node/commit/0bcaf9c4d1)] - **child_process**: fix spawn and fork abort behavior (Nitzan Uziely) [#&#8203;37325](https://github.com/nodejs/node/pull/37325)
-   \[[`8010c83180`](https://github.com/nodejs/node/commit/8010c83180)] - **child_process**: fix bad abort signal leak (Nitzan Uziely) [#&#8203;37257](https://github.com/nodejs/node/pull/37257)
-   \[[`32aff2f5a0`](https://github.com/nodejs/node/commit/32aff2f5a0)] - **console**: refactor to avoid unsafe array iteration (Antoine du Hamel) [#&#8203;36753](https://github.com/nodejs/node/pull/36753)
-   \[[`f46e8cdf79`](https://github.com/nodejs/node/commit/f46e8cdf79)] - **debugger**: remove undefined parameter (Rich Trott) [#&#8203;39570](https://github.com/nodejs/node/pull/39570)
-   \[[`482459edd4`](https://github.com/nodejs/node/commit/482459edd4)] - **debugger**: validate sec-websocket-accept response header (Chris Opperwall) [#&#8203;39357](https://github.com/nodejs/node/pull/39357)
-   \[[`e9c46107d7`](https://github.com/nodejs/node/commit/e9c46107d7)] - **debugger**: rename internal module (Rich Trott) [#&#8203;39378](https://github.com/nodejs/node/pull/39378)
-   \[[`49e0883c75`](https://github.com/nodejs/node/commit/49e0883c75)] - **debugger**: indicate server is ending (Rich Trott) [#&#8203;39334](https://github.com/nodejs/node/pull/39334)
-   \[[`72a3419510`](https://github.com/nodejs/node/commit/72a3419510)] - **debugger**: rename inspector-cli test module to debugger (Rich Trott) [#&#8203;38530](https://github.com/nodejs/node/pull/38530)
-   \[[`b3352cfba4`](https://github.com/nodejs/node/commit/b3352cfba4)] - **debugger**: prevent simultaneous heap snapshots (Rich Trott) [#&#8203;39638](https://github.com/nodejs/node/pull/39638)
-   \[[`e5826ab1c2`](https://github.com/nodejs/node/commit/e5826ab1c2)] - **debugger**: remove final lint exceptions in inspect_repl.js (Rich Trott) [#&#8203;39078](https://github.com/nodejs/node/pull/39078)
-   \[[`34c0701952`](https://github.com/nodejs/node/commit/34c0701952)] - **deps**: V8: cherry-pick [`00bb1a7`](https://github.com/nodejs/node/commit/00bb1a77c03e) (Darshan Sen) [#&#8203;39829](https://github.com/nodejs/node/pull/39829)
-   \[[`42359ab582`](https://github.com/nodejs/node/commit/42359ab582)] - **deps**: upgrade to libuv 1.42.0 (Luigi Pinca) [#&#8203;39525](https://github.com/nodejs/node/pull/39525)
-   \[[`d863a9db68`](https://github.com/nodejs/node/commit/d863a9db68)] - **deps**: bump HdrHistogram_C to 0.11.2 (Matteo Collina) [#&#8203;39462](https://github.com/nodejs/node/pull/39462)
-   \[[`4c93968a62`](https://github.com/nodejs/node/commit/4c93968a62)] - **deps**: extract gtest source files to deps/googletest (legendecas) [#&#8203;39386](https://github.com/nodejs/node/pull/39386)
-   \[[`fcae391fed`](https://github.com/nodejs/node/commit/fcae391fed)] - **deps**: update Acorn to v8.4.1 (Michaël Zasso) [#&#8203;39166](https://github.com/nodejs/node/pull/39166)
-   \[[`327838dd96`](https://github.com/nodejs/node/commit/327838dd96)] - **deps**: V8: backport [`c922458`](https://github.com/nodejs/node/commit/c9224589cf53) (Stephen Belanger) [#&#8203;39743](https://github.com/nodejs/node/pull/39743)
-   \[[`89c1bbd7b2`](https://github.com/nodejs/node/commit/89c1bbd7b2)] - **deps**: V8: cherry-pick [`81814ed`](https://github.com/nodejs/node/commit/81814ed44574) (Stephen Belanger) [#&#8203;39719](https://github.com/nodejs/node/pull/39719)
-   \[[`8b9215d07c`](https://github.com/nodejs/node/commit/8b9215d07c)] - **deps**: update to cjs-module-lexer@1.2.2 (Guy Bedford) [#&#8203;39402](https://github.com/nodejs/node/pull/39402)
-   \[[`e201293ddb`](https://github.com/nodejs/node/commit/e201293ddb)] - **dgram**: use simplified validator (Voltrex) [#&#8203;39753](https://github.com/nodejs/node/pull/39753)
-   \[[`6fdac38f91`](https://github.com/nodejs/node/commit/6fdac38f91)] - **doc,fs**: remove experimental status for WHATWG URL as path (Antoine du Hamel) [#&#8203;38870](https://github.com/nodejs/node/pull/38870)
-   \[[`d56e8268f9`](https://github.com/nodejs/node/commit/d56e8268f9)] - **doc,lib**: prepare for stricter multi-line array linting (Rich Trott) [#&#8203;37088](https://github.com/nodejs/node/pull/37088)
-   \[[`5500ae9236`](https://github.com/nodejs/node/commit/5500ae9236)] - **domain**: do not add domain to promise from other context (Stephen Belanger) [#&#8203;39135](https://github.com/nodejs/node/pull/39135)
-   \[[`dc855af18e`](https://github.com/nodejs/node/commit/dc855af18e)] - **errors**: don't throw TypeError on missing export (Benjamin Coe) [#&#8203;39017](https://github.com/nodejs/node/pull/39017)
-   \[[`c13eadc218`](https://github.com/nodejs/node/commit/c13eadc218)] - **errors**: eliminate all overhead for hidden calls (Momtchil Momtchev) [#&#8203;35644](https://github.com/nodejs/node/pull/35644)
-   \[[`d42bbe48c5`](https://github.com/nodejs/node/commit/d42bbe48c5)] - **esm**: use correct URL for error decoration (Bradley Farias) [#&#8203;37854](https://github.com/nodejs/node/pull/37854)
-   \[[`9db3304368`](https://github.com/nodejs/node/commit/9db3304368)] - **esm**: update to correct deprecation code (Colin Ihrig) [#&#8203;37147](https://github.com/nodejs/node/pull/37147)
-   \[[`e73bfed2f4`](https://github.com/nodejs/node/commit/e73bfed2f4)] - **esm**: deprecate legacy main lookup for modules (Guy Bedford) [#&#8203;36918](https://github.com/nodejs/node/pull/36918)
-   \[[`c1782ea1f5`](https://github.com/nodejs/node/commit/c1782ea1f5)] - **events**: allow the options argument to be null (Luigi Pinca) [#&#8203;39486](https://github.com/nodejs/node/pull/39486)
-   \[[`d2834fb97f`](https://github.com/nodejs/node/commit/d2834fb97f)] - **fs**: improve fsPromises writeFile performance (Nitzan Uziely) [#&#8203;37610](https://github.com/nodejs/node/pull/37610)
-   \[[`ee1d13c90d`](https://github.com/nodejs/node/commit/ee1d13c90d)] - **fs**: use byteLength to handle ArrayBuffer views (Michaël Zasso) [#&#8203;38187](https://github.com/nodejs/node/pull/38187)
-   \[[`b38d6b475b`](https://github.com/nodejs/node/commit/b38d6b475b)] - **fs**: fixup negative length in fs.truncate (James M Snell) [#&#8203;37483](https://github.com/nodejs/node/pull/37483)
-   \[[`fe28128f3c`](https://github.com/nodejs/node/commit/fe28128f3c)] - **fs**: add docs and tests for `AsyncIterable` support in `fh.writeFile` (Antoine du Hamel) [#&#8203;39836](https://github.com/nodejs/node/pull/39836)
-   \[[`2b0e2706c0`](https://github.com/nodejs/node/commit/2b0e2706c0)] - **fs**: improve fsPromises readFile performance (Nitzan Uziely) [#&#8203;37608](https://github.com/nodejs/node/pull/37608)
-   \[[`a4d6f78619`](https://github.com/nodejs/node/commit/a4d6f78619)] - **fs**: move constants to internal/fs/utils.js (Darshan Sen) [#&#8203;38061](https://github.com/nodejs/node/pull/38061)
-   \[[`402f7722ce`](https://github.com/nodejs/node/commit/402f7722ce)] - **fs**: add validatePosition and use in read and readSync (Darshan Sen) [#&#8203;37051](https://github.com/nodejs/node/pull/37051)
-   \[[`2bc301dcff`](https://github.com/nodejs/node/commit/2bc301dcff)] - **http**: decodes url.username and url.password for authorization header (Lew Gordon) [#&#8203;39310](https://github.com/nodejs/node/pull/39310)
-   \[[`5459f4af33`](https://github.com/nodejs/node/commit/5459f4af33)] - **http**: clean up HttpParser correctly (Tobias Koppers) [#&#8203;39292](https://github.com/nodejs/node/pull/39292)
-   \[[`8b3feee148`](https://github.com/nodejs/node/commit/8b3feee148)] - **http,https**: align server option of https with http (Qingyu Deng) [#&#8203;38992](https://github.com/nodejs/node/pull/38992)
-   \[[`cf59e87c8b`](https://github.com/nodejs/node/commit/cf59e87c8b)] - **inspector**: update inspector_protocol to [`89c4adf`](https://github.com/nodejs/node/commit/89c4adf) (Rich Trott) [#&#8203;39650](https://github.com/nodejs/node/pull/39650)
-   \[[`ea5f2047a2`](https://github.com/nodejs/node/commit/ea5f2047a2)] - **inspector**: update inspector_protocol to [`8ec18cf`](https://github.com/nodejs/node/commit/8ec18cf) (Rich Trott) [#&#8203;39614](https://github.com/nodejs/node/pull/39614)
-   \[[`1e5aca550c`](https://github.com/nodejs/node/commit/1e5aca550c)] - **inspector**: mark as stable (Gireesh Punathil) [#&#8203;37748](https://github.com/nodejs/node/pull/37748)
-   \[[`8a2ce5dae6`](https://github.com/nodejs/node/commit/8a2ce5dae6)] - **inspector**: move inspector async hooks to environment (Joyee Cheung) [#&#8203;39112](https://github.com/nodejs/node/pull/39112)
-   \[[`338189ff6f`](https://github.com/nodejs/node/commit/338189ff6f)] - **lib**: simplify validators (Voltrex) [#&#8203;39753](https://github.com/nodejs/node/pull/39753)
-   \[[`e1019351e8`](https://github.com/nodejs/node/commit/e1019351e8)] - **lib**: cleanup validation (Voltrex) [#&#8203;39652](https://github.com/nodejs/node/pull/39652)
-   \[[`dbaf4988bc`](https://github.com/nodejs/node/commit/dbaf4988bc)] - **lib**: use validators (Voltrex) [#&#8203;39663](https://github.com/nodejs/node/pull/39663)
-   \[[`9c33e4bfb2`](https://github.com/nodejs/node/commit/9c33e4bfb2)] - **lib**: use validator (Voltrex) [#&#8203;39547](https://github.com/nodejs/node/pull/39547)
-   \[[`5b1104291d`](https://github.com/nodejs/node/commit/5b1104291d)] - **lib**: use `validateObject` (Voltrex) [#&#8203;39605](https://github.com/nodejs/node/pull/39605)
-   \[[`1ce81079df`](https://github.com/nodejs/node/commit/1ce81079df)] - **lib**: remove use of array destructuring (Antoine du Hamel) [#&#8203;36818](https://github.com/nodejs/node/pull/36818)
-   \[[`b24b34effd`](https://github.com/nodejs/node/commit/b24b34effd)] - **lib**: add `bound apply` variants of varargs `primordials` (ExE Boss) [#&#8203;37005](https://github.com/nodejs/node/pull/37005)
-   \[[`7cdff9a6a8`](https://github.com/nodejs/node/commit/7cdff9a6a8)] - **lib**: refactor `primordials.makeSafe` to use more primordials (ExE Boss) [#&#8203;36865](https://github.com/nodejs/node/pull/36865)
-   \[[`1737352580`](https://github.com/nodejs/node/commit/1737352580)] - **lib**: comment explaining special-case handling of promises (Stephen Belanger) [#&#8203;39135](https://github.com/nodejs/node/pull/39135)
-   \[[`7f54cccb6c`](https://github.com/nodejs/node/commit/7f54cccb6c)] - **lib**: refactor to use validateString (ZiJian Liu) [#&#8203;37006](https://github.com/nodejs/node/pull/37006)
-   \[[`98259dc527`](https://github.com/nodejs/node/commit/98259dc527)] - **module**: improve support of data: URLs (Antoine du Hamel) [#&#8203;37392](https://github.com/nodejs/node/pull/37392)
-   \[[`9aba2888a1`](https://github.com/nodejs/node/commit/9aba2888a1)] - **net**: throw ERR_OUT_OF_RANGE if blockList.addSubnet prefix is NaN (ZiJian Liu) [#&#8203;36732](https://github.com/nodejs/node/pull/36732)
-   \[[`2ca12c83b4`](https://github.com/nodejs/node/commit/2ca12c83b4)] - **node-api**: handle pending exception in cb wrapper (Michael Dawson) [#&#8203;39476](https://github.com/nodejs/node/pull/39476)
-   \[[`9e5edf2158`](https://github.com/nodejs/node/commit/9e5edf2158)] - **node-api**: cctest on v8impl::Reference (legendecas) [#&#8203;38970](https://github.com/nodejs/node/pull/38970)
-   \[[`a74032a490`](https://github.com/nodejs/node/commit/a74032a490)] - **node-api**: rtn pending excep on napi_new_instance (legendecas) [#&#8203;38798](https://github.com/nodejs/node/pull/38798)
-   \[[`bcb85adee6`](https://github.com/nodejs/node/commit/bcb85adee6)] - **policy**: canonicalize before resolving specifiers (Bradley Farias) [#&#8203;37863](https://github.com/nodejs/node/pull/37863)
-   \[[`0ff520cf02`](https://github.com/nodejs/node/commit/0ff520cf02)] - **policy**: fix integrity when DEFAULT_ENCODING is set (Tobias Nießen) [#&#8203;39750](https://github.com/nodejs/node/pull/39750)
-   \[[`6c87b591d9`](https://github.com/nodejs/node/commit/6c87b591d9)] - **readline**: allow completer to rewrite existing input (Anna Henningsen) [#&#8203;39178](https://github.com/nodejs/node/pull/39178)
-   \[[`37b4708b19`](https://github.com/nodejs/node/commit/37b4708b19)] - **repl**: fix tla function hoisting (Don Jayamanne) [#&#8203;39745](https://github.com/nodejs/node/pull/39745)
-   \[[`9264caeafe`](https://github.com/nodejs/node/commit/9264caeafe)] - **repl**: do not include legacy getter/setter methods in completion (Anna Henningsen) [#&#8203;39576](https://github.com/nodejs/node/pull/39576)
-   \[[`50c5e71e22`](https://github.com/nodejs/node/commit/50c5e71e22)] - **repl**: correctly hoist top level await declarations (ejose19) [#&#8203;39265](https://github.com/nodejs/node/pull/39265)
-   \[[`1e065a0a43`](https://github.com/nodejs/node/commit/1e065a0a43)] - **repl**: processTopLevelAwait fallback error handling (ejose19) [#&#8203;39290](https://github.com/nodejs/node/pull/39290)
-   \[[`99664494ff`](https://github.com/nodejs/node/commit/99664494ff)] - **repl**: ensure correct syntax err for await parsing (Guy Bedford) [#&#8203;39154](https://github.com/nodejs/node/pull/39154)
-   \[[`761dafafde`](https://github.com/nodejs/node/commit/761dafafde)] - **repl**: fix Ctrl+C on top level await (Antoine du Hamel) [#&#8203;38656](https://github.com/nodejs/node/pull/38656)
-   \[[`88b02cbb08`](https://github.com/nodejs/node/commit/88b02cbb08)] - **repl**: add auto‑completion for dynamic import calls (ExE Boss) [#&#8203;37178](https://github.com/nodejs/node/pull/37178)
-   \[[`8f3a8830ba`](https://github.com/nodejs/node/commit/8f3a8830ba)] - **repl**: refactor to avoid unsafe array iteration (Antoine du Hamel) [#&#8203;37188](https://github.com/nodejs/node/pull/37188)
-   \[[`a48e2d6ec7`](https://github.com/nodejs/node/commit/a48e2d6ec7)] - **repl**: refactor to avoid unsafe array iteration (Darshan Sen) [#&#8203;36663](https://github.com/nodejs/node/pull/36663)
-   \[[`20ffadf437`](https://github.com/nodejs/node/commit/20ffadf437)] - **repl**: refactor to use more primordials (Antoine du Hamel) [#&#8203;36264](https://github.com/nodejs/node/pull/36264)
-   \[[`f69c934ad4`](https://github.com/nodejs/node/commit/f69c934ad4)] - **report**: generates report on threads with no isolates (legendecas) [#&#8203;38994](https://github.com/nodejs/node/pull/38994)
-   \[[`c4686fa5a7`](https://github.com/nodejs/node/commit/c4686fa5a7)] - **src**: fix TextDecoder final flush size calculation (James M Snell) [#&#8203;39737](https://github.com/nodejs/node/pull/39737)
-   \[[`495cd02c20`](https://github.com/nodejs/node/commit/495cd02c20)] - **src**: add cosmetic space character to `async_wrap.h` file (Juan José Arboleda) [#&#8203;39459](https://github.com/nodejs/node/pull/39459)
-   \[[`985ec48975`](https://github.com/nodejs/node/commit/985ec48975)] - **src**: print native module id on native module not found (legendecas) [#&#8203;39460](https://github.com/nodejs/node/pull/39460)
-   \[[`e6ff7e648e`](https://github.com/nodejs/node/commit/e6ff7e648e)] - **src**: close HandleWraps instead of deleting them in OnGCCollect() (Anna Henningsen) [#&#8203;39441](https://github.com/nodejs/node/pull/39441)
-   \[[`5c473bdc12`](https://github.com/nodejs/node/commit/5c473bdc12)] - **src**: remove unused guards around node-api reference (legendecas) [#&#8203;38334](https://github.com/nodejs/node/pull/38334)
-   \[[`41213bd507`](https://github.com/nodejs/node/commit/41213bd507)] - **src**: add JSDoc typings for v8 (Voltrex) [#&#8203;38944](https://github.com/nodejs/node/pull/38944)
-   \[[`02b1df9fac`](https://github.com/nodejs/node/commit/02b1df9fac)] - **src**: fix crash in AfterGetAddrInfo (Anna Henningsen) [#&#8203;39735](https://github.com/nodejs/node/pull/39735)
-   \[[`99493b07d4`](https://github.com/nodejs/node/commit/99493b07d4)] - **src**: fix fatal errors when a current isolate not exist (legendecas) [#&#8203;38624](https://github.com/nodejs/node/pull/38624)
-   \[[`9433c28c14`](https://github.com/nodejs/node/commit/9433c28c14)] - **src**: remove more extra semis from member fns (Shelley Vohr) [#&#8203;38744](https://github.com/nodejs/node/pull/38744)
-   \[[`bad990c934`](https://github.com/nodejs/node/commit/bad990c934)] - **src**: use BaseObject::kInteralFieldCount in Blob (Joyee Cheung) [#&#8203;36991](https://github.com/nodejs/node/pull/36991)
-   \[[`0a759dff52`](https://github.com/nodejs/node/commit/0a759dff52)] - **src**: compare IPv4 addresses in host byte order (Colin Ihrig) [#&#8203;39096](https://github.com/nodejs/node/pull/39096)
-   \[[`d73181f243`](https://github.com/nodejs/node/commit/d73181f243)] - **src**: reduce duplicated boilerplate with new env utility fn (James M Snell) [#&#8203;36536](https://github.com/nodejs/node/pull/36536)
-   \[[`85af15a8b6`](https://github.com/nodejs/node/commit/85af15a8b6)] - **src**: allow instances of net.BlockList to be created internally (James M Snell) [#&#8203;34741](https://github.com/nodejs/node/pull/34741)
-   \[[`1008c80176`](https://github.com/nodejs/node/commit/1008c80176)] - **src**: add SocketAddressLRU Utility (James M Snell) [#&#8203;34618](https://github.com/nodejs/node/pull/34618)
-   \[[`e404841a9c`](https://github.com/nodejs/node/commit/e404841a9c)] - **src**: set PromiseHooks by Environment (Bryan English) [#&#8203;38821](https://github.com/nodejs/node/pull/38821)
-   \[[`c8c290ae8f`](https://github.com/nodejs/node/commit/c8c290ae8f)] - **src,zlib**: tighten up Z_\*\_WINDOWBITS macros (Khaidi Chu) [#&#8203;39115](https://github.com/nodejs/node/pull/39115)
-   \[[`de171177b4`](https://github.com/nodejs/node/commit/de171177b4)] - **stream**: clean `endWritableNT` (Mestery) [#&#8203;39645](https://github.com/nodejs/node/pull/39645)
-   \[[`32a5b8f59b`](https://github.com/nodejs/node/commit/32a5b8f59b)] - **stream**: move duplicated code to an internal module (Rich Trott) [#&#8203;37508](https://github.com/nodejs/node/pull/37508)
-   \[[`f90b22d351`](https://github.com/nodejs/node/commit/f90b22d351)] - **util**: add internal createDeferredPromise() (Colin Ihrig) [#&#8203;37095](https://github.com/nodejs/node/pull/37095)
-   \[[`61b4a98480`](https://github.com/nodejs/node/commit/61b4a98480)] - **zlib**: avoid converting `Uint8Array` instances to `Buffer` (Antoine du Hamel) [#&#8203;39492](https://github.com/nodejs/node/pull/39492)

##### Documentation commits

-   \[[`8efd559347`](https://github.com/nodejs/node/commit/8efd559347)] - **doc**: add duplicate CVE check in sec. release doc (Daniel Bevenius) [#&#8203;39845](https://github.com/nodejs/node/pull/39845)
-   \[[`7b123ec78d`](https://github.com/nodejs/node/commit/7b123ec78d)] - **doc**: improve description of the triagers team (Michaël Zasso) [#&#8203;39833](https://github.com/nodejs/node/pull/39833)
-   \[[`615477f67b`](https://github.com/nodejs/node/commit/615477f67b)] - **doc**: update instructions for cc (Michael Dawson) [#&#8203;39674](https://github.com/nodejs/node/pull/39674)
-   \[[`1a8a26d92e`](https://github.com/nodejs/node/commit/1a8a26d92e)] - **doc**: fix malformed changelog entries (Rich Trott) [#&#8203;39791](https://github.com/nodejs/node/pull/39791)
-   \[[`9e772ca9a1`](https://github.com/nodejs/node/commit/9e772ca9a1)] - **doc**: fix lint errors in packages.md (Rich Trott) [#&#8203;39792](https://github.com/nodejs/node/pull/39792)
-   \[[`2624c98207`](https://github.com/nodejs/node/commit/2624c98207)] - **doc**: add example of self-reference in scoped packages (Jesús Leganés-Combarro 'piranna) [#&#8203;37630](https://github.com/nodejs/node/pull/37630)
-   \[[`00f2cee26c`](https://github.com/nodejs/node/commit/00f2cee26c)] - **doc**: add himadriganguly as a triager (Himadri Ganguly) [#&#8203;39757](https://github.com/nodejs/node/pull/39757)
-   \[[`95b9cc78d2`](https://github.com/nodejs/node/commit/95b9cc78d2)] - **doc**: fix YAML comment opening tags (Jayden Seric) [#&#8203;38324](https://github.com/nodejs/node/pull/38324)
-   \[[`49a7962d58`](https://github.com/nodejs/node/commit/49a7962d58)] - **doc**: fix `fs.rmdir` `recursive` option deprecation history (Antoine du Hamel) [#&#8203;39728](https://github.com/nodejs/node/pull/39728)
-   \[[`53300d33c7`](https://github.com/nodejs/node/commit/53300d33c7)] - **doc**: fixed variable names in queueMicrotask example (ashish maurya) [#&#8203;39634](https://github.com/nodejs/node/pull/39634)
-   \[[`df1e20aaf1`](https://github.com/nodejs/node/commit/df1e20aaf1)] - **doc**: update debugger.md description and examples (Rich Trott) [#&#8203;39661](https://github.com/nodejs/node/pull/39661)
-   \[[`9672bbf01c`](https://github.com/nodejs/node/commit/9672bbf01c)] - **doc**: fix color contrast issue in light mode (Rich Trott) [#&#8203;39660](https://github.com/nodejs/node/pull/39660)
-   \[[`48281ecfcd`](https://github.com/nodejs/node/commit/48281ecfcd)] - **doc**: add code examples to `Writable.destroy()` and `Writable.destroyed` (Juan José Arboleda) [#&#8203;39491](https://github.com/nodejs/node/pull/39491)
-   \[[`8799a134e4`](https://github.com/nodejs/node/commit/8799a134e4)] - **doc**: move `NODE_MODULE_VERSION` in release guide (Richard Lau) [#&#8203;39544](https://github.com/nodejs/node/pull/39544)
-   \[[`89c8afcf48`](https://github.com/nodejs/node/commit/89c8afcf48)] - **doc**: remove outdated ARM information from release guide (Richard Lau) [#&#8203;39544](https://github.com/nodejs/node/pull/39544)
-   \[[`a718b26f28`](https://github.com/nodejs/node/commit/a718b26f28)] - **doc**: fence command examples in release guide (Richard Lau) [#&#8203;39544](https://github.com/nodejs/node/pull/39544)
-   \[[`42669bb049`](https://github.com/nodejs/node/commit/42669bb049)] - **doc**: update backport labels in release guide (Richard Lau) [#&#8203;39544](https://github.com/nodejs/node/pull/39544)
-   \[[`a437de3c5f`](https://github.com/nodejs/node/commit/a437de3c5f)] - **doc**: add code example to `http.createServer` method (Juan José Arboleda) [#&#8203;39455](https://github.com/nodejs/node/pull/39455)
-   \[[`695569fc17`](https://github.com/nodejs/node/commit/695569fc17)] - **doc**: move lball@redhat.com to emeritus (Lance Ball) [#&#8203;39501](https://github.com/nodejs/node/pull/39501)
-   \[[`c7523da86c`](https://github.com/nodejs/node/commit/c7523da86c)] - **doc**: update AUTHORS (Rich Trott) [#&#8203;39488](https://github.com/nodejs/node/pull/39488)
-   \[[`e826109d5c`](https://github.com/nodejs/node/commit/e826109d5c)] - **doc**: update strategic initiative champion (Rich Trott) [#&#8203;39487](https://github.com/nodejs/node/pull/39487)
-   \[[`39da842051`](https://github.com/nodejs/node/commit/39da842051)] - **doc**: simplify unnecessarily specific .mailmap entries (Rich Trott) [#&#8203;39430](https://github.com/nodejs/node/pull/39430)
-   \[[`6a4c6ce4d7`](https://github.com/nodejs/node/commit/6a4c6ce4d7)] - **doc**: update checkbox label in backporting guide (Darshan Sen) [#&#8203;39420](https://github.com/nodejs/node/pull/39420)
-   \[[`d17afa08bd`](https://github.com/nodejs/node/commit/d17afa08bd)] - **doc**: remove \_Addenda\_ from headers (Rich Trott) [#&#8203;39427](https://github.com/nodejs/node/pull/39427)
-   \[[`ae97a96d9e`](https://github.com/nodejs/node/commit/ae97a96d9e)] - **doc**: simplify .mailmap file (Rich Trott) [#&#8203;39418](https://github.com/nodejs/node/pull/39418)
-   \[[`a3dee70f66`](https://github.com/nodejs/node/commit/a3dee70f66)] - **doc**: fix broken internal link in http.md (Rich Trott) [#&#8203;39425](https://github.com/nodejs/node/pull/39425)
-   \[[`ca947ac524`](https://github.com/nodejs/node/commit/ca947ac524)] - **doc**: remove outdated step in onboarding exercise (Rich Trott) [#&#8203;39410](https://github.com/nodejs/node/pull/39410)
-   \[[`86e12607f0`](https://github.com/nodejs/node/commit/86e12607f0)] - **doc**: revise strategic initiatives text (Rich Trott) [#&#8203;39417](https://github.com/nodejs/node/pull/39417)
-   \[[`cd8e773d28`](https://github.com/nodejs/node/commit/cd8e773d28)] - **doc**: update mailmap and AUTHORS (Rich Trott) [#&#8203;39393](https://github.com/nodejs/node/pull/39393)
-   \[[`8376b07ae8`](https://github.com/nodejs/node/commit/8376b07ae8)] - **doc**: use a details tag for completed initiatves (Rich Trott) [#&#8203;39416](https://github.com/nodejs/node/pull/39416)
-   \[[`43d28f5f00`](https://github.com/nodejs/node/commit/43d28f5f00)] - **doc**: update commit-queue.md to indicate GitHub Actions are checked (Rich Trott) [#&#8203;39411](https://github.com/nodejs/node/pull/39411)
-   \[[`63b0603e95`](https://github.com/nodejs/node/commit/63b0603e95)] - **doc**: use \_pull request\_ instead of \_PR\_ in onboarding doc (Rich Trott) [#&#8203;39409](https://github.com/nodejs/node/pull/39409)
-   \[[`73f784f764`](https://github.com/nodejs/node/commit/73f784f764)] - **doc**: add strategic initiatives from TSC repo (Rich Trott) [#&#8203;39394](https://github.com/nodejs/node/pull/39394)
-   \[[`1a494d51dc`](https://github.com/nodejs/node/commit/1a494d51dc)] - **doc**: standardize on \_pull request\_ (Rich Trott) [#&#8203;39384](https://github.com/nodejs/node/pull/39384)
-   \[[`eb12e4ccfb`](https://github.com/nodejs/node/commit/eb12e4ccfb)] - **doc**: make minor edits to pull request text (Rich Trott) [#&#8203;39383](https://github.com/nodejs/node/pull/39383)
-   \[[`ab0bf4fa1a`](https://github.com/nodejs/node/commit/ab0bf4fa1a)] - **doc**: add docker-node and build-wg issue contents (Daniel Bevenius) [#&#8203;39215](https://github.com/nodejs/node/pull/39215)
-   \[[`8438e8bf33`](https://github.com/nodejs/node/commit/8438e8bf33)] - **doc**: add instructions for core vuln files (Daniel Bevenius) [#&#8203;39220](https://github.com/nodejs/node/pull/39220)
-   \[[`c3cfefc2d3`](https://github.com/nodejs/node/commit/c3cfefc2d3)] - **doc**: standardize on not capitalizing \_collaborator\_ (Rich Trott) [#&#8203;39379](https://github.com/nodejs/node/pull/39379)
-   \[[`672023f9f2`](https://github.com/nodejs/node/commit/672023f9f2)] - **doc**: update mailmap and deduplicate AUTHORS entry (Rich Trott) [#&#8203;39391](https://github.com/nodejs/node/pull/39391)
-   \[[`baaa397e39`](https://github.com/nodejs/node/commit/baaa397e39)] - **doc**: update AUTHORS (Rich Trott) [#&#8203;39367](https://github.com/nodejs/node/pull/39367)
-   \[[`f39d93a428`](https://github.com/nodejs/node/commit/f39d93a428)] - **doc**: move jdalton to emeritus (Rich Trott) [#&#8203;39380](https://github.com/nodejs/node/pull/39380)
-   \[[`0b1ce72d64`](https://github.com/nodejs/node/commit/0b1ce72d64)] - **doc**: edit guide on pull requests (Rich Trott) [#&#8203;39359](https://github.com/nodejs/node/pull/39359)
-   \[[`6f0b3a20d1`](https://github.com/nodejs/node/commit/6f0b3a20d1)] - **doc**: add text about moving long commit lists out of PR description (Danielle Adams) [#&#8203;39186](https://github.com/nodejs/node/pull/39186)
-   \[[`9d43ce3b80`](https://github.com/nodejs/node/commit/9d43ce3b80)] - **doc**: do not use & for "and" in text (Rich Trott) [#&#8203;39345](https://github.com/nodejs/node/pull/39345)
-   \[[`25c104f21f`](https://github.com/nodejs/node/commit/25c104f21f)] - **doc**: update AUTHORS (Rich Trott) [#&#8203;39277](https://github.com/nodejs/node/pull/39277)
-   \[[`b47b47930c`](https://github.com/nodejs/node/commit/b47b47930c)] - **doc**: put information about the past in details tags (Rich Trott) [#&#8203;39321](https://github.com/nodejs/node/pull/39321)
-   \[[`5eafc3afa8`](https://github.com/nodejs/node/commit/5eafc3afa8)] - **doc**: move AndreasMadsen to emeritus (Rich Trott) [#&#8203;39315](https://github.com/nodejs/node/pull/39315)
-   \[[`fbf658f1d5`](https://github.com/nodejs/node/commit/fbf658f1d5)] - **doc**: move ofrobots to collaborator emeritus (Rich Trott) [#&#8203;39307](https://github.com/nodejs/node/pull/39307)
-   \[[`fc7d714149`](https://github.com/nodejs/node/commit/fc7d714149)] - **doc**: simplify CRAN mirror text in benchmark guide (Rich Trott) [#&#8203;39287](https://github.com/nodejs/node/pull/39287)
-   \[[`22f0b7e0d0`](https://github.com/nodejs/node/commit/22f0b7e0d0)] - **doc**: use "repository" instead of "repo" in onboarding.md (Rich Trott) [#&#8203;39286](https://github.com/nodejs/node/pull/39286)
-   \[[`f46ae3ffb6`](https://github.com/nodejs/node/commit/f46ae3ffb6)] - **doc**: update collaborator email address (Rich Trott) [#&#8203;39263](https://github.com/nodejs/node/pull/39263)
-   \[[`8c569cef88`](https://github.com/nodejs/node/commit/8c569cef88)] - **doc**: remove GitHub mark (Rich Trott) [#&#8203;39251](https://github.com/nodejs/node/pull/39251)
-   \[[`b4a0c5a384`](https://github.com/nodejs/node/commit/b4a0c5a384)] - **doc**: remove emailing the TSC from offboarding doc (Rich Trott) [#&#8203;39280](https://github.com/nodejs/node/pull/39280)
-   \[[`a4d70ff0cc`](https://github.com/nodejs/node/commit/a4d70ff0cc)] - **doc**: use "repository" in guides versus repo (Michael Dawson) [#&#8203;39198](https://github.com/nodejs/node/pull/39198)
-   \[[`31163ed9ee`](https://github.com/nodejs/node/commit/31163ed9ee)] - **doc**: update Node-api version matrix (Michael Dawson) [#&#8203;39197](https://github.com/nodejs/node/pull/39197)
-   \[[`9357547519`](https://github.com/nodejs/node/commit/9357547519)] - **doc**: update node-api support matrix (Michael Dawson) [#&#8203;38424](https://github.com/nodejs/node/pull/38424)
-   \[[`f08e9d5230`](https://github.com/nodejs/node/commit/f08e9d5230)] - **doc**: remove onboarding-extras (Rich Trott) [#&#8203;39252](https://github.com/nodejs/node/pull/39252)
-   \[[`6466faf26d`](https://github.com/nodejs/node/commit/6466faf26d)] - **doc**: move Sam Ruby to emeritus (Rich Trott) [#&#8203;39264](https://github.com/nodejs/node/pull/39264)
-   \[[`06acbf6453`](https://github.com/nodejs/node/commit/06acbf6453)] - **doc**: update AUTHORS file (Rich Trott) [#&#8203;39250](https://github.com/nodejs/node/pull/39250)
-   \[[`9178805653`](https://github.com/nodejs/node/commit/9178805653)] - **doc**: fix color contrast for anchor marks in dark mode (Rich Trott) [#&#8203;39168](https://github.com/nodejs/node/pull/39168)
-   \[[`c6118b23f7`](https://github.com/nodejs/node/commit/c6118b23f7)] - **doc**: rename datatypes to data types (FrankEntriken) [#&#8203;39209](https://github.com/nodejs/node/pull/39209)
-   \[[`fdd315918f`](https://github.com/nodejs/node/commit/fdd315918f)] - **doc**: normalize CSS variable names and indentation (Rich Trott) [#&#8203;39199](https://github.com/nodejs/node/pull/39199)
-   \[[`9c7c44781c`](https://github.com/nodejs/node/commit/9c7c44781c)] - **doc**: use more consistent formatting for deprecations (Rich Trott) [#&#8203;39218](https://github.com/nodejs/node/pull/39218)
-   \[[`c97ebd7905`](https://github.com/nodejs/node/commit/c97ebd7905)] - **doc**: update AUTHORS (Rich Trott) [#&#8203;39217](https://github.com/nodejs/node/pull/39217)
-   \[[`c4a3a24848`](https://github.com/nodejs/node/commit/c4a3a24848)] - **doc**: use "pull request" instead of "PR" in packages.md (Rich Trott) [#&#8203;39213](https://github.com/nodejs/node/pull/39213)
-   \[[`0d098bfaf0`](https://github.com/nodejs/node/commit/0d098bfaf0)] - **doc**: move v8.stopCoverage() to expected location in doc (Rich Trott) [#&#8203;39212](https://github.com/nodejs/node/pull/39212)
-   \[[`bd6af78749`](https://github.com/nodejs/node/commit/bd6af78749)] - **doc**: move vm.measureMemory() to expected location in doc (Rich Trott) [#&#8203;39211](https://github.com/nodejs/node/pull/39211)
-   \[[`7378b84bb8`](https://github.com/nodejs/node/commit/7378b84bb8)] - **doc**: add missing deprecation code (Colin Ihrig) [#&#8203;37147](https://github.com/nodejs/node/pull/37147)
-   \[[`2f6861ca51`](https://github.com/nodejs/node/commit/2f6861ca51)] - **doc**: use ASCII order for md refs (Antoine du Hamel) [#&#8203;39170](https://github.com/nodejs/node/pull/39170)
-   \[[`fa3909504f`](https://github.com/nodejs/node/commit/fa3909504f)] - **doc**: add cc oss-security@lists.openwall.com (Daniel Bevenius) [#&#8203;39191](https://github.com/nodejs/node/pull/39191)
-   \[[`52105acd5f`](https://github.com/nodejs/node/commit/52105acd5f)] - **doc**: remove instructions for unsupported Node.js versions (Rich Trott) [#&#8203;39185](https://github.com/nodejs/node/pull/39185)
-   \[[`eb2d75da16`](https://github.com/nodejs/node/commit/eb2d75da16)] - **doc**: remove obsolete cc recommendations (Rich Trott) [#&#8203;39181](https://github.com/nodejs/node/pull/39181)
-   \[[`4cf17edd03`](https://github.com/nodejs/node/commit/4cf17edd03)] - **doc**: use "repository" in maintaining-V8 doc (Rich Trott) [#&#8203;39179](https://github.com/nodejs/node/pull/39179)
-   \[[`d6a4f8aac9`](https://github.com/nodejs/node/commit/d6a4f8aac9)] - **doc**: fix broken link in errors.md (Rich Trott) [#&#8203;39200](https://github.com/nodejs/node/pull/39200)
-   \[[`82458b30fe`](https://github.com/nodejs/node/commit/82458b30fe)] - **doc**: correct JavaScript primitive value names in n-api.md (legendecas) [#&#8203;39129](https://github.com/nodejs/node/pull/39129)
-   \[[`2629979fd0`](https://github.com/nodejs/node/commit/2629979fd0)] - **doc**: apply logical ordering to CSS variables (Rich Trott) [#&#8203;39169](https://github.com/nodejs/node/pull/39169)
-   \[[`1996580b06`](https://github.com/nodejs/node/commit/1996580b06)] - **doc**: use repository instead of repo (Rich Trott) [#&#8203;39157](https://github.com/nodejs/node/pull/39157)
-   \[[`74ba115ab6`](https://github.com/nodejs/node/commit/74ba115ab6)] - **doc**: fix `EventTarget.dispatchEvent` docs (Rohan Sharma) [#&#8203;39127](https://github.com/nodejs/node/pull/39127)
-   \[[`2884d9094d`](https://github.com/nodejs/node/commit/2884d9094d)] - **doc**: update AUTHORS file (Rich Trott) [#&#8203;39082](https://github.com/nodejs/node/pull/39082)
-   \[[`d069c725b1`](https://github.com/nodejs/node/commit/d069c725b1)] - **doc**: fix napi_default_property name (Davidson Francis) [#&#8203;39104](https://github.com/nodejs/node/pull/39104)
-   \[[`1b74d3f775`](https://github.com/nodejs/node/commit/1b74d3f775)] - **doc**: fix dead links in packages.md (Michaël Zasso) [#&#8203;39113](https://github.com/nodejs/node/pull/39113)
-   \[[`0c2b5a048d`](https://github.com/nodejs/node/commit/0c2b5a048d)] - **doc**: clearify that http does chunked encoding itself (Mao Wtm) [#&#8203;28379](https://github.com/nodejs/node/pull/28379)
-   \[[`d0d731e271`](https://github.com/nodejs/node/commit/d0d731e271)] - **doc**: add descriptions about when `options.mode` is ignored (Ray) [#&#8203;39881](https://github.com/nodejs/node/pull/39881)
-   \[[`898db5a570`](https://github.com/nodejs/node/commit/898db5a570)] - **doc**: add code example to `fs.truncate` method (Juan José Arb…
foxxyz pushed a commit to foxxyz/node that referenced this pull request Oct 18, 2021
Refs: nodejs#38821 (comment)

PR-URL: nodejs#38875
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
foxxyz pushed a commit to foxxyz/node that referenced this pull request Oct 18, 2021
The new JS PromiseHooks introduced in the referenced PR are per
v8::Context. This meant that code depending on them, such as
AsyncLocalStorage, wouldn't behave correctly across vm.Context
instances.

PromiseHooks are now synchronized across the main Context and any
Context created via vm.Context.

Refs: nodejs#36394
Fixes: nodejs#38781
Signed-off-by: Bryan English <bryan@bryanenglish.com>

PR-URL: nodejs#38821
Backport-PR-URL: nodejs#38577
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
async_hooks Issues and PRs related to the async hooks subsystem. author ready PRs that have at least one approval, no pending requests for changes, and a CI started. c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Promise hooks don't work well in vm contexts