Skip to content

Conversation

@LiviaMedeiros
Copy link
Member

Follow-up from #60796

In http2 and zlib, fn.call(...) is preferable over FunctionPrototypeCall(fn, ...) according to:

For some area of the codebase, performance and code readability are deemed more
important than reliability against prototype pollution:
* `node:http`
* `node:http2`
* `node:tls`
* `node:zlib`

Local benchmark shows about +5% performance in zlib/creation and about +3-4% in deflateSync and inflateSync

                                                                                                        confidence improvement accuracy (*)    (**)   (***)
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=100                      *     -2.59 %       ±2.41%  ±3.20%  ±4.18%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=1000                           -0.12 %       ±2.07%  ±2.76%  ±3.59%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=5000                           -0.11 %       ±2.04%  ±2.71%  ±3.53%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=100                            0.58 %       ±2.59%  ±3.45%  ±4.50%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=1000                          -2.23 %       ±2.47%  ±3.29%  ±4.28%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=5000                          -1.42 %       ±2.57%  ±3.42%  ±4.46%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=100                           0.49 %       ±1.92%  ±2.56%  ±3.34%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=1000                          1.07 %       ±2.23%  ±2.96%  ±3.86%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=5000                          1.31 %       ±2.33%  ±3.10%  ±4.04%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=100                            0.63 %       ±2.15%  ±2.86%  ±3.73%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=1000                           0.36 %       ±2.16%  ±2.88%  ±3.75%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=5000                           0.71 %       ±2.27%  ±3.02%  ±3.94%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=100                           0.65 %       ±2.48%  ±3.30%  ±4.30%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=1000                          0.69 %       ±2.72%  ±3.63%  ±4.72%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=5000                          0.71 %       ±2.05%  ±2.73%  ±3.55%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=100                            2.05 %       ±2.10%  ±2.79%  ±3.64%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=1000                          -1.53 %       ±2.24%  ±2.98%  ±3.89%
http2/compat.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=5000                           1.05 %       ±2.20%  ±2.93%  ±3.82%
http2/headers.js nheaders=0 n=1000                                                                               *      1.24 %       ±1.03%  ±1.36%  ±1.78%
http2/headers.js nheaders=10 n=1000                                                                                     0.08 %       ±1.02%  ±1.36%  ±1.77%
http2/headers.js nheaders=100 n=1000                                                                                    0.39 %       ±0.87%  ±1.16%  ±1.51%
http2/headers.js nheaders=1000 n=1000                                                                                   0.54 %       ±0.80%  ±1.07%  ±1.40%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=100            **      5.16 %       ±3.53%  ±4.70%  ±6.12%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=1000                  -1.27 %       ±4.34%  ±5.78%  ±7.52%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=5000                   2.88 %       ±4.02%  ±5.35%  ±6.97%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=100                  -0.13 %       ±3.78%  ±5.04%  ±6.56%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=1000                  1.86 %       ±3.81%  ±5.08%  ±6.62%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=5000                 -1.39 %       ±3.64%  ±4.84%  ±6.30%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=100                  1.74 %       ±3.83%  ±5.10%  ±6.64%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=1000                -1.61 %       ±4.33%  ±5.76%  ±7.50%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=5000                 0.63 %       ±4.14%  ±5.51%  ±7.18%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=100                   0.29 %       ±3.71%  ±4.94%  ±6.43%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=1000                 -0.70 %       ±4.28%  ±5.70%  ±7.43%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=5000                 -1.56 %       ±3.89%  ±5.18%  ±6.74%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=100                  0.07 %       ±4.05%  ±5.39%  ±7.02%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=1000                -1.21 %       ±3.62%  ±4.82%  ±6.30%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=5000                -2.92 %       ±3.62%  ±4.82%  ±6.29%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=100                   1.37 %       ±4.08%  ±5.43%  ±7.07%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=1000                  3.15 %       ±3.55%  ±4.72%  ±6.15%
http2/respond-with-fd.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=5000                  1.35 %       ±3.86%  ±5.13%  ±6.68%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=100                            -2.66 %       ±2.78%  ±3.69%  ±4.81%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=1000                           -0.44 %       ±3.69%  ±4.91%  ±6.39%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=1 requests=5000                            0.66 %       ±2.68%  ±3.57%  ±4.65%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=100                            1.45 %       ±2.68%  ±3.57%  ±4.65%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=1000                          -1.87 %       ±2.41%  ±3.21%  ±4.18%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=10 requests=5000                          -0.36 %       ±2.77%  ±3.68%  ±4.80%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=100                           0.66 %       ±3.39%  ±4.51%  ±5.87%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=1000                         -0.99 %       ±2.70%  ±3.59%  ±4.67%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=100 requests=5000                          0.98 %       ±2.62%  ±3.49%  ±4.54%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=100                            0.01 %       ±2.93%  ±3.90%  ±5.08%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=1000                           1.33 %       ±2.98%  ±3.97%  ±5.16%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=20 requests=5000                           0.20 %       ±2.63%  ±3.50%  ±4.55%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=100                           1.07 %       ±2.71%  ±3.60%  ±4.69%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=1000                         -0.00 %       ±3.01%  ±4.01%  ±5.23%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=200 requests=5000                          0.88 %       ±2.68%  ±3.56%  ±4.64%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=100                            1.44 %       ±3.08%  ±4.11%  ±5.36%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=1000                          -2.14 %       ±2.46%  ±3.27%  ±4.26%
http2/simple.js duration=5 benchmarker='test-double-http2' clients=2 streams=40 requests=5000                           1.06 %       ±3.07%  ±4.09%  ±5.35%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=1048576 streams=100                       -0.21 %       ±1.41%  ±1.87%  ±2.44%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=1048576 streams=1000                       0.37 %       ±1.39%  ±1.84%  ±2.40%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=1048576 streams=200                       -0.34 %       ±1.18%  ±1.56%  ±2.04%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=131072 streams=100                         0.48 %       ±2.07%  ±2.76%  ±3.60%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=131072 streams=1000                        0.94 %       ±3.20%  ±4.25%  ±5.54%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=131072 streams=200                         1.02 %       ±2.81%  ±3.74%  ±4.87%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=262144 streams=100                         0.24 %       ±1.60%  ±2.13%  ±2.78%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=262144 streams=1000                       -0.62 %       ±1.44%  ±1.91%  ±2.49%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=262144 streams=200                         0.61 %       ±1.68%  ±2.24%  ±2.93%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=65536 streams=100                          0.34 %       ±0.82%  ±1.10%  ±1.44%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=65536 streams=1000                        -0.18 %       ±0.93%  ±1.24%  ±1.62%
http2/write.js duration=5 benchmarker='test-double-http2' size=100000 length=65536 streams=200                          0.82 %       ±1.20%  ±1.60%  ±2.08%
zlib/crc32.js n=4000000 len=256 type='buffer'                                                                           0.47 %       ±0.83%  ±1.10%  ±1.43%
zlib/crc32.js n=4000000 len=256 type='string'                                                                           0.13 %       ±0.58%  ±0.77%  ±1.00%
zlib/crc32.js n=4000000 len=32 type='buffer'                                                                           -0.22 %       ±0.75%  ±0.99%  ±1.29%
zlib/crc32.js n=4000000 len=32 type='string'                                                                           -0.05 %       ±0.66%  ±0.88%  ±1.14%
zlib/crc32.js n=4000000 len=4096 type='buffer'                                                                         -0.56 %       ±0.80%  ±1.07%  ±1.40%
zlib/crc32.js n=4000000 len=4096 type='string'                                                                         -0.31 %       ±0.67%  ±0.89%  ±1.15%
zlib/crc32.js n=4000000 len=65536 type='buffer'                                                                        -0.72 %       ±0.73%  ±0.97%  ±1.27%
zlib/crc32.js n=4000000 len=65536 type='string'                                                                         0.19 %       ±0.80%  ±1.07%  ±1.39%
zlib/createInflate.js n=100 chunkLen=1024 inputLen=16777216                                                            -3.20 %       ±4.95%  ±6.59%  ±8.59%
zlib/creation.js n=500000 options='false' type='BrotliCompress'                                                ***      4.30 %       ±2.29%  ±3.05%  ±3.97%
zlib/creation.js n=500000 options='false' type='BrotliDecompress'                                              ***      5.34 %       ±2.11%  ±2.81%  ±3.67%
zlib/creation.js n=500000 options='false' type='Deflate'                                                        **      4.83 %       ±2.82%  ±3.76%  ±4.89%
zlib/creation.js n=500000 options='false' type='DeflateRaw'                                                    ***      6.19 %       ±2.73%  ±3.64%  ±4.74%
zlib/creation.js n=500000 options='false' type='Gunzip'                                                         **      3.70 %       ±2.59%  ±3.45%  ±4.49%
zlib/creation.js n=500000 options='false' type='Gzip'                                                          ***      6.44 %       ±3.37%  ±4.49%  ±5.86%
zlib/creation.js n=500000 options='false' type='Inflate'                                                       ***      5.87 %       ±2.49%  ±3.31%  ±4.31%
zlib/creation.js n=500000 options='false' type='InflateRaw'                                                    ***      4.81 %       ±2.47%  ±3.30%  ±4.30%
zlib/creation.js n=500000 options='false' type='Unzip'                                                         ***      7.42 %       ±2.83%  ±3.77%  ±4.90%
zlib/creation.js n=500000 options='false' type='ZstdCompress'                                                          -0.21 %       ±1.83%  ±2.44%  ±3.18%
zlib/creation.js n=500000 options='false' type='ZstdDecompress'                                                        -1.24 %       ±2.83%  ±3.77%  ±4.90%
zlib/creation.js n=500000 options='true' type='BrotliCompress'                                                 ***      4.90 %       ±2.27%  ±3.02%  ±3.93%
zlib/creation.js n=500000 options='true' type='BrotliDecompress'                                               ***      5.66 %       ±2.27%  ±3.02%  ±3.93%
zlib/creation.js n=500000 options='true' type='Deflate'                                                        ***      5.32 %       ±2.47%  ±3.28%  ±4.28%
zlib/creation.js n=500000 options='true' type='DeflateRaw'                                                     ***      5.71 %       ±2.51%  ±3.36%  ±4.40%
zlib/creation.js n=500000 options='true' type='Gunzip'                                                         ***      6.08 %       ±2.81%  ±3.74%  ±4.88%
zlib/creation.js n=500000 options='true' type='Gzip'                                                           ***      4.87 %       ±2.63%  ±3.50%  ±4.56%
zlib/creation.js n=500000 options='true' type='Inflate'                                                        ***      4.49 %       ±2.44%  ±3.26%  ±4.26%
zlib/creation.js n=500000 options='true' type='InflateRaw'                                                     ***      7.47 %       ±2.29%  ±3.05%  ±3.97%
zlib/creation.js n=500000 options='true' type='Unzip'                                                           **      3.97 %       ±2.59%  ±3.45%  ±4.49%
zlib/creation.js n=500000 options='true' type='ZstdCompress'                                                           -0.51 %       ±1.95%  ±2.59%  ±3.37%
zlib/creation.js n=500000 options='true' type='ZstdDecompress'                                                          1.30 %       ±2.66%  ±3.54%  ±4.61%
zlib/deflate.js n=400000 inputLen=1024 method='createDeflate'                                                         -10.55 %      ±12.56% ±16.79% ±22.00%
zlib/deflate.js n=400000 inputLen=1024 method='deflate'                                                                 2.23 %       ±3.61%  ±4.80%  ±6.26%
zlib/deflate.js n=400000 inputLen=1024 method='deflateSync'                                                    ***      3.21 %       ±0.72%  ±0.96%  ±1.25%
zlib/inflate.js n=400000 inputLen=1024 method='inflate'                                                                 6.46 %      ±17.81% ±23.71% ±30.89%
zlib/inflate.js n=400000 inputLen=1024 method='inflateSync'                                                    ***      4.22 %       ±1.64%  ±2.18%  ±2.84%
zlib/pipe.js algorithm='brotli' type='buffer' duration=5 inputLen=1024                                                  2.69 %       ±8.00% ±10.65% ±13.88%
zlib/pipe.js algorithm='brotli' type='string' duration=5 inputLen=1024                                                  4.14 %       ±7.30%  ±9.71% ±12.64%
zlib/pipe.js algorithm='gzip' type='buffer' duration=5 inputLen=1024                                                    1.27 %       ±1.99%  ±2.64%  ±3.44%
zlib/pipe.js algorithm='gzip' type='string' duration=5 inputLen=1024                                                    0.21 %       ±1.92%  ±2.56%  ±3.33%
zlib/pipe.js algorithm='zstd' type='buffer' duration=5 inputLen=1024                                                   -1.33 %       ±3.24%  ±4.32%  ±5.62%
zlib/pipe.js algorithm='zstd' type='string' duration=5 inputLen=1024                                                   -1.04 %       ±1.64%  ±2.19%  ±2.85%

Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 112 comparisons, you can thus expect the following amount of false-positive results:
  5.60 false positives, when considering a   5% risk acceptance (*, **, ***),
  1.12 false positives, when considering a   1% risk acceptance (**, ***),
  0.11 false positives, when considering a 0.1% risk acceptance (***)

@LiviaMedeiros LiviaMedeiros added zlib Issues and PRs related to the zlib subsystem. http2 Issues or PRs related to the http2 subsystem. needs-ci PRs that need a full CI run. needs-benchmark-ci PR that need a benchmark CI run. labels Nov 24, 2025
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/http2
  • @nodejs/net

@codecov
Copy link

codecov bot commented Nov 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.54%. Comparing base (1758b74) to head (ffe3d11).
⚠️ Report is 83 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60834      +/-   ##
==========================================
- Coverage   88.56%   88.54%   -0.03%     
==========================================
  Files         703      703              
  Lines      208268   208256      -12     
  Branches    40175    40166       -9     
==========================================
- Hits       184444   184390      -54     
- Misses      15828    15864      +36     
- Partials     7996     8002       +6     
Files with missing lines Coverage Δ
lib/internal/http2/compat.js 96.93% <100.00%> (-0.01%) ⬇️
lib/internal/http2/core.js 95.22% <100.00%> (-0.01%) ⬇️
lib/zlib.js 98.27% <100.00%> (-0.01%) ⬇️

... and 30 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@aduh95
Copy link
Contributor

aduh95 commented Nov 24, 2025

Can you try to benchmark with FunctionPrototypeCall?

@LiviaMedeiros
Copy link
Member Author

zlib/creation benchmarks using FunctionPrototypeCall::

                                                                  confidence improvement accuracy (*)   (**)  (***)
zlib/creation.js n=500000 options='false' type='BrotliCompress'                   0.12 %       ±1.11% ±1.47% ±1.92%
zlib/creation.js n=500000 options='false' type='BrotliDecompress'                 0.51 %       ±0.89% ±1.19% ±1.55%
zlib/creation.js n=500000 options='false' type='Deflate'                  **      1.57 %       ±1.14% ±1.52% ±1.97%
zlib/creation.js n=500000 options='false' type='DeflateRaw'                       0.82 %       ±1.11% ±1.47% ±1.92%
zlib/creation.js n=500000 options='false' type='Gunzip'                    *      1.36 %       ±1.16% ±1.54% ±2.00%
zlib/creation.js n=500000 options='false' type='Gzip'                             0.88 %       ±1.15% ±1.53% ±1.99%
zlib/creation.js n=500000 options='false' type='Inflate'                          0.63 %       ±1.27% ±1.69% ±2.20%
zlib/creation.js n=500000 options='false' type='InflateRaw'                       0.98 %       ±1.11% ±1.48% ±1.93%
zlib/creation.js n=500000 options='false' type='Unzip'                            0.18 %       ±0.98% ±1.31% ±1.70%
zlib/creation.js n=500000 options='false' type='ZstdCompress'             **      1.47 %       ±0.85% ±1.13% ±1.47%
zlib/creation.js n=500000 options='false' type='ZstdDecompress'           **     -1.75 %       ±1.28% ±1.71% ±2.22%
zlib/creation.js n=500000 options='true' type='BrotliCompress'                   -0.88 %       ±0.96% ±1.28% ±1.66%
zlib/creation.js n=500000 options='true' type='BrotliDecompress'                  0.06 %       ±0.86% ±1.14% ±1.49%
zlib/creation.js n=500000 options='true' type='Deflate'                   **      1.86 %       ±1.19% ±1.58% ±2.05%
zlib/creation.js n=500000 options='true' type='DeflateRaw'                        0.93 %       ±1.17% ±1.55% ±2.02%
zlib/creation.js n=500000 options='true' type='Gunzip'                            0.12 %       ±1.09% ±1.45% ±1.88%
zlib/creation.js n=500000 options='true' type='Gzip'                      **      1.87 %       ±1.26% ±1.68% ±2.18%
zlib/creation.js n=500000 options='true' type='Inflate'                          -0.11 %       ±1.13% ±1.50% ±1.95%
zlib/creation.js n=500000 options='true' type='InflateRaw'                        0.59 %       ±1.07% ±1.42% ±1.85%
zlib/creation.js n=500000 options='true' type='Unzip'                             0.16 %       ±1.09% ±1.45% ±1.89%
zlib/creation.js n=500000 options='true' type='ZstdCompress'                      0.56 %       ±1.01% ±1.34% ±1.74%
zlib/creation.js n=500000 options='true' type='ZstdDecompress'                   -0.67 %       ±1.20% ±1.59% ±2.08%

@aduh95
Copy link
Contributor

aduh95 commented Nov 24, 2025

zlib/creation benchmarks using FunctionPrototypeCall::

Comparing it against ReflectApply, not .call, correct? V8 optimising is definitely surprising, how come we get a worse perf on ZstdDecompress?!

@aduh95
Copy link
Contributor

aduh95 commented Nov 24, 2025

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

                                                                       confidence improvement accuracy (*)    (**)   (***)
zlib/crc32.js n=4000000 len=256 type='buffer'                                          0.01 %       ±0.04%  ±0.06%  ±0.08%
zlib/crc32.js n=4000000 len=256 type='string'                                          0.20 %       ±0.27%  ±0.36%  ±0.48%
zlib/crc32.js n=4000000 len=32 type='buffer'                                           0.06 %       ±0.19%  ±0.25%  ±0.33%
zlib/crc32.js n=4000000 len=32 type='string'                                          -0.64 %       ±1.30%  ±1.76%  ±2.33%
zlib/crc32.js n=4000000 len=4096 type='buffer'                                        -0.05 %       ±0.07%  ±0.10%  ±0.13%
zlib/crc32.js n=4000000 len=4096 type='string'                                         0.01 %       ±0.13%  ±0.17%  ±0.22%
zlib/crc32.js n=4000000 len=65536 type='buffer'                               ***      0.08 %       ±0.02%  ±0.02%  ±0.03%
zlib/crc32.js n=4000000 len=65536 type='string'                                        0.07 %       ±0.15%  ±0.20%  ±0.26%
zlib/createInflate.js n=100 chunkLen=1024 inputLen=16777216                            1.99 %       ±2.16%  ±2.88%  ±3.75%
zlib/creation.js n=500000 options='false' type='BrotliCompress'               ***      4.17 %       ±0.71%  ±0.94%  ±1.22%
zlib/creation.js n=500000 options='false' type='BrotliDecompress'             ***      3.08 %       ±0.95%  ±1.26%  ±1.65%
zlib/creation.js n=500000 options='false' type='Deflate'                      ***      3.52 %       ±0.84%  ±1.11%  ±1.46%
zlib/creation.js n=500000 options='false' type='DeflateRaw'                   ***      3.13 %       ±0.73%  ±0.97%  ±1.27%
zlib/creation.js n=500000 options='false' type='Gunzip'                       ***      3.40 %       ±0.71%  ±0.94%  ±1.22%
zlib/creation.js n=500000 options='false' type='Gzip'                         ***      3.58 %       ±0.69%  ±0.92%  ±1.20%
zlib/creation.js n=500000 options='false' type='Inflate'                      ***      3.43 %       ±0.87%  ±1.16%  ±1.51%
zlib/creation.js n=500000 options='false' type='InflateRaw'                   ***      3.71 %       ±0.77%  ±1.02%  ±1.33%
zlib/creation.js n=500000 options='false' type='Unzip'                        ***      3.12 %       ±0.62%  ±0.83%  ±1.08%
zlib/creation.js n=500000 options='false' type='ZstdCompress'                          0.13 %       ±0.52%  ±0.69%  ±0.89%
zlib/creation.js n=500000 options='false' type='ZstdDecompress'                       -0.68 %       ±1.41%  ±1.88%  ±2.46%
zlib/creation.js n=500000 options='true' type='BrotliCompress'                ***      2.90 %       ±0.78%  ±1.04%  ±1.35%
zlib/creation.js n=500000 options='true' type='BrotliDecompress'              ***      3.33 %       ±1.04%  ±1.39%  ±1.81%
zlib/creation.js n=500000 options='true' type='Deflate'                       ***      3.25 %       ±0.99%  ±1.32%  ±1.72%
zlib/creation.js n=500000 options='true' type='DeflateRaw'                    ***      2.79 %       ±1.06%  ±1.41%  ±1.83%
zlib/creation.js n=500000 options='true' type='Gunzip'                        ***      3.27 %       ±1.03%  ±1.37%  ±1.79%
zlib/creation.js n=500000 options='true' type='Gzip'                          ***      2.94 %       ±1.17%  ±1.56%  ±2.03%
zlib/creation.js n=500000 options='true' type='Inflate'                       ***      3.73 %       ±1.04%  ±1.39%  ±1.82%
zlib/creation.js n=500000 options='true' type='InflateRaw'                    ***      3.04 %       ±0.84%  ±1.12%  ±1.46%
zlib/creation.js n=500000 options='true' type='Unzip'                         ***      3.08 %       ±1.02%  ±1.36%  ±1.77%
zlib/creation.js n=500000 options='true' type='ZstdCompress'                          -0.26 %       ±0.69%  ±0.92%  ±1.19%
zlib/creation.js n=500000 options='true' type='ZstdDecompress'                        -0.11 %       ±1.28%  ±1.70%  ±2.22%
zlib/deflate.js n=400000 inputLen=1024 method='createDeflate'                         -2.07 %       ±2.60%  ±3.46%  ±4.51%
zlib/deflate.js n=400000 inputLen=1024 method='deflate'                                0.22 %       ±1.13%  ±1.50%  ±1.95%
zlib/deflate.js n=400000 inputLen=1024 method='deflateSync'                   ***      0.72 %       ±0.29%  ±0.39%  ±0.51%
zlib/inflate.js n=400000 inputLen=1024 method='inflate'                                0.54 %       ±0.69%  ±0.92%  ±1.20%
zlib/inflate.js n=400000 inputLen=1024 method='inflateSync'                   ***      3.87 %       ±1.08%  ±1.43%  ±1.86%
zlib/pipe.js algorithm='brotli' type='buffer' duration=5 inputLen=1024                 0.57 %       ±0.60%  ±0.79%  ±1.03%
zlib/pipe.js algorithm='brotli' type='string' duration=5 inputLen=1024          *      0.65 %       ±0.54%  ±0.72%  ±0.93%
zlib/pipe.js algorithm='gzip' type='buffer' duration=5 inputLen=1024                  -5.04 %      ±14.64% ±19.49% ±25.39%
zlib/pipe.js algorithm='gzip' type='string' duration=5 inputLen=1024                  -0.00 %       ±3.04%  ±4.05%  ±5.27%
zlib/pipe.js algorithm='zstd' type='buffer' duration=5 inputLen=1024                  -0.14 %       ±0.47%  ±0.63%  ±0.82%
zlib/pipe.js algorithm='zstd' type='string' duration=5 inputLen=1024                  -0.07 %       ±0.72%  ±0.96%  ±1.25%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 42 comparisons, you can thus
expect the following amount of false-positive results:
  2.10 false positives, when considering a   5% risk acceptance (*, **, ***),
  0.42 false positives, when considering a   1% risk acceptance (**, ***),
  0.04 false positives, when considering a 0.1% risk acceptance (***)

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. labels Nov 25, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Nov 25, 2025
@nodejs-github-bot
Copy link
Collaborator

@LiviaMedeiros
Copy link
Member Author

Comparing it against ReflectApply, not .call, correct?

Correct. LiviaMedeiros@69cef00 against 8dc2bdd.

V8 optimising is definitely surprising, how come we get a worse perf on ZstdDecompress?!

Zstd constructor is different than others in zlib, the perf difference seems to be within error margin, or maybe caused by something smaller like unfortunate memory allocation or cache miss.

@nodejs-github-bot
Copy link
Collaborator

@aduh95 aduh95 added the commit-queue Add this label to land a pull request using GitHub Actions. label Dec 4, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Dec 4, 2025
@nodejs-github-bot nodejs-github-bot merged commit e776946 into nodejs:main Dec 4, 2025
87 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in e776946

targos pushed a commit that referenced this pull request Dec 5, 2025
PR-URL: #60834
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
aduh95 pushed a commit that referenced this pull request Jan 9, 2026
PR-URL: #60834
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
RafaelGSS pushed a commit that referenced this pull request Jan 13, 2026
PR-URL: #60834
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jan 22, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `25.3.0` → `25.4.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v25.4.0`](https://github.com/nodejs/node/releases/tag/v25.4.0): 2026-01-19, Version 25.4.0 (Current), @&#8203;RafaelGSS

[Compare Source](https://github.com/nodejs/node/compare/v25.3.0...v25.4.0)

##### Notable Changes

- \[[`8f6fada8f1`](https://github.com/nodejs/node/commit/8f6fada8f1)] - **cli**: add --require-module/--no-require-module (Joyee Cheung) [#&#8203;60959](https://github.com/nodejs/node/pull/60959)
- \[[`bf8e738df4`](https://github.com/nodejs/node/commit/bf8e738df4)] - **cli**: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) [#&#8203;60956](https://github.com/nodejs/node/pull/60956)
- \[[`7930d7a19b`](https://github.com/nodejs/node/commit/7930d7a19b)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#&#8203;60741](https://github.com/nodejs/node/pull/60741)
- \[[`44f61dfb92`](https://github.com/nodejs/node/commit/44f61dfb92)] - **doc**: add [@&#8203;avivkeller](https://github.com/avivkeller) to collaborators (Aviv Keller) [#&#8203;61115](https://github.com/nodejs/node/pull/61115)
- \[[`45903ee884`](https://github.com/nodejs/node/commit/45903ee884)] - **doc**: add gurgunday to collaborators (Gürgün Dayıoğlu) [#&#8203;61094](https://github.com/nodejs/node/pull/61094)
- \[[`77faa14d99`](https://github.com/nodejs/node/commit/77faa14d99)] - **doc**: mark --build-snapshot and --build-snapshot-config as stable (Joyee Cheung) [#&#8203;60954](https://github.com/nodejs/node/pull/60954)
- \[[`aefbe4ba47`](https://github.com/nodejs/node/commit/aefbe4ba47)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#&#8203;60214](https://github.com/nodejs/node/pull/60214)
- \[[`8470e2993b`](https://github.com/nodejs/node/commit/8470e2993b)] - **(SEMVER-MINOR)** **http**: add http.setGlobalProxyFromEnv() (Joyee Cheung) [#&#8203;60953](https://github.com/nodejs/node/pull/60953)
- \[[`24384d7438`](https://github.com/nodejs/node/commit/24384d7438)] - **meta**: add Renegade334 to collaborators (Renegade334) [#&#8203;60714](https://github.com/nodejs/node/pull/60714)
- \[[`c1acef6d0f`](https://github.com/nodejs/node/commit/c1acef6d0f)] - **module**: mark require(esm) as stable (Joyee Cheung) [#&#8203;60959](https://github.com/nodejs/node/pull/60959)
- \[[`2e39f3ed6b`](https://github.com/nodejs/node/commit/2e39f3ed6b)] - **module**: mark module compile cache as stable (Joyee Cheung) [#&#8203;60971](https://github.com/nodejs/node/pull/60971)
- \[[`e6a05cfb4f`](https://github.com/nodejs/node/commit/e6a05cfb4f)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#&#8203;60864](https://github.com/nodejs/node/pull/60864)
- \[[`fa927c31da`](https://github.com/nodejs/node/commit/fa927c31da)] - **(SEMVER-MINOR)** **process**: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) [#&#8203;60913](https://github.com/nodejs/node/pull/60913)
- \[[`bd0942f4f5`](https://github.com/nodejs/node/commit/bd0942f4f5)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#&#8203;60907](https://github.com/nodejs/node/pull/60907)
- \[[`5051d90100`](https://github.com/nodejs/node/commit/5051d90100)] - **(SEMVER-MINOR)** **util**: add convertProcessSignalToExitCode utility (Erick Wendel) [#&#8203;60963](https://github.com/nodejs/node/pull/60963)
- \[[`408f024906`](https://github.com/nodejs/node/commit/408f024906)] - **v8**: mark v8.queryObjects() as stable (Joyee Cheung) [#&#8203;60957](https://github.com/nodejs/node/pull/60957)

##### Commits

- \[[`e61cfdbf50`](https://github.com/nodejs/node/commit/e61cfdbf50)] - **assert**: use a set instead of an array for faster lookup (Ruben Bridgewater) [#&#8203;61076](https://github.com/nodejs/node/pull/61076)
- \[[`11861084fd`](https://github.com/nodejs/node/commit/11861084fd)] - **assert,util**: improve comparison performance (Ruben Bridgewater) [#&#8203;61176](https://github.com/nodejs/node/pull/61176)
- \[[`4ef4f759cb`](https://github.com/nodejs/node/commit/4ef4f759cb)] - **assert,util**: fix deep comparing invalid dates skipping properties (Ruben Bridgewater) [#&#8203;61076](https://github.com/nodejs/node/pull/61076)
- \[[`c8fccd585f`](https://github.com/nodejs/node/commit/c8fccd585f)] - **assert,util**: improve deep comparison performance (Ruben Bridgewater) [#&#8203;61076](https://github.com/nodejs/node/pull/61076)
- \[[`13661a0123`](https://github.com/nodejs/node/commit/13661a0123)] - **benchmark**: use boolean options in benchmark tests (SeokhunEom) [#&#8203;60129](https://github.com/nodejs/node/pull/60129)
- \[[`36dead3433`](https://github.com/nodejs/node/commit/36dead3433)] - **benchmark**: allow boolean option values (SeokhunEom) [#&#8203;60129](https://github.com/nodejs/node/pull/60129)
- \[[`376056eaef`](https://github.com/nodejs/node/commit/376056eaef)] - **benchmark**: add microbench on isInsideNodeModules (Chengzhong Wu) [#&#8203;60991](https://github.com/nodejs/node/pull/60991)
- \[[`22d3e85b7a`](https://github.com/nodejs/node/commit/22d3e85b7a)] - **benchmark**: fix incorrect base64 input in byteLength benchmark (semimikoh) [#&#8203;60841](https://github.com/nodejs/node/pull/60841)
- \[[`5016f75522`](https://github.com/nodejs/node/commit/5016f75522)] - **benchmark**: use typescript for import cjs benchmark (Joyee Cheung) [#&#8203;60663](https://github.com/nodejs/node/pull/60663)
- \[[`012a08f6eb`](https://github.com/nodejs/node/commit/012a08f6eb)] - **buffer**: let Buffer.of use heap (Сковорода Никита Андреевич) [#&#8203;60503](https://github.com/nodejs/node/pull/60503)
- \[[`65696e42ba`](https://github.com/nodejs/node/commit/65696e42ba)] - **build**: add `--shared-hdr-histogram` configure flag (Antoine du Hamel) [#&#8203;61280](https://github.com/nodejs/node/pull/61280)
- \[[`6155b8836e`](https://github.com/nodejs/node/commit/6155b8836e)] - **build**: add `--shared-gtest` configure flag (Antoine du Hamel) [#&#8203;61279](https://github.com/nodejs/node/pull/61279)
- \[[`e80127f49c`](https://github.com/nodejs/node/commit/e80127f49c)] - **build**: expose libplatform symbols in shared libnode (Joyee Cheung) [#&#8203;61144](https://github.com/nodejs/node/pull/61144)
- \[[`d99805049e`](https://github.com/nodejs/node/commit/d99805049e)] - **build**: fix inconsistent quoting in `Makefile` (Antoine du Hamel) [#&#8203;60511](https://github.com/nodejs/node/pull/60511)
- \[[`3213de08e8`](https://github.com/nodejs/node/commit/3213de08e8)] - **build**: support building crates (temporal) on windows (沈鸿飞) [#&#8203;61163](https://github.com/nodejs/node/pull/61163)
- \[[`1ad8788391`](https://github.com/nodejs/node/commit/1ad8788391)] - **build**: remove temporal updater (Chengzhong Wu) [#&#8203;61151](https://github.com/nodejs/node/pull/61151)
- \[[`e6e25d65be`](https://github.com/nodejs/node/commit/e6e25d65be)] - **build**: add --debug-symbols to build with -g without enabling DCHECKs (Joyee Cheung) [#&#8203;61100](https://github.com/nodejs/node/pull/61100)
- \[[`7040ec94c8`](https://github.com/nodejs/node/commit/7040ec94c8)] - **build**: update test-wpt-report to use NODE instead of OUT\_NODE (Filip Skokan) [#&#8203;61024](https://github.com/nodejs/node/pull/61024)
- \[[`990da3518d`](https://github.com/nodejs/node/commit/990da3518d)] - **build**: skip build-ci on actions with a separate test step (Chengzhong Wu) [#&#8203;61073](https://github.com/nodejs/node/pull/61073)
- \[[`3259e395c9`](https://github.com/nodejs/node/commit/3259e395c9)] - **build**: run embedtest with node\_g when BUILDTYPE=Debug (Chengzhong Wu) [#&#8203;60850](https://github.com/nodejs/node/pull/60850)
- \[[`af42ca569f`](https://github.com/nodejs/node/commit/af42ca569f)] - **build**: ignore built-in temporal when building with shared lib (Chengzhong Wu) [#&#8203;60703](https://github.com/nodejs/node/pull/60703)
- \[[`bec7fce07a`](https://github.com/nodejs/node/commit/bec7fce07a)] - **build**: add temporal\_capi gyp (Chengzhong Wu) [#&#8203;60703](https://github.com/nodejs/node/pull/60703)
- \[[`d2f50047f7`](https://github.com/nodejs/node/commit/d2f50047f7)] - **build**: fix OpenSSL version parsing for OpenSSL < 3 (Richard Lau) [#&#8203;60775](https://github.com/nodejs/node/pull/60775)
- \[[`91b20c52df`](https://github.com/nodejs/node/commit/91b20c52df)] - **build**: add flag to compile V8 with Temporal support (Antoine du Hamel) [#&#8203;60701](https://github.com/nodejs/node/pull/60701)
- \[[`0aaed248f0`](https://github.com/nodejs/node/commit/0aaed248f0)] - **build**: add support for Visual Studio 2026 (Michaël Zasso) [#&#8203;60727](https://github.com/nodejs/node/pull/60727)
- \[[`8f6fada8f1`](https://github.com/nodejs/node/commit/8f6fada8f1)] - **cli**: add --require-module/--no-require-module (Joyee Cheung) [#&#8203;60959](https://github.com/nodejs/node/pull/60959)
- \[[`bf8e738df4`](https://github.com/nodejs/node/commit/bf8e738df4)] - **cli**: mark --heapsnapshot-near-heap-limit as stable (Joyee Cheung) [#&#8203;60956](https://github.com/nodejs/node/pull/60956)
- \[[`7930d7a19b`](https://github.com/nodejs/node/commit/7930d7a19b)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#&#8203;60741](https://github.com/nodejs/node/pull/60741)
- \[[`1b15453602`](https://github.com/nodejs/node/commit/1b15453602)] - **deps**: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) [#&#8203;61271](https://github.com/nodejs/node/pull/61271)
- \[[`118fa97c95`](https://github.com/nodejs/node/commit/118fa97c95)] - **deps**: update nbytes to 0.1.2 (Node.js GitHub Bot) [#&#8203;61270](https://github.com/nodejs/node/pull/61270)
- \[[`9b136db814`](https://github.com/nodejs/node/commit/9b136db814)] - **deps**: update ngtcp2 to 1.19.0 (Node.js GitHub Bot) [#&#8203;61156](https://github.com/nodejs/node/pull/61156)
- \[[`5635f23a50`](https://github.com/nodejs/node/commit/5635f23a50)] - **deps**: update nghttp3 to 1.14.0 (Node.js GitHub Bot) [#&#8203;61187](https://github.com/nodejs/node/pull/61187)
- \[[`9ec35c0977`](https://github.com/nodejs/node/commit/9ec35c0977)] - **deps**: update nghttp3 to 1.13.1 (Node.js GitHub Bot) [#&#8203;60046](https://github.com/nodejs/node/pull/60046)
- \[[`4d7d37f701`](https://github.com/nodejs/node/commit/4d7d37f701)] - **deps**: update timezone to 2025c (Node.js GitHub Bot) [#&#8203;61138](https://github.com/nodejs/node/pull/61138)
- \[[`2c1e3ab19d`](https://github.com/nodejs/node/commit/2c1e3ab19d)] - **deps**: nghttp2: revert [`7784fa9`](https://github.com/nodejs/node/commit/7784fa979d0b) (Antoine du Hamel) [#&#8203;61136](https://github.com/nodejs/node/pull/61136)
- \[[`56a6513648`](https://github.com/nodejs/node/commit/56a6513648)] - **deps**: update nghttp2 to 1.68.0 (nodejs-github-bot) [#&#8203;61136](https://github.com/nodejs/node/pull/61136)
- \[[`f2692c5534`](https://github.com/nodejs/node/commit/f2692c5534)] - **deps**: remove independent temporal (Chengzhong Wu) [#&#8203;61072](https://github.com/nodejs/node/pull/61072)
- \[[`3acbf3f129`](https://github.com/nodejs/node/commit/3acbf3f129)] - **deps**: apply cargo vendor (Chengzhong Wu) [#&#8203;61072](https://github.com/nodejs/node/pull/61072)
- \[[`d2759f4805`](https://github.com/nodejs/node/commit/d2759f4805)] - **deps**: add vendor depenency crate (Chengzhong Wu) [#&#8203;61072](https://github.com/nodejs/node/pull/61072)
- \[[`6330385174`](https://github.com/nodejs/node/commit/6330385174)] - **deps**: update simdjson to 4.2.4 (Node.js GitHub Bot) [#&#8203;61056](https://github.com/nodejs/node/pull/61056)
- \[[`9835860115`](https://github.com/nodejs/node/commit/9835860115)] - **deps**: update googletest to [`065127f`](https://github.com/nodejs/node/commit/065127f1e4b46c5f14fc73cf8d323c221f9dc68e) (Node.js GitHub Bot) [#&#8203;61055](https://github.com/nodejs/node/pull/61055)
- \[[`d2e6dff2f9`](https://github.com/nodejs/node/commit/d2e6dff2f9)] - **deps**: brotli: cherry-pick [`e230f47`](https://github.com/nodejs/node/commit/e230f474b87) (liujiahui) [#&#8203;61003](https://github.com/nodejs/node/pull/61003)
- \[[`27da9ca1c7`](https://github.com/nodejs/node/commit/27da9ca1c7)] - **deps**: upgrade npm to 11.7.0 (npm team) [#&#8203;61011](https://github.com/nodejs/node/pull/61011)
- \[[`398ba68793`](https://github.com/nodejs/node/commit/398ba68793)] - **deps**: V8: cherry-pick [`72b0e27`](https://github.com/nodejs/node/commit/72b0e27bd936) (pthier) [#&#8203;60706](https://github.com/nodejs/node/pull/60706)
- \[[`a8ae3b9557`](https://github.com/nodejs/node/commit/a8ae3b9557)] - **deps**: update sqlite to 3.51.1 (Node.js GitHub Bot) [#&#8203;60899](https://github.com/nodejs/node/pull/60899)
- \[[`4e1edae655`](https://github.com/nodejs/node/commit/4e1edae655)] - **deps**: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) [#&#8203;60898](https://github.com/nodejs/node/pull/60898)
- \[[`49b5954e74`](https://github.com/nodejs/node/commit/49b5954e74)] - **deps**: update corepack to 0.34.5 (Node.js GitHub Bot) [#&#8203;60842](https://github.com/nodejs/node/pull/60842)
- \[[`6ae415361f`](https://github.com/nodejs/node/commit/6ae415361f)] - **deps**: upgrade npm to 11.6.4 (npm team) [#&#8203;60853](https://github.com/nodejs/node/pull/60853)
- \[[`3cc857001a`](https://github.com/nodejs/node/commit/3cc857001a)] - **deps**: add temporal\_rs 0.1.0 (Chengzhong Wu) [#&#8203;60703](https://github.com/nodejs/node/pull/60703)
- \[[`660788cd4b`](https://github.com/nodejs/node/commit/660788cd4b)] - **deps**: update sqlite to 3.51.0 (Node.js GitHub Bot) [#&#8203;60614](https://github.com/nodejs/node/pull/60614)
- \[[`c6d7a7b7cd`](https://github.com/nodejs/node/commit/c6d7a7b7cd)] - **deps**: upgrade npm to 11.6.3 (npm team) [#&#8203;60785](https://github.com/nodejs/node/pull/60785)
- \[[`062e15bddf`](https://github.com/nodejs/node/commit/062e15bddf)] - **deps**: update brotli to 1.2.0 (Node.js GitHub Bot) [#&#8203;60540](https://github.com/nodejs/node/pull/60540)
- \[[`db053988db`](https://github.com/nodejs/node/commit/db053988db)] - **deps**: update simdjson to 4.2.2 (Node.js GitHub Bot) [#&#8203;60740](https://github.com/nodejs/node/pull/60740)
- \[[`ea5deab531`](https://github.com/nodejs/node/commit/ea5deab531)] - **deps**: update googletest to [`1b96fa1`](https://github.com/nodejs/node/commit/1b96fa13f549387b7549cc89e1a785cf143a1a50) (Node.js GitHub Bot) [#&#8203;60739](https://github.com/nodejs/node/pull/60739)
- \[[`c23f40cca4`](https://github.com/nodejs/node/commit/c23f40cca4)] - **deps**: update minimatch to 10.1.1 (Node.js GitHub Bot) [#&#8203;60543](https://github.com/nodejs/node/pull/60543)
- \[[`479c9290b9`](https://github.com/nodejs/node/commit/479c9290b9)] - **deps**: update corepack to 0.34.4 (Node.js GitHub Bot) [#&#8203;60643](https://github.com/nodejs/node/pull/60643)
- \[[`e42911eddd`](https://github.com/nodejs/node/commit/e42911eddd)] - **deps**: update inspector\_protocol to [`1b1bcbb`](https://github.com/nodejs/node/commit/1b1bcbbe060e8c8cd8704f00f78978c50991) (Node.js GitHub Bot) [#&#8203;60705](https://github.com/nodejs/node/pull/60705)
- \[[`d908c83330`](https://github.com/nodejs/node/commit/d908c83330)] - **deps**: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) [#&#8203;60646](https://github.com/nodejs/node/pull/60646)
- \[[`96530a4ca6`](https://github.com/nodejs/node/commit/96530a4ca6)] - **deps**: update simdjson to 4.2.1 (Node.js GitHub Bot) [#&#8203;60644](https://github.com/nodejs/node/pull/60644)
- \[[`6b0926ef20`](https://github.com/nodejs/node/commit/6b0926ef20)] - **deps,src**: prepare for cpplint update (Michaël Zasso) [#&#8203;60901](https://github.com/nodejs/node/pull/60901)
- \[[`5ed71efa3e`](https://github.com/nodejs/node/commit/5ed71efa3e)] - **doc**: fix v25 changelog after security release (Marco Ippolito) [#&#8203;61371](https://github.com/nodejs/node/pull/61371)
- \[[`c2791069a2`](https://github.com/nodejs/node/commit/c2791069a2)] - **doc**: correct description of `error.stack` accessor behavior (René) [#&#8203;61090](https://github.com/nodejs/node/pull/61090)
- \[[`134780c035`](https://github.com/nodejs/node/commit/134780c035)] - **doc**: add documentation for process.traceProcessWarnings (Alireza Ebrahimkhani) [#&#8203;53641](https://github.com/nodejs/node/pull/53641)
- \[[`3b08efcebb`](https://github.com/nodejs/node/commit/3b08efcebb)] - **doc**: add sqlite session disposal method (René) [#&#8203;61273](https://github.com/nodejs/node/pull/61273)
- \[[`ec1847a097`](https://github.com/nodejs/node/commit/ec1847a097)] - **doc**: fix filename typo (Hardanish Singh) [#&#8203;61297](https://github.com/nodejs/node/pull/61297)
- \[[`2c651ce460`](https://github.com/nodejs/node/commit/2c651ce460)] - **doc**: fix typos and grammar in `BUILDING.md` & `onboarding.md` (Hardanish Singh) [#&#8203;61267](https://github.com/nodejs/node/pull/61267)
- \[[`28fe6ea4a8`](https://github.com/nodejs/node/commit/28fe6ea4a8)] - **doc**: mention --newVersion release script (Rafael Gonzaga) [#&#8203;61255](https://github.com/nodejs/node/pull/61255)
- \[[`2fb35d897d`](https://github.com/nodejs/node/commit/2fb35d897d)] - **doc**: correct typo in BUILDING doc (Mike McCready) [#&#8203;61261](https://github.com/nodejs/node/pull/61261)
- \[[`8dc2501a25`](https://github.com/nodejs/node/commit/8dc2501a25)] - **doc**: correct typo in api contributing doc (Mike McCready) [#&#8203;61260](https://github.com/nodejs/node/pull/61260)
- \[[`69e357a9d4`](https://github.com/nodejs/node/commit/69e357a9d4)] - **doc**: add MR-URL requirement for security backports (Rafael Gonzaga) [#&#8203;61256](https://github.com/nodejs/node/pull/61256)
- \[[`73326ae103`](https://github.com/nodejs/node/commit/73326ae103)] - **doc**: add reusePort error behavior to net module (mag123c) [#&#8203;61250](https://github.com/nodejs/node/pull/61250)
- \[[`67fbf4d371`](https://github.com/nodejs/node/commit/67fbf4d371)] - **doc**: note corepack package removal in distribution doc (Mike McCready) [#&#8203;61207](https://github.com/nodejs/node/pull/61207)
- \[[`0792859e49`](https://github.com/nodejs/node/commit/0792859e49)] - **doc**: fix tls.connect() timeout documentation (Azad Gupta) [#&#8203;61079](https://github.com/nodejs/node/pull/61079)
- \[[`72f42b9985`](https://github.com/nodejs/node/commit/72f42b9985)] - **doc**: missing `passed`, `error` and `passed` properties on `TestContext` (Xavier Stouder) [#&#8203;61185](https://github.com/nodejs/node/pull/61185)
- \[[`f418fcc635`](https://github.com/nodejs/node/commit/f418fcc635)] - **doc**: clarify threat model for application-level API exposure (Rafael Gonzaga) [#&#8203;61184](https://github.com/nodejs/node/pull/61184)
- \[[`bd4710769a`](https://github.com/nodejs/node/commit/bd4710769a)] - **doc**: correct options for net.Socket class and socket.connect (Xavier Stouder) [#&#8203;61179](https://github.com/nodejs/node/pull/61179)
- \[[`387b65ca08`](https://github.com/nodejs/node/commit/387b65ca08)] - **doc**: document error event on readline InterfaceConstructor (Xavier Stouder) [#&#8203;61170](https://github.com/nodejs/node/pull/61170)
- \[[`6d886e10e4`](https://github.com/nodejs/node/commit/6d886e10e4)] - **doc**: add a smooth scrolling effect to the sidebar (btea) [#&#8203;59007](https://github.com/nodejs/node/pull/59007)
- \[[`23fb3a64ec`](https://github.com/nodejs/node/commit/23fb3a64ec)] - **doc**: fix test settime docs (Efe) [#&#8203;61117](https://github.com/nodejs/node/pull/61117)
- \[[`808eb437ee`](https://github.com/nodejs/node/commit/808eb437ee)] - **doc**: correct invalid collaborator profile (JJ) [#&#8203;61091](https://github.com/nodejs/node/pull/61091)
- \[[`5e8eb5fe6c`](https://github.com/nodejs/node/commit/5e8eb5fe6c)] - **doc**: add a tip about developer mode on Windows (Joyee Cheung) [#&#8203;61112](https://github.com/nodejs/node/pull/61112)
- \[[`a4248776da`](https://github.com/nodejs/node/commit/a4248776da)] - **doc**: exclude compile-time flag features from security policy (Matteo Collina) [#&#8203;61109](https://github.com/nodejs/node/pull/61109)
- \[[`44f61dfb92`](https://github.com/nodejs/node/commit/44f61dfb92)] - **doc**: add [@&#8203;avivkeller](https://github.com/avivkeller) to collaborators (Aviv Keller) [#&#8203;61115](https://github.com/nodejs/node/pull/61115)
- \[[`08b5347b41`](https://github.com/nodejs/node/commit/08b5347b41)] - **doc**: warn about short GCM tags visibly (Tobias Nießen) [#&#8203;61082](https://github.com/nodejs/node/pull/61082)
- \[[`45903ee884`](https://github.com/nodejs/node/commit/45903ee884)] - **doc**: add gurgunday to collaborators (Gürgün Dayıoğlu) [#&#8203;61094](https://github.com/nodejs/node/pull/61094)
- \[[`ce5d6e22ef`](https://github.com/nodejs/node/commit/ce5d6e22ef)] - **doc**: update MDN links (Livia Medeiros) [#&#8203;61062](https://github.com/nodejs/node/pull/61062)
- \[[`657cbd4af3`](https://github.com/nodejs/node/commit/657cbd4af3)] - **doc**: mark sync module hooks as release candidate (Joyee Cheung) [#&#8203;60960](https://github.com/nodejs/node/pull/60960)
- \[[`a46368a82b`](https://github.com/nodejs/node/commit/a46368a82b)] - **doc**: reorganize docs of module customization hooks (Joyee Cheung) [#&#8203;60960](https://github.com/nodejs/node/pull/60960)
- \[[`9851278e99`](https://github.com/nodejs/node/commit/9851278e99)] - **doc**: mark crypto.hash as stable (Joyee Cheung) [#&#8203;60994](https://github.com/nodejs/node/pull/60994)
- \[[`77faa14d99`](https://github.com/nodejs/node/commit/77faa14d99)] - **doc**: mark --build-snapshot and --build-snapshot-config as stable (Joyee Cheung) [#&#8203;60954](https://github.com/nodejs/node/pull/60954)
- \[[`6d5f9ffc6d`](https://github.com/nodejs/node/commit/6d5f9ffc6d)] - **doc**: add File modes cross-references in fs methods (Mohit Raj Saxena) [#&#8203;60286](https://github.com/nodejs/node/pull/60286)
- \[[`521b25a27d`](https://github.com/nodejs/node/commit/521b25a27d)] - **doc**: add missing `zstd` to mjs example of zlib (Deokjin Kim) [#&#8203;60915](https://github.com/nodejs/node/pull/60915)
- \[[`9a9bed9b3a`](https://github.com/nodejs/node/commit/9a9bed9b3a)] - **doc**: clarify fileURLToPath security considerations (Rafael Gonzaga) [#&#8203;60887](https://github.com/nodejs/node/pull/60887)
- \[[`bebb4731b1`](https://github.com/nodejs/node/commit/bebb4731b1)] - **doc**: show the use of string expressions in the SQLTagStore example (schliepa) [#&#8203;60873](https://github.com/nodejs/node/pull/60873)
- \[[`f247c24cb0`](https://github.com/nodejs/node/commit/f247c24cb0)] - **doc**: replace column with columnNumber in example of `util.getCallSites` (Deokjin Kim) [#&#8203;60881](https://github.com/nodejs/node/pull/60881)
- \[[`487c1080aa`](https://github.com/nodejs/node/commit/487c1080aa)] - **doc**: correct spelling in BUILDING.md (Rich Trott) [#&#8203;60875](https://github.com/nodejs/node/pull/60875)
- \[[`5751e3f736`](https://github.com/nodejs/node/commit/5751e3f736)] - **doc**: update debuglog examples to use 'foo-bar' instead of 'foo' (xiaoyao) [#&#8203;60867](https://github.com/nodejs/node/pull/60867)
- \[[`ec8336b7a0`](https://github.com/nodejs/node/commit/ec8336b7a0)] - **doc**: correct 'event handle' to 'event handler' in Utf8Stream drop event (Riddhi) [#&#8203;60692](https://github.com/nodejs/node/pull/60692)
- \[[`95ef052751`](https://github.com/nodejs/node/commit/95ef052751)] - **doc**: fix typos in changelogs (Rich Trott) [#&#8203;60855](https://github.com/nodejs/node/pull/60855)
- \[[`a10b3130c6`](https://github.com/nodejs/node/commit/a10b3130c6)] - **doc**: mark module.register as active development (Chengzhong Wu) [#&#8203;60849](https://github.com/nodejs/node/pull/60849)
- \[[`bfe8c62a2d`](https://github.com/nodejs/node/commit/bfe8c62a2d)] - **doc**: add fullName property to SuiteContext (PaulyBearCoding) [#&#8203;60762](https://github.com/nodejs/node/pull/60762)
- \[[`2799f594e3`](https://github.com/nodejs/node/commit/2799f594e3)] - **doc**: add additional codemods for deprecation (Augustin Mauroy) [#&#8203;60811](https://github.com/nodejs/node/pull/60811)
- \[[`2b51d5d113`](https://github.com/nodejs/node/commit/2b51d5d113)] - **doc**: keep sidebar module visible when navigating docs (Botato) [#&#8203;60410](https://github.com/nodejs/node/pull/60410)
- \[[`2fa9917b07`](https://github.com/nodejs/node/commit/2fa9917b07)] - **doc**: fix webstorage config file property (Marco Ippolito) [#&#8203;60798](https://github.com/nodejs/node/pull/60798)
- \[[`a0691d6eb6`](https://github.com/nodejs/node/commit/a0691d6eb6)] - **doc**: correct concurrency wording in test() documentation (Azad Gupta) [#&#8203;60773](https://github.com/nodejs/node/pull/60773)
- \[[`d26842c523`](https://github.com/nodejs/node/commit/d26842c523)] - **doc**: clarify that CQ only picks up MRs targeting `main` (René) [#&#8203;60731](https://github.com/nodejs/node/pull/60731)
- \[[`3e84428ffe`](https://github.com/nodejs/node/commit/3e84428ffe)] - **doc**: clarify license section and add contributor note (KaleruMadhu) [#&#8203;60590](https://github.com/nodejs/node/pull/60590)
- \[[`745ea1d61f`](https://github.com/nodejs/node/commit/745ea1d61f)] - **doc**: correct and expand documentation for SQLTagStore (René) [#&#8203;60200](https://github.com/nodejs/node/pull/60200)
- \[[`a442c27c0a`](https://github.com/nodejs/node/commit/a442c27c0a)] - **doc**: correct tls ALPNProtocols types (René) [#&#8203;60143](https://github.com/nodejs/node/pull/60143)
- \[[`d90001a579`](https://github.com/nodejs/node/commit/d90001a579)] - **doc**: remove mention of SMS 2FA (Antoine du Hamel) [#&#8203;60707](https://github.com/nodejs/node/pull/60707)
- \[[`7525a3fa4b`](https://github.com/nodejs/node/commit/7525a3fa4b)] - **doc**: add info about renamed flag in `cli.md` (Antoine du Hamel) [#&#8203;60690](https://github.com/nodejs/node/pull/60690)
- \[[`db0a86897b`](https://github.com/nodejs/node/commit/db0a86897b)] - **doc**: fix incorrect slh-dsa oids in crypto.md (Artsiom Malakhau) [#&#8203;60681](https://github.com/nodejs/node/pull/60681)
- \[[`e5ede89a94`](https://github.com/nodejs/node/commit/e5ede89a94)] - **doc**: `domain.add()` does not accept timer objects (René) [#&#8203;60675](https://github.com/nodejs/node/pull/60675)
- \[[`36ba9d99ba`](https://github.com/nodejs/node/commit/36ba9d99ba)] - ***Revert*** "**doc, assert**: correct order of changes entries" (Michaël Zasso) [#&#8203;60774](https://github.com/nodejs/node/pull/60774)
- \[[`e6e5ed7665`](https://github.com/nodejs/node/commit/e6e5ed7665)] - **doc,test**: add documentation and test on how to use addons in SEA (Joyee Cheung) [#&#8203;59582](https://github.com/nodejs/node/pull/59582)
- \[[`f12eb28489`](https://github.com/nodejs/node/commit/f12eb28489)] - **esm**: avoid throw when module specifier is not url (Craig Macomber (Microsoft)) [#&#8203;61000](https://github.com/nodejs/node/pull/61000)
- \[[`a7b92e0677`](https://github.com/nodejs/node/commit/a7b92e0677)] - **esm**: improve error messages for ambiguous module syntax (mag123c) [#&#8203;60376](https://github.com/nodejs/node/pull/60376)
- \[[`6da85b576b`](https://github.com/nodejs/node/commit/6da85b576b)] - **events**: remove eventtarget custom inspect branding (Efe) [#&#8203;61128](https://github.com/nodejs/node/pull/61128)
- \[[`aefbe4ba47`](https://github.com/nodejs/node/commit/aefbe4ba47)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#&#8203;60214](https://github.com/nodejs/node/pull/60214)
- \[[`dc19409f36`](https://github.com/nodejs/node/commit/dc19409f36)] - **fs**: validate statfs path (Efe) [#&#8203;61230](https://github.com/nodejs/node/pull/61230)
- \[[`206e353a4a`](https://github.com/nodejs/node/commit/206e353a4a)] - **fs**: fix rmSync to handle non-ASCII characters (Yeaseen) [#&#8203;61108](https://github.com/nodejs/node/pull/61108)
- \[[`feee377b83`](https://github.com/nodejs/node/commit/feee377b83)] - **fs**: remove broken symlinks in rmSync (sangwook) [#&#8203;61040](https://github.com/nodejs/node/pull/61040)
- \[[`6b577c80bb`](https://github.com/nodejs/node/commit/6b577c80bb)] - **fs**: detect dot files when using globstar (Robin van Wijngaarden) [#&#8203;61012](https://github.com/nodejs/node/pull/61012)
- \[[`8470e2993b`](https://github.com/nodejs/node/commit/8470e2993b)] - **(SEMVER-MINOR)** **http**: add http.setGlobalProxyFromEnv() (Joyee Cheung) [#&#8203;60953](https://github.com/nodejs/node/pull/60953)
- \[[`a731463a60`](https://github.com/nodejs/node/commit/a731463a60)] - **http,https**: fix double ERR\_PROXY\_TUNNEL emission (Shima Ryuhei) [#&#8203;60699](https://github.com/nodejs/node/pull/60699)
- \[[`b2736646b6`](https://github.com/nodejs/node/commit/b2736646b6)] - **http2,zlib**: prefer `call()` over `apply()` if argument list is not array (Livia Medeiros) [#&#8203;60834](https://github.com/nodejs/node/pull/60834)
- \[[`86bce15e96`](https://github.com/nodejs/node/commit/86bce15e96)] - **lib**: implement all 1-byte encodings in js (Сковорода Никита Андреевич) [#&#8203;61093](https://github.com/nodejs/node/pull/61093)
- \[[`8156738b97`](https://github.com/nodejs/node/commit/8156738b97)] - **lib**: gbk decoder is gb18030 decoder per spec (Сковорода Никита Андреевич) [#&#8203;61099](https://github.com/nodejs/node/pull/61099)
- \[[`d8f1dea0d3`](https://github.com/nodejs/node/commit/d8f1dea0d3)] - **lib**: enforce use of `URLParse` (Antoine du Hamel) [#&#8203;61016](https://github.com/nodejs/node/pull/61016)
- \[[`9023b3f9ce`](https://github.com/nodejs/node/commit/9023b3f9ce)] - **lib**: add lint rules for reflective function calls (Antoine du Hamel) [#&#8203;60825](https://github.com/nodejs/node/pull/60825)
- \[[`2979113136`](https://github.com/nodejs/node/commit/2979113136)] - **lib**: prefer `call()` over `apply()` if argument list is not array (Livia Medeiros) [#&#8203;60796](https://github.com/nodejs/node/pull/60796)
- \[[`2b36433f4a`](https://github.com/nodejs/node/commit/2b36433f4a)] - **lib**: add support for readable byte streams to .toWeb() (Hans Klunder) [#&#8203;58664](https://github.com/nodejs/node/pull/58664)
- \[[`1a0c3dddb9`](https://github.com/nodejs/node/commit/1a0c3dddb9)] - **lib**: use `FastBuffer` for empty buffer allocation (Gürgün Dayıoğlu) [#&#8203;60558](https://github.com/nodejs/node/pull/60558)
- \[[`9209cf67a4`](https://github.com/nodejs/node/commit/9209cf67a4)] - **lib**: refactor JWK import PQC support check (Filip Skokan) [#&#8203;60586](https://github.com/nodejs/node/pull/60586)
- \[[`42666c241a`](https://github.com/nodejs/node/commit/42666c241a)] - **lib,src**: isInsideNodeModules should test on the first non-internal frame (Chengzhong Wu) [#&#8203;60991](https://github.com/nodejs/node/pull/60991)
- \[[`4a22647609`](https://github.com/nodejs/node/commit/4a22647609)] - **lib,src,test**: fix tests without SQLite (Antoine du Hamel) [#&#8203;60906](https://github.com/nodejs/node/pull/60906)
- \[[`24795530bb`](https://github.com/nodejs/node/commit/24795530bb)] - **lib,test**: enforce use of `assert.fail` via a lint rule (Antoine du Hamel) [#&#8203;61004](https://github.com/nodejs/node/pull/61004)
- \[[`1977348ae0`](https://github.com/nodejs/node/commit/1977348ae0)] - **lib,test**: fix jsdoc comments (Michaël Zasso) [#&#8203;60870](https://github.com/nodejs/node/pull/60870)
- \[[`3549cf14ce`](https://github.com/nodejs/node/commit/3549cf14ce)] - **meta**: remove t.js (RafaelGSS) [#&#8203;61369](https://github.com/nodejs/node/pull/61369)
- \[[`5cf54abad7`](https://github.com/nodejs/node/commit/5cf54abad7)] - **meta**: bump step-security/harden-runner from 2.13.2 to 2.14.0 (dependabot\[bot]) [#&#8203;61245](https://github.com/nodejs/node/pull/61245)
- \[[`b57bab72e1`](https://github.com/nodejs/node/commit/b57bab72e1)] - **meta**: bump actions/setup-node from 6.0.0 to 6.1.0 (dependabot\[bot]) [#&#8203;61244](https://github.com/nodejs/node/pull/61244)
- \[[`42117b5069`](https://github.com/nodejs/node/commit/42117b5069)] - **meta**: bump actions/cache from 4.3.0 to 5.0.1 (dependabot\[bot]) [#&#8203;61243](https://github.com/nodejs/node/pull/61243)
- \[[`fee3edd38e`](https://github.com/nodejs/node/commit/fee3edd38e)] - **meta**: bump actions/download-artifact from 6.0.0 to 7.0.0 (dependabot\[bot]) [#&#8203;61242](https://github.com/nodejs/node/pull/61242)
- \[[`a96c3160ff`](https://github.com/nodejs/node/commit/a96c3160ff)] - **meta**: bump github/codeql-action from 4.31.6 to 4.31.9 (dependabot\[bot]) [#&#8203;61241](https://github.com/nodejs/node/pull/61241)
- \[[`b4233e18a9`](https://github.com/nodejs/node/commit/b4233e18a9)] - **meta**: bump codecov/codecov-action from 5.5.1 to 5.5.2 (dependabot\[bot]) [#&#8203;61240](https://github.com/nodejs/node/pull/61240)
- \[[`c5d7dd3731`](https://github.com/nodejs/node/commit/c5d7dd3731)] - **meta**: bump actions/checkout from 6.0.0 to 6.0.1 (dependabot\[bot]) [#&#8203;61239](https://github.com/nodejs/node/pull/61239)
- \[[`d83cec1534`](https://github.com/nodejs/node/commit/d83cec1534)] - **meta**: bump actions/upload-artifact from 5.0.0 to 6.0.0 (dependabot\[bot]) [#&#8203;61238](https://github.com/nodejs/node/pull/61238)
- \[[`d4bfd26f06`](https://github.com/nodejs/node/commit/d4bfd26f06)] - **meta**: bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 (dependabot\[bot]) [#&#8203;61237](https://github.com/nodejs/node/pull/61237)
- \[[`9246c6ab12`](https://github.com/nodejs/node/commit/9246c6ab12)] - **meta**: bump cachix/install-nix-action from 31.8.4 to 31.9.0 (dependabot\[bot]) [#&#8203;61236](https://github.com/nodejs/node/pull/61236)
- \[[`1b378cfd5e`](https://github.com/nodejs/node/commit/1b378cfd5e)] - **meta**: move lukekarrys to emeritus (Node.js GitHub Bot) [#&#8203;60985](https://github.com/nodejs/node/pull/60985)
- \[[`f3bfa68d78`](https://github.com/nodejs/node/commit/f3bfa68d78)] - **meta**: bump actions/setup-python from 6.0.0 to 6.1.0 (dependabot\[bot]) [#&#8203;60927](https://github.com/nodejs/node/pull/60927)
- \[[`f1935d19e9`](https://github.com/nodejs/node/commit/f1935d19e9)] - **meta**: bump github/codeql-action from 4.31.3 to 4.31.6 (dependabot\[bot]) [#&#8203;60926](https://github.com/nodejs/node/pull/60926)
- \[[`0a4a4c090d`](https://github.com/nodejs/node/commit/0a4a4c090d)] - **meta**: bump actions/checkout from 5.0.1 to 6.0.0 (dependabot\[bot]) [#&#8203;60925](https://github.com/nodejs/node/pull/60925)
- \[[`d76f95117b`](https://github.com/nodejs/node/commit/d76f95117b)] - **meta**: bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 (dependabot\[bot]) [#&#8203;60924](https://github.com/nodejs/node/pull/60924)
- \[[`4dd153f8c3`](https://github.com/nodejs/node/commit/4dd153f8c3)] - **meta**: bump github/codeql-action from 4.31.2 to 4.31.3 (dependabot\[bot]) [#&#8203;60770](https://github.com/nodejs/node/pull/60770)
- \[[`a90bf3ece1`](https://github.com/nodejs/node/commit/a90bf3ece1)] - **meta**: bump step-security/harden-runner from 2.13.1 to 2.13.2 (dependabot\[bot]) [#&#8203;60769](https://github.com/nodejs/node/pull/60769)
- \[[`ecc945d7ec`](https://github.com/nodejs/node/commit/ecc945d7ec)] - **meta**: bump cachix/install-nix-action from 31.8.2 to 31.8.4 (dependabot\[bot]) [#&#8203;60768](https://github.com/nodejs/node/pull/60768)
- \[[`5578327a4f`](https://github.com/nodejs/node/commit/5578327a4f)] - **meta**: bump actions/checkout from 5.0.0 to 5.0.1 (dependabot\[bot]) [#&#8203;60767](https://github.com/nodejs/node/pull/60767)
- \[[`24384d7438`](https://github.com/nodejs/node/commit/24384d7438)] - **meta**: add Renegade334 to collaborators (Renegade334) [#&#8203;60714](https://github.com/nodejs/node/pull/60714)
- \[[`2d560e42fa`](https://github.com/nodejs/node/commit/2d560e42fa)] - **module**: fix sync resolve hooks for require with node: prefixes (Joyee Cheung) [#&#8203;61088](https://github.com/nodejs/node/pull/61088)
- \[[`15c3655b9a`](https://github.com/nodejs/node/commit/15c3655b9a)] - **module**: preserve URL in the parent created by createRequire() (Joyee Cheung) [#&#8203;60974](https://github.com/nodejs/node/pull/60974)
- \[[`c1acef6d0f`](https://github.com/nodejs/node/commit/c1acef6d0f)] - **module**: mark require(esm) as stable (Joyee Cheung) [#&#8203;60959](https://github.com/nodejs/node/pull/60959)
- \[[`2e39f3ed6b`](https://github.com/nodejs/node/commit/2e39f3ed6b)] - **module**: mark module compile cache as stable (Joyee Cheung) [#&#8203;60971](https://github.com/nodejs/node/pull/60971)
- \[[`e6a05cfb4f`](https://github.com/nodejs/node/commit/e6a05cfb4f)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#&#8203;60864](https://github.com/nodejs/node/pull/60864)
- \[[`1983cd6692`](https://github.com/nodejs/node/commit/1983cd6692)] - **node-api**: add napi\_set\_prototype (siaeyy) [#&#8203;60711](https://github.com/nodejs/node/pull/60711)
- \[[`350b0ea895`](https://github.com/nodejs/node/commit/350b0ea895)] - **node-api**: fix data race and use-after-free in napi\_threadsafe\_function (Mika Fischer) [#&#8203;55877](https://github.com/nodejs/node/pull/55877)
- \[[`cb3f79273a`](https://github.com/nodejs/node/commit/cb3f79273a)] - **node-api**: add support for Float16Array (Ilyas Shabi) [#&#8203;58879](https://github.com/nodejs/node/pull/58879)
- \[[`bdf359b3d1`](https://github.com/nodejs/node/commit/bdf359b3d1)] - **node-api**: support SharedArrayBuffer in napi\_create\_dataview (Kevin Eady) [#&#8203;60473](https://github.com/nodejs/node/pull/60473)
- \[[`3c5dc03f06`](https://github.com/nodejs/node/commit/3c5dc03f06)] - **os**: freeze signals constant (Xavier Stouder) [#&#8203;61038](https://github.com/nodejs/node/pull/61038)
- \[[`ca5c4c9752`](https://github.com/nodejs/node/commit/ca5c4c9752)] - **process**: improve process.cwd() error message (TseIan) [#&#8203;61164](https://github.com/nodejs/node/pull/61164)
- \[[`fa927c31da`](https://github.com/nodejs/node/commit/fa927c31da)] - **(SEMVER-MINOR)** **process**: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) [#&#8203;60913](https://github.com/nodejs/node/pull/60913)
- \[[`571cec49e0`](https://github.com/nodejs/node/commit/571cec49e0)] - **repl**: fix getters triggering side effects during completion (Dario Piotrowicz) [#&#8203;61043](https://github.com/nodejs/node/pull/61043)
- \[[`377aed336c`](https://github.com/nodejs/node/commit/377aed336c)] - **repl**: tab completion targets `<class>` instead of `new <class>` (Đỗ Trọng Hải) [#&#8203;60319](https://github.com/nodejs/node/pull/60319)
- \[[`cb8bc3466d`](https://github.com/nodejs/node/commit/cb8bc3466d)] - **sqlite**: improve error messages for tag store (Pramit Sharma) [#&#8203;61096](https://github.com/nodejs/node/pull/61096)
- \[[`324ea4fa2d`](https://github.com/nodejs/node/commit/324ea4fa2d)] - **sqlite**: make `SQLTagStore.prototype.size` a getter (René) [#&#8203;60246](https://github.com/nodejs/node/pull/60246)
- \[[`874c50296d`](https://github.com/nodejs/node/commit/874c50296d)] - **src**: dump snapshot source with node:generate\_default\_snapshot\_source (Joyee Cheung) [#&#8203;61101](https://github.com/nodejs/node/pull/61101)
- \[[`0692b4f014`](https://github.com/nodejs/node/commit/0692b4f014)] - **src**: improve StringBytes::Encode perf on ASCII (Сковорода Никита Андреевич) [#&#8203;61119](https://github.com/nodejs/node/pull/61119)
- \[[`754271a1f0`](https://github.com/nodejs/node/commit/754271a1f0)] - **src**: add HandleScope to edge loop in heap\_utils (Mert Can Altin) [#&#8203;60885](https://github.com/nodejs/node/pull/60885)
- \[[`8f46bd9352`](https://github.com/nodejs/node/commit/8f46bd9352)] - **src**: remove redundant CHECK (Tobias Nießen) [#&#8203;61130](https://github.com/nodejs/node/pull/61130)
- \[[`5e6ffd9aa0`](https://github.com/nodejs/node/commit/5e6ffd9aa0)] - **src**: remove unused private field in `SQLTagStore` (Michaël Zasso) [#&#8203;61027](https://github.com/nodejs/node/pull/61027)
- \[[`550e8a7a69`](https://github.com/nodejs/node/commit/550e8a7a69)] - **src**: implement Windows-1252 encoding support and update related tests (Mert Can Altin) [#&#8203;60893](https://github.com/nodejs/node/pull/60893)
- \[[`3f9c0e07b4`](https://github.com/nodejs/node/commit/3f9c0e07b4)] - **src**: fix off-thread cert loading in bundled cert mode (Joyee Cheung) [#&#8203;60764](https://github.com/nodejs/node/pull/60764)
- \[[`7eaf815341`](https://github.com/nodejs/node/commit/7eaf815341)] - **src**: handle DER decoding errors from system certificates (Joyee Cheung) [#&#8203;60787](https://github.com/nodejs/node/pull/60787)
- \[[`6e76cec44a`](https://github.com/nodejs/node/commit/6e76cec44a)] - **src**: use static\_cast instead of C-style cast (Michaël Zasso) [#&#8203;60868](https://github.com/nodejs/node/pull/60868)
- \[[`103e55487e`](https://github.com/nodejs/node/commit/103e55487e)] - **src**: handle indexed properties in `process.env` (Michaël Zasso) [#&#8203;60826](https://github.com/nodejs/node/pull/60826)
- \[[`83d1f41752`](https://github.com/nodejs/node/commit/83d1f41752)] - **src**: simply uint32 to string as it must not fail (Chengzhong Wu) [#&#8203;60846](https://github.com/nodejs/node/pull/60846)
- \[[`2dfdc6f01e`](https://github.com/nodejs/node/commit/2dfdc6f01e)] - **src**: mark unused private field as such (Michaël Zasso) [#&#8203;60802](https://github.com/nodejs/node/pull/60802)
- \[[`920f02539e`](https://github.com/nodejs/node/commit/920f02539e)] - **src**: implicitly enable namespace in config (Marco Ippolito) [#&#8203;60798](https://github.com/nodejs/node/pull/60798)
- \[[`47c5bd9b7c`](https://github.com/nodejs/node/commit/47c5bd9b7c)] - **src**: add permission flag to config file (Marco Ippolito) [#&#8203;60798](https://github.com/nodejs/node/pull/60798)
- \[[`d9df3f710d`](https://github.com/nodejs/node/commit/d9df3f710d)] - **src**: add test flag to config file (Marco Ippolito) [#&#8203;60798](https://github.com/nodejs/node/pull/60798)
- \[[`831256cb92`](https://github.com/nodejs/node/commit/831256cb92)] - **src**: rename config file testRunner to test (Marco Ippolito) [#&#8203;60798](https://github.com/nodejs/node/pull/60798)
- \[[`6c2b75ba87`](https://github.com/nodejs/node/commit/6c2b75ba87)] - **src**: split inspector protocol domains files (Chengzhong Wu) [#&#8203;60754](https://github.com/nodejs/node/pull/60754)
- \[[`51cf032a5e`](https://github.com/nodejs/node/commit/51cf032a5e)] - **src**: add permission support to config file (Marco Ippolito) [#&#8203;60746](https://github.com/nodejs/node/pull/60746)
- \[[`413db7c635`](https://github.com/nodejs/node/commit/413db7c635)] - **src**: build v8 tick processor as built-in source text modules (Joyee Cheung) [#&#8203;60518](https://github.com/nodejs/node/pull/60518)
- \[[`428d24acf5`](https://github.com/nodejs/node/commit/428d24acf5)] - **src,permission**: fix permission.has on empty param (Rafael Gonzaga) [#&#8203;60674](https://github.com/nodejs/node/pull/60674)
- \[[`a60aa72a87`](https://github.com/nodejs/node/commit/a60aa72a87)] - **src,permission**: add debug log on is\_tree\_granted (Rafael Gonzaga) [#&#8203;60668](https://github.com/nodejs/node/pull/60668)
- \[[`bd0942f4f5`](https://github.com/nodejs/node/commit/bd0942f4f5)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#&#8203;60907](https://github.com/nodejs/node/pull/60907)
- \[[`90c12a252a`](https://github.com/nodejs/node/commit/90c12a252a)] - **stream**: fix isErrored/isWritable for WritableStreams (René) [#&#8203;60905](https://github.com/nodejs/node/pull/60905)
- \[[`9ac774c15b`](https://github.com/nodejs/node/commit/9ac774c15b)] - **test**: asserts that import.meta.resolve invokes sync loader hooks (Chengzhong Wu) [#&#8203;61158](https://github.com/nodejs/node/pull/61158)
- \[[`c08afc5712`](https://github.com/nodejs/node/commit/c08afc5712)] - **test**: check util.parseArgs argv parsing with actual process execution (René) [#&#8203;61089](https://github.com/nodejs/node/pull/61089)
- \[[`182f2e4b5a`](https://github.com/nodejs/node/commit/182f2e4b5a)] - **test**: update WPT for urlpattern to [`a2e15ad`](https://github.com/nodejs/node/commit/a2e15ad405) (Node.js GitHub Bot) [#&#8203;61134](https://github.com/nodejs/node/pull/61134)
- \[[`9f7cc779f5`](https://github.com/nodejs/node/commit/9f7cc779f5)] - **test**: make buffer sizes 32bit-aware in test-internal-util-construct-sab (René) [#&#8203;61026](https://github.com/nodejs/node/pull/61026)
- \[[`c6a8234963`](https://github.com/nodejs/node/commit/c6a8234963)] - **test**: remove unneccessary repl magic\_mode tests (Dario Piotrowicz) [#&#8203;61053](https://github.com/nodejs/node/pull/61053)
- \[[`fa2fe0930f`](https://github.com/nodejs/node/commit/fa2fe0930f)] - **test**: skip sea tests on riscv64 (Stewart X Addison) [#&#8203;61111](https://github.com/nodejs/node/pull/61111)
- \[[`b209f6ba19`](https://github.com/nodejs/node/commit/b209f6ba19)] - **test**: simplify `test-cli-node-options-docs` (Antoine du Hamel) [#&#8203;61006](https://github.com/nodejs/node/pull/61006)
- \[[`c9153c7d4f`](https://github.com/nodejs/node/commit/c9153c7d4f)] - **test**: mark stringbytes-external-max flaky on AIX (Stewart X Addison) [#&#8203;60995](https://github.com/nodejs/node/pull/60995)
- \[[`2cbddfefb7`](https://github.com/nodejs/node/commit/2cbddfefb7)] - **test**: update test426 fixtures (Rich Trott) [#&#8203;60982](https://github.com/nodejs/node/pull/60982)
- \[[`c7190e6876`](https://github.com/nodejs/node/commit/c7190e6876)] - **test**: update WPT for urlpattern to [`aed1f3d`](https://github.com/nodejs/node/commit/aed1f3d244) (Node.js GitHub Bot) [#&#8203;60642](https://github.com/nodejs/node/pull/60642)
- \[[`92649e2873`](https://github.com/nodejs/node/commit/92649e2873)] - **test**: deflake `test-repl-paste-big-data` (Livia Medeiros) [#&#8203;60975](https://github.com/nodejs/node/pull/60975)
- \[[`e4bc345442`](https://github.com/nodejs/node/commit/e4bc345442)] - **test**: skip tests not passing without `NODE_OPTIONS` support (Antoine du Hamel) [#&#8203;60912](https://github.com/nodejs/node/pull/60912)
- \[[`63299a47ec`](https://github.com/nodejs/node/commit/63299a47ec)] - **test**: improve config-file permission test coverage (Rafael Gonzaga) [#&#8203;60929](https://github.com/nodejs/node/pull/60929)
- \[[`9a0c420a33`](https://github.com/nodejs/node/commit/9a0c420a33)] - **test**: skip SEA inspect test if inspector is not available (Livia Medeiros) [#&#8203;60872](https://github.com/nodejs/node/pull/60872)
- \[[`e97daea17c`](https://github.com/nodejs/node/commit/e97daea17c)] - **test**: update WPT for WebCryptoAPI to [`1e49331`](https://github.com/nodejs/node/commit/1e4933113d) (Node.js GitHub Bot) [#&#8203;60896](https://github.com/nodejs/node/pull/60896)
- \[[`ac367b3550`](https://github.com/nodejs/node/commit/ac367b3550)] - **test**: lint more `assert(regexp.test(...))` cases (René) [#&#8203;60878](https://github.com/nodejs/node/pull/60878)
- \[[`ca5720e7b5`](https://github.com/nodejs/node/commit/ca5720e7b5)] - **test**: use `assert.match` for non-literal regexp tests (René) [#&#8203;60879](https://github.com/nodejs/node/pull/60879)
- \[[`5d30d3fc2d`](https://github.com/nodejs/node/commit/5d30d3fc2d)] - **test**: fix embedtest in debug windows (Vladimir Morozov) [#&#8203;60806](https://github.com/nodejs/node/pull/60806)
- \[[`8caeb03a52`](https://github.com/nodejs/node/commit/8caeb03a52)] - **test**: skip failing tests when compiled without amaro (Yuki Okita) [#&#8203;60815](https://github.com/nodejs/node/pull/60815)
- \[[`242e20bf9a`](https://github.com/nodejs/node/commit/242e20bf9a)] - **test**: fix debug test crashes caused by sea tests (Vladimir Morozov) [#&#8203;60807](https://github.com/nodejs/node/pull/60807)
- \[[`b890362e1a`](https://github.com/nodejs/node/commit/b890362e1a)] - **test**: add lint rule to forbid use of `assert.ok(/regex/.test(…))` (Antoine du Hamel) [#&#8203;60832](https://github.com/nodejs/node/pull/60832)
- \[[`b08cb5657e`](https://github.com/nodejs/node/commit/b08cb5657e)] - **test**: replace deprecated regex test assertions in http trailers test (Aditya Chopra) [#&#8203;60831](https://github.com/nodejs/node/pull/60831)
- \[[`47ed95965e`](https://github.com/nodejs/node/commit/47ed95965e)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60761](https://github.com/nodejs/node/pull/60761)
- \[[`79d48f9441`](https://github.com/nodejs/node/commit/79d48f9441)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60759](https://github.com/nodejs/node/pull/60759)
- \[[`585e200b40`](https://github.com/nodejs/node/commit/585e200b40)] - **test**: prefer major GC in cppgc-object teardown (sangwook) [#&#8203;60672](https://github.com/nodejs/node/pull/60672)
- \[[`9426ff6b08`](https://github.com/nodejs/node/commit/9426ff6b08)] - **test**: add basic temporal presence check (Chengzhong Wu) [#&#8203;60703](https://github.com/nodejs/node/pull/60703)
- \[[`ffebf8e55c`](https://github.com/nodejs/node/commit/ffebf8e55c)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60726](https://github.com/nodejs/node/pull/60726)
- \[[`adc6776c6a`](https://github.com/nodejs/node/commit/adc6776c6a)] - **test**: ensure assertions are reached on HTTP2 tests (Antoine du Hamel) [#&#8203;60730](https://github.com/nodejs/node/pull/60730)
- \[[`3dae49c6ce`](https://github.com/nodejs/node/commit/3dae49c6ce)] - **test**: ensure assertions are reached on HTTP tests (Antoine du Hamel) [#&#8203;60729](https://github.com/nodejs/node/pull/60729)
- \[[`5203b09fea`](https://github.com/nodejs/node/commit/5203b09fea)] - **test**: skip test that cause timeout on IBM i (SRAVANI GUNDEPALLI) [#&#8203;60700](https://github.com/nodejs/node/pull/60700)
- \[[`6d2fe36747`](https://github.com/nodejs/node/commit/6d2fe36747)] - **test**: add missing r.close() calls in REPL multiline tests (sangwook) [#&#8203;60226](https://github.com/nodejs/node/pull/60226)
- \[[`bbee2ef5e0`](https://github.com/nodejs/node/commit/bbee2ef5e0)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60634](https://github.com/nodejs/node/pull/60634)
- \[[`a2764d450d`](https://github.com/nodejs/node/commit/a2764d450d)] - **test**: update WPT for WebCryptoAPI to [`c58b6f4`](https://github.com/nodejs/node/commit/c58b6f4e0e) (Node.js GitHub Bot) [#&#8203;60702](https://github.com/nodejs/node/pull/60702)
- \[[`1176fe43a7`](https://github.com/nodejs/node/commit/1176fe43a7)] - **test**: fix test-buffer-zero-fill-cli to be effective (Сковорода Никита Андреевич) [#&#8203;60623](https://github.com/nodejs/node/pull/60623)
- \[[`1a66dc1292`](https://github.com/nodejs/node/commit/1a66dc1292)] - **test**: limit the concurrency of WPTRunner for RISC-V (Levi Zim) [#&#8203;60591](https://github.com/nodejs/node/pull/60591)
- \[[`36076846d4`](https://github.com/nodejs/node/commit/36076846d4)] - **test**: fix test-strace-openat-openssl for RISC-V (Levi Zim) [#&#8203;60588](https://github.com/nodejs/node/pull/60588)
- \[[`5a976cb507`](https://github.com/nodejs/node/commit/5a976cb507)] - **test**: split test-runner-run-watch.mjs (Joyee Cheung) [#&#8203;60653](https://github.com/nodejs/node/pull/60653)
- \[[`8f611b9bce`](https://github.com/nodejs/node/commit/8f611b9bce)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#&#8203;60641](https://github.com/nodejs/node/pull/60641)
- \[[`3e550d30d6`](https://github.com/nodejs/node/commit/3e550d30d6)] - **test\_runner**: fix lazy `test.assert` accessor (René) [#&#8203;61097](https://github.com/nodejs/node/pull/61097)
- \[[`ec142be1ed`](https://github.com/nodejs/node/commit/ec142be1ed)] - **test\_runner**: propagate V8 options to child process (Pietro Marchini) [#&#8203;60999](https://github.com/nodejs/node/pull/60999)
- \[[`3127a2b1e7`](https://github.com/nodejs/node/commit/3127a2b1e7)] - **test\_runner**: fix line feed escaping in JUnit (Aliaksandr) [#&#8203;60274](https://github.com/nodejs/node/pull/60274)
- \[[`08fb6c9ba4`](https://github.com/nodejs/node/commit/08fb6c9ba4)] - **test\_runner**: simplify code and make it more consistent (Antoine du Hamel) [#&#8203;60777](https://github.com/nodejs/node/pull/60777)
- \[[`102b217cf3`](https://github.com/nodejs/node/commit/102b217cf3)] - **tools**: bump the eslint group in /tools/eslint with 2 updates (dependabot\[bot]) [#&#8203;61246](https://github.com/nodejs/node/pull/61246)
- \[[`97b6b61165`](https://github.com/nodejs/node/commit/97b6b61165)] - **tools**: unpin ngtcp2 version updates (Michaël Zasso) [#&#8203;61155](https://github.com/nodejs/node/pull/61155)
- \[[`7e95edc3de`](https://github.com/nodejs/node/commit/7e95edc3de)] - **tools**: only report commit validation failure on Slack (Antoine du Hamel) [#&#8203;61124](https://github.com/nodejs/node/pull/61124)
- \[[`3a7ed257a3`](https://github.com/nodejs/node/commit/3a7ed257a3)] - **tools**: use sparse-checkout in linter jobs (Antoine du Hamel) [#&#8203;61123](https://github.com/nodejs/node/pull/61123)
- \[[`b655edf1bf`](https://github.com/nodejs/node/commit/b655edf1bf)] - **tools**: simplify `notify-on-push` (Antoine du Hamel) [#&#8203;61050](https://github.com/nodejs/node/pull/61050)
- \[[`230155749d`](https://github.com/nodejs/node/commit/230155749d)] - **tools**: fix update-nghttp2 signature verification (Richard Lau) [#&#8203;61035](https://github.com/nodejs/node/pull/61035)
- \[[`e8646a7d10`](https://github.com/nodejs/node/commit/e8646a7d10)] - **tools**: improve log output of `create-release-proposal` (Antoine du Hamel) [#&#8203;61028](https://github.com/nodejs/node/pull/61028)
- \[[`a4b2614912`](https://github.com/nodejs/node/commit/a4b2614912)] - **tools**: fix `vcbuild test` when path contain spaces (stduhpf) [#&#8203;56481](https://github.com/nodejs/node/pull/56481)
- \[[`9769c359f8`](https://github.com/nodejs/node/commit/9769c359f8)] - **tools**: do not run `test-linux` workflow for changes on `vcbuild.bat` (Antoine du Hamel) [#&#8203;60979](https://github.com/nodejs/node/pull/60979)
- \[[`2ceaf6eb3c`](https://github.com/nodejs/node/commit/2ceaf6eb3c)] - **tools**: add some options and comments to `shell.nix` (Antoine du Hamel) [#&#8203;60911](https://github.com/nodejs/node/pull/60911)
- \[[`611135abdc`](https://github.com/nodejs/node/commit/611135abdc)] - **tools**: bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /tools/doc (dependabot\[bot]) [#&#8203;60930](https://github.com/nodejs/node/pull/60930)
- \[[`b4bad20a6c`](https://github.com/nodejs/node/commit/b4bad20a6c)] - **tools**: ignore more paths in GHA CI (Antoine du Hamel) [#&#8203;60920](https://github.com/nodejs/node/pull/60920)
- \[[`47b7cb4e9e`](https://github.com/nodejs/node/commit/47b7cb4e9e)] - **tools**: run tests `--without-amaro` on test-shared macOS (Antoine du Hamel) [#&#8203;60902](https://github.com/nodejs/node/pull/60902)
- \[[`b0ec8c9c2a`](https://github.com/nodejs/node/commit/b0ec8c9c2a)] - **tools**: replace deprecated eslint-plugin-markdown (Michaël Zasso) [#&#8203;60908](https://github.com/nodejs/node/pull/60908)
- \[[`46dacf686e`](https://github.com/nodejs/node/commit/46dacf686e)] - **tools**: remove deprecated ESLint plugins (Michaël Zasso) [#&#8203;60908](https://github.com/nodejs/node/pull/60908)
- \[[`1a4ec6e830`](https://github.com/nodejs/node/commit/1a4ec6e830)] - **tools**: update ESLint dependencies (Michaël Zasso) [#&#8203;60908](https://github.com/nodejs/node/pull/60908)
- \[[`4e442b286d`](https://github.com/nodejs/node/commit/4e442b286d)] - **tools**: refloat 10 Node.js patches to cpplint.py (Michaël Zasso) [#&#8203;60901](https://github.com/nodejs/node/pull/60901)
- \[[`fa90d09de6`](https://github.com/nodejs/node/commit/fa90d09de6)] - **tools**: update cpplint to 2.0.2 (Michaël Zasso) [#&#8203;60901](https://github.com/nodejs/node/pull/60901)
- \[[`4d944c5198`](https://github.com/nodejs/node/commit/4d944c5198)] - **tools**: disable some new cpplint rules before update (Michaël Zasso) [#&#8203;60901](https://github.com/nodejs/node/pull/60901)
- \[[`eaebae1eed`](https://github.com/nodejs/node/commit/eaebae1eed)] - **tools**: don't fetch V8 deps in the source tree (Richard Lau) [#&#8203;60883](https://github.com/nodejs/node/pull/60883)
- \[[`256770944a`](https://github.com/nodejs/node/commit/256770944a)] - **tools**: add temporal updater (Chengzhong Wu) [#&#8203;60828](https://github.com/nodejs/node/pull/60828)
- \[[`1c38f808bd`](https://github.com/nodejs/node/commit/1c38f808bd)] - **tools**: dump config.gypi as json (Chengzhong Wu) [#&#8203;60794](https://github.com/nodejs/node/pull/60794)
- \[[`ed89b35291`](https://github.com/nodejs/node/commit/ed89b35291)] - **tools**: bump js-yaml from 4.1.0 to 4.1.1 in /tools/lint-md (dependabot\[bot]) [#&#8203;60781](https://github.com/nodejs/node/pull/60781)
- \[[`c98c0881c5`](https://github.com/nodejs/node/commit/c98c0881c5)] - **tools**: fix linter warning in `test-shared.yml` (Antoine du Hamel) [#&#8203;60772](https://github.com/nodejs/node/pull/60772)
- \[[`aa44406ed7`](https://github.com/nodejs/node/commit/aa44406ed7)] - **tools**: bump js-yaml from 4.1.0 to 4.1.1 in /tools/doc in the doc group (dependabot\[bot]) [#&#8203;60766](https://github.com/nodejs/node/pull/60766)
- \[[`b756154ed9`](https://github.com/nodejs/node/commit/b756154ed9)] - **tools**: fix `paths-ignore` in gha files (Antoine du Hamel) [#&#8203;60753](https://github.com/nodejs/node/pull/60753)
- \[[`18ed53fb7a`](https://github.com/nodejs/node/commit/18ed53fb7a)] - **tools**: update install\_tools.bat old echo from 2019 to 2022 (David Hidalgo) [#&#8203;60736](https://github.com/nodejs/node/pull/60736)
- \[[`cf79940d5c`](https://github.com/nodejs/node/commit/cf79940d5c)] - **tools**: remove unsupported `cooldown` from Dependabot config (Antoine du Hamel) [#&#8203;60747](https://github.com/nodejs/node/pull/60747)
- \[[`8ea73ffd64`](https://github.com/nodejs/node/commit/8ea73ffd64)] - **tools**: update sccache to v0.12.0 (Michaël Zasso) [#&#8203;60723](https://github.com/nodejs/node/pull/60723)
- \[[`578f8bdfa0`](https://github.com/nodejs/node/commit/578f8bdfa0)] - **tools**: update x64 macOS runner (Antoine du Hamel) [#&#8203;60676](https://github.com/nodejs/node/pull/60676)
- \[[`3b6cf316c0`](https://github.com/nodejs/node/commit/3b6cf316c0)] - **tools**: update gyp-next to 0.21.0 (Node.js GitHub Bot) [#&#8203;60645](https://github.com/nodejs/node/pull/60645)
- \[[`7d55b8c00f`](https://github.com/nodejs/node/commit/7d55b8c00f)] - **tools,doc**: fix format-md files list (Stefan Stojanovic) [#&#8203;61147](https://github.com/nodejs/node/pull/61147)
- \[[`a617942a4a`](https://github.com/nodejs/node/commit/a617942a4a)] - **url**: add fast path to getPathFromURL decoder (Gürgün Dayıoğlu) [#&#8203;60749](https://github.com/nodejs/node/pull/60749)
- \[[`a6ac8bd2a5`](https://github.com/nodejs/node/commit/a6ac8bd2a5)] - **url**: remove array.reduce usage (Gürgün Dayıoğlu) [#&#8203;60748](https://github.com/nodejs/node/pull/60748)
- \[[`09b5396523`](https://github.com/nodejs/node/commit/09b5396523)] - **util**: optimize toASCIILower function using V8s native toLowerCase (Mert Can Altin) [#&#8203;61107](https://github.com/nodejs/node/pull/61107)
- \[[`1dd15c9502`](https://github.com/nodejs/node/commit/1dd15c9502)] - **util**: limit `inspect` to only show own properties (Ruben Bridgewater) [#&#8203;61032](https://github.com/nodejs/node/pull/61032)
- \[[`5051d90100`](https://github.com/nodejs/node/commit/5051d90100)] - **(SEMVER-MINOR)** **util**: add convertProcessSignalToExitCode utility (Erick Wendel) [#&#8203;60963](https://github.com/nodejs/node/pull/60963)
- \[[`98b6dc1181`](https://github.com/nodejs/node/commit/98b6dc1181)] - **util**: fix parseArgs skipping positional arg with --eval and --print (azadgupta1) [#&#8203;60814](https://github.com/nodejs/node/pull/60814)
- \[[`862eaf8a09`](https://github.com/nodejs/node/commit/862eaf8a09)] - **util**: assert getCallSites does not invoke Error.prepareStackTrace (Chengzhong Wu) [#&#8203;60922](https://github.com/nodejs/node/pull/60922)
- \[[`c2e79aa5fb`](https://github.com/nodejs/node/commit/c2e79aa5fb)] - **util**: improve textencoder encodeInto performance (Yagiz Nizipli) [#&#8203;60843](https://github.com/nodejs/node/pull/60843)
- \[[`b6903aaf8d`](https://github.com/nodejs/node/commit/b6903aaf8d)] - **util**: safely inspect getter errors whose message throws (Yves M.) [#&#8203;60684](https://github.com/nodejs/node/pull/60684)
- \[[`408f024906`](https://github.com/nodejs/node/commit/408f024906)] - **v8**: mark v8.queryObjects() as stable (Joyee Cheung) [#&#8203;60957](https://github.com/nodejs/node/pull/60957)
- \[[`b00ee5222c`](https://github.com/nodejs/node/commit/b00ee5222c)] - **worker**: update code examples for `node:worker_threads` module (fisker Cheung) [#&#8203;58264](https://github.com/nodejs/node/pull/58264)
- \[[`2409839f19`](https://github.com/nodejs/node/commit/2409839f19)] - **worker**: remove not implemented declarations (Artur Gawlik) [#&#8203;60655](https://github.com/nodejs/node/pull/60655)
- \[[`c09417a2b1`](https://github.com/nodejs/node/commit/c09417a2b1)] - **zlib**: add CHECK to validate fast path input (Matteo Collina) [#&#8203;61175](https://github.com/nodejs/node/pull/61175)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no pending requests for changes, and a CI started. http2 Issues or PRs related to the http2 subsystem. needs-benchmark-ci PR that need a benchmark CI run. needs-ci PRs that need a full CI run. zlib Issues and PRs related to the zlib subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants