Skip to content

src,lib,test: unflag --experimental-webstorage by default - #57666

Merged
nodejs-github-bot merged 33 commits into
nodejs:mainfrom
danielmbrasil:src/unflag-experimental-webstorage
Sep 25, 2025
Merged

src,lib,test: unflag --experimental-webstorage by default#57666
nodejs-github-bot merged 33 commits into
nodejs:mainfrom
danielmbrasil:src/unflag-experimental-webstorage

Conversation

@danielmbrasil

@danielmbrasildanielmbrasil commented Mar 28, 2025

Copy link
Copy Markdown
Contributor

Added Web Storage support enabled by default, with the option to disable via --no-webstorage.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/config

@nodejs-github-botnodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. config Issues or PRs related to the config subsystem needs-ci PRs that need a full CI run. labels Mar 28, 2025
@mcollina

Copy link
Copy Markdown
Member

To fix the failing test, I would change the error being throw in lib/internal/webstorage.js in a warning, and have localStorage be undefined in that case.

@cjihrig wdyt?

@cjihrig

Copy link
Copy Markdown
Contributor

I would be OK with that behavior. However, the global checking logic in test/common/index.js would probably need to be updated. Otherwise, the new warning will probably be printed for every test that doesn't use localStorage.

@danielmbrasil

Copy link
Copy Markdown
ContributorAuthor

I just pushed the suggested changes, and the tests are now passing. @cjihrig, could you please review whether the changes in test/common/index.js make sense?

@cjihrig

Copy link
Copy Markdown
Contributor

Without running the code, it doesn't look correct to me:

globalThis[val] === undefined

By the time we find out that the value is undefined, the warning will have already been emitted, right?

@danielmbrasil

Copy link
Copy Markdown
ContributorAuthor

By the time we find out that the value is undefined, the warning will have already been emitted, right?

Yeah, that's right. I'll take a look on how to avoid the warning to be emitted in those cases.

@danielmbrasil
danielmbrasilforce-pushed the src/unflag-experimental-webstorage branch from b925ca4 to db0cda3CompareApril 2, 2025 17:11
@danielmbrasil

Copy link
Copy Markdown
ContributorAuthor

@cjihrig Could you take a look now and see if this is closer to what you were expecting? I added a new check to test/common/index.js that overrides the localStorage getter with an empty object. This prevents the warning from being emitted, and the tests are passing locally.

@danielmbrasildanielmbrasil changed the title src: unflag --experimental-webstorage by defaultsrc,lib,test: unflag --experimental-webstorage by defaultApr 4, 2025
@danielmbrasil

Copy link
Copy Markdown
ContributorAuthor

Moving this as ready for review. I think we should possibly also update doc/api/cli.md and doc/api/globals.md, but I'm not sure how to update those docs for now.

@danielmbrasil
danielmbrasil marked this pull request as ready for review April 4, 2025 18:12
@codecov

codecovBot commented Apr 4, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.75862% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.28%. Comparing base (73b5022) to head (890a794).
⚠️ Report is 116 commits behind head on main.

Files with missing linesPatch %Lines
lib/internal/webstorage.js80.00%5 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #57666 +/- ##
==========================================
+ Coverage 88.26% 88.28% +0.02% 
==========================================
Files 701 701 Lines 206644 206676 +32 Branches 39737 39738 +1 ==========================================
+ Hits 182386 182472 +86 + Misses 16279 16237 -42 + Partials 7979 7967 -12 
Files with missing linesCoverage Δ
lib/internal/process/pre_execution.js97.15% <100.00%> (-0.28%)⬇️
src/node_options.cc77.89% <100.00%> (+0.02%)⬆️
src/node_options.h97.89% <100.00%> (ø)
lib/internal/webstorage.js91.30% <80.00%> (-8.70%)⬇️

... and 41 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.

@mcollina

Copy link
Copy Markdown
Member

A few tests needs fixing but this is good progress!

@danielmbrasil
danielmbrasilforce-pushed the src/unflag-experimental-webstorage branch 2 times, most recently from 67c3460 to 1857c7fCompareApril 7, 2025 16:51
Comment threadtest/common/index.js Outdated
@geeksilva97

Copy link
Copy Markdown
Contributor

This PR has some conflicts

@danielmbrasil
danielmbrasilforce-pushed the src/unflag-experimental-webstorage branch 2 times, most recently from 3cda35a to f075423CompareMay 26, 2025 18:50
Comment threaddoc/api/globals.md Outdated
Comment threadtest/parallel/test-webstorage.js Outdated

@mcollinamcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm

@danielmbrasil
danielmbrasilforce-pushed the src/unflag-experimental-webstorage branch from 6a4ce9f to 6f567abCompareMay 27, 2025 12:37

@geeksilva97geeksilva97 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Appreciate your effort here, Daniel

Comment threadlib/internal/webstorage.js Outdated
@geeksilva97geeksilva97 added the request-ci Add this label to start a Jenkins CI on a PR. label May 29, 2025
RafaelGSS added a commit that referenced this pull request Oct 13, 2025
assert:
* (SEMVER-MAJOR) move assert.fail with multiple arguments to eol (James M Snell) #58532
* (SEMVER-MAJOR) move CallTracker to EOL (James M Snell) #58006
assert,util:
* (SEMVER-MAJOR) fail promise comparison in deep equal checks (Ruben Bridgewater) #59448
* (SEMVER-MAJOR) handle invalid dates as equal in deep comparison (Ruben Bridgewater) #57627
async_hooks:
* (SEMVER-MAJOR) move `asyncResource` property on bound function to EOL (James M Snell) #58618
buffer:
* (SEMVER-MAJOR) move SlowBuffer to EOL (Filip Skokan) #58220
build:
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #59805
* (SEMVER-MAJOR) bump minimum Clang version to 19 (Michaël Zasso) #59048
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #58064
* (SEMVER-MAJOR) stop distributing Corepack (Antoine du Hamel) #57617
child_process:
* (SEMVER-MAJOR) move _channel to end-of-life (James M Snell) #58527
crypto:
* (SEMVER-MAJOR) runtime-deprecate default shake128/256 output lengths (Filip Skokan) #59008
* (SEMVER-MAJOR) move deprecated hash and mgf1Hash options to EOL (James M Snell) #58706
* (SEMVER-MAJOR) runtime deprecate ECDH.setPublicKey() (James M Snell) #58620
deps:
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077
* (SEMVER-MAJOR) update V8 to 14.1.146.11 (Michaël Zasso) #59805
* (SEMVER-MAJOR) V8: backport 1d3362c55396 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 4f38995c8295 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 044b9b6f589d (Rezvan Mahdavi Hezaveh) #58064
* (SEMVER-MAJOR) V8: cherry-pick d2ad518a0b57 (Joyee Cheung) #58064
* (SEMVER-MAJOR) V8: revert 6d6c1e680c7b (Michaël Zasso) #58064
* (SEMVER-MAJOR) V8: revert e3cddbedb205 (Michaël Zasso) #58064
* (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58064
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #58064
* (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58064
* (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) fix FP16 bitcasts.h (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #58064
* (SEMVER-MAJOR) update V8 to 13.7.152.9 (Michaël Zasso) #58064
dgram:
* (SEMVER-MAJOR) move deprecated APIs to EOL (James M Snell) #58474
dns:
* (SEMVER-MAJOR) move falsy hostname in lookup to end-of-life (James M Snell) #58619
doc,src,test:
* (SEMVER-MAJOR) replace use of deprecated `GetIsolate` (Michaël Zasso) #59805
fs:
* (SEMVER-MAJOR) move FileHandle close on GC to EOL (James M Snell) #58536
* (SEMVER-MAJOR) move rmdir recursive option to end-of-life (James M Snell) #58616
* (SEMVER-MAJOR) make `processReadResult()` and `readSyncRecursive()` private (Livia Medeiros) #58672
* (SEMVER-MAJOR) move fs stream open method to eol (James M Snell) #58529
* (SEMVER-MAJOR) remove `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #55862
http:
* (SEMVER-MAJOR) deprecate writeHeader (Sebastian Beltran) #59060
lib:
* (SEMVER-MAJOR) use validators for argument validation (Nam Yooseong) #59416
* (SEMVER-MAJOR) expose global ErrorEvent (Richie Bendall) #58920
* (SEMVER-MAJOR) deprecate `_stream_*` modules (Dario Piotrowicz) #58337
* (SEMVER-MAJOR) deprecate _tls_common and _tls_wrap (Dario Piotrowicz) #57643
module:
* (SEMVER-MAJOR) move Module._debug to end-of-life (James M Snell) #58473
node-api:
* (SEMVER-MAJOR) add warning for NAPI_EXPERIMENTAL (Miguel Marcondes Filho) #58280
perf_hooks:
* (SEMVER-MAJOR) move deprecated accessors to EOF (James M Snell) #58531
process:
* (SEMVER-MAJOR) move multipleResolves event to EOL (James M Snell) #58707
repl:
* (SEMVER-MAJOR) eol deprecate instantiating without new (Aviv Keller) #59495
src:
* (SEMVER-MAJOR) update crypto.getCipherInfo() to use DictionaryTemplate (James M Snell) #60036
* (SEMVER-MAJOR) fix calls to v8::Object::wrap (Andreas Haas) #59805
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 141 (Michaël Zasso) #59805
* (SEMVER-MAJOR) improve performance of dotenv ToObject (James M Snell) #60038
* (SEMVER-MAJOR) use std::string_view from node_report (iknoom) #60006
* (SEMVER-MAJOR) unflag --experimental-webstorage by default (Daniel M Brasil) #57666
* (SEMVER-MAJOR) store `Local` for `CallbackScope` on stack (Anna Henningsen) #59705
* (SEMVER-MAJOR) remove node.h APIs to make callback without an async context (Chengzhong Wu) #58471
* (SEMVER-MAJOR) remove deprecated node::EmitBeforeExit and node::EmitExit (Chengzhong Wu) #58469
* (SEMVER-MAJOR) remove deprecated node::CreatePlatform and node::FreePlatform (Chengzhong Wu) #58470
* (SEMVER-MAJOR) remove deprecated node::InitializeNodeWithArgs (Chengzhong Wu) #58470
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 138 (Michaël Zasso) #58064
src,permission:
* (SEMVER-MAJOR) add --allow-net permission (Rafael Gonzaga) #58517
test:
* (SEMVER-MAJOR) update cppgc-object addon config (StefanStojanovic) #59805
* (SEMVER-MAJOR) spin longer for sequential/test-worker-prof (Michaël Zasso) #59805
* (SEMVER-MAJOR) remove `--always-turbofan` flag (Michaël Zasso) #59805
* (SEMVER-MAJOR) update snapshot for V8 14.1 (Michaël Zasso) #59805
test,win:
* (SEMVER-MAJOR) split addon tests (StefanStojanovic) #59805
tls:
* (SEMVER-MAJOR) move IP-address servername deprecation to eol (James M Snell) #58533
tools:
* (SEMVER-MAJOR) update V8 gypfiles for 14.0 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.9 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.8 (Michaël Zasso) #59805
* (SEMVER-MAJOR) enable leaptiering for aix/ibmi (Abdirahim Musse) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.7 (Michaël Zasso) #58064
url:
* (SEMVER-MAJOR) move bad port deprecation in legacy url to end-of-life (James M Snell) #58617
util,console:
* (SEMVER-MAJOR) colorize regexp groups, character classes, etc (Ruben Bridgewater) #59710
worker:
* (SEMVER-MAJOR) move terminate callback to end-of-life (James M Snell) #58528
PR-URL: #59896
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
RafaelGSS added a commit that referenced this pull request Oct 15, 2025
assert:
* (SEMVER-MAJOR) move assert.fail with multiple arguments to eol (James M Snell) #58532
* (SEMVER-MAJOR) move CallTracker to EOL (James M Snell) #58006
assert,util:
* (SEMVER-MAJOR) fail promise comparison in deep equal checks (Ruben Bridgewater) #59448
* (SEMVER-MAJOR) handle invalid dates as equal in deep comparison (Ruben Bridgewater) #57627
async_hooks:
* (SEMVER-MAJOR) move `asyncResource` property on bound function to EOL (James M Snell) #58618
buffer:
* (SEMVER-MAJOR) move SlowBuffer to EOL (Filip Skokan) #58220
build:
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #59805
* (SEMVER-MAJOR) bump minimum Clang version to 19 (Michaël Zasso) #59048
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #58064
* (SEMVER-MAJOR) stop distributing Corepack (Antoine du Hamel) #57617
child_process:
* (SEMVER-MAJOR) move _channel to end-of-life (James M Snell) #58527
crypto:
* (SEMVER-MAJOR) runtime-deprecate default shake128/256 output lengths (Filip Skokan) #59008
* (SEMVER-MAJOR) move deprecated hash and mgf1Hash options to EOL (James M Snell) #58706
* (SEMVER-MAJOR) runtime deprecate ECDH.setPublicKey() (James M Snell) #58620
deps:
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077
* (SEMVER-MAJOR) update V8 to 14.1.146.11 (Michaël Zasso) #59805
* (SEMVER-MAJOR) V8: backport 1d3362c55396 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 4f38995c8295 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 044b9b6f589d (Rezvan Mahdavi Hezaveh) #58064
* (SEMVER-MAJOR) V8: cherry-pick d2ad518a0b57 (Joyee Cheung) #58064
* (SEMVER-MAJOR) V8: revert 6d6c1e680c7b (Michaël Zasso) #58064
* (SEMVER-MAJOR) V8: revert e3cddbedb205 (Michaël Zasso) #58064
* (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58064
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #58064
* (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58064
* (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) fix FP16 bitcasts.h (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #58064
* (SEMVER-MAJOR) update V8 to 13.7.152.9 (Michaël Zasso) #58064
dgram:
* (SEMVER-MAJOR) move deprecated APIs to EOL (James M Snell) #58474
dns:
* (SEMVER-MAJOR) move falsy hostname in lookup to end-of-life (James M Snell) #58619
doc,src,test:
* (SEMVER-MAJOR) replace use of deprecated `GetIsolate` (Michaël Zasso) #59805
fs:
* (SEMVER-MAJOR) move FileHandle close on GC to EOL (James M Snell) #58536
* (SEMVER-MAJOR) move rmdir recursive option to end-of-life (James M Snell) #58616
* (SEMVER-MAJOR) make `processReadResult()` and `readSyncRecursive()` private (Livia Medeiros) #58672
* (SEMVER-MAJOR) move fs stream open method to eol (James M Snell) #58529
* (SEMVER-MAJOR) remove `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #55862
http:
* (SEMVER-MAJOR) deprecate writeHeader (Sebastian Beltran) #59060
lib:
* (SEMVER-MAJOR) use validators for argument validation (Nam Yooseong) #59416
* (SEMVER-MAJOR) expose global ErrorEvent (Richie Bendall) #58920
* (SEMVER-MAJOR) deprecate `_stream_*` modules (Dario Piotrowicz) #58337
* (SEMVER-MAJOR) deprecate _tls_common and _tls_wrap (Dario Piotrowicz) #57643
module:
* (SEMVER-MAJOR) move Module._debug to end-of-life (James M Snell) #58473
node-api:
* (SEMVER-MAJOR) add warning for NAPI_EXPERIMENTAL (Miguel Marcondes Filho) #58280
perf_hooks:
* (SEMVER-MAJOR) move deprecated accessors to EOF (James M Snell) #58531
process:
* (SEMVER-MAJOR) move multipleResolves event to EOL (James M Snell) #58707
repl:
* (SEMVER-MAJOR) eol deprecate instantiating without new (Aviv Keller) #59495
src:
* (SEMVER-MAJOR) update crypto.getCipherInfo() to use DictionaryTemplate (James M Snell) #60036
* (SEMVER-MAJOR) fix calls to v8::Object::wrap (Andreas Haas) #59805
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 141 (Michaël Zasso) #59805
* (SEMVER-MAJOR) improve performance of dotenv ToObject (James M Snell) #60038
* (SEMVER-MAJOR) use std::string_view from node_report (iknoom) #60006
* (SEMVER-MAJOR) unflag --experimental-webstorage by default (Daniel M Brasil) #57666
* (SEMVER-MAJOR) store `Local` for `CallbackScope` on stack (Anna Henningsen) #59705
* (SEMVER-MAJOR) remove node.h APIs to make callback without an async context (Chengzhong Wu) #58471
* (SEMVER-MAJOR) remove deprecated node::EmitBeforeExit and node::EmitExit (Chengzhong Wu) #58469
* (SEMVER-MAJOR) remove deprecated node::CreatePlatform and node::FreePlatform (Chengzhong Wu) #58470
* (SEMVER-MAJOR) remove deprecated node::InitializeNodeWithArgs (Chengzhong Wu) #58470
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 138 (Michaël Zasso) #58064
src,permission:
* (SEMVER-MAJOR) add --allow-net permission (Rafael Gonzaga) #58517
test:
* (SEMVER-MAJOR) update cppgc-object addon config (StefanStojanovic) #59805
* (SEMVER-MAJOR) spin longer for sequential/test-worker-prof (Michaël Zasso) #59805
* (SEMVER-MAJOR) remove `--always-turbofan` flag (Michaël Zasso) #59805
* (SEMVER-MAJOR) update snapshot for V8 14.1 (Michaël Zasso) #59805
test,win:
* (SEMVER-MAJOR) split addon tests (StefanStojanovic) #59805
tls:
* (SEMVER-MAJOR) move IP-address servername deprecation to eol (James M Snell) #58533
tools:
* (SEMVER-MAJOR) update V8 gypfiles for 14.0 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.9 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.8 (Michaël Zasso) #59805
* (SEMVER-MAJOR) enable leaptiering for aix/ibmi (Abdirahim Musse) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.7 (Michaël Zasso) #58064
url:
* (SEMVER-MAJOR) move bad port deprecation in legacy url to end-of-life (James M Snell) #58617
util,console:
* (SEMVER-MAJOR) colorize regexp groups, character classes, etc (Ruben Bridgewater) #59710
worker:
* (SEMVER-MAJOR) move terminate callback to end-of-life (James M Snell) #58528
PR-URL: #59896
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
RafaelGSS added a commit that referenced this pull request Oct 15, 2025
assert:
* (SEMVER-MAJOR) move assert.fail with multiple arguments to eol (James M Snell) #58532
* (SEMVER-MAJOR) move CallTracker to EOL (James M Snell) #58006
assert,util:
* (SEMVER-MAJOR) fail promise comparison in deep equal checks (Ruben Bridgewater) #59448
* (SEMVER-MAJOR) handle invalid dates as equal in deep comparison (Ruben Bridgewater) #57627
async_hooks:
* (SEMVER-MAJOR) move `asyncResource` property on bound function to EOL (James M Snell) #58618
buffer:
* (SEMVER-MAJOR) move SlowBuffer to EOL (Filip Skokan) #58220
build:
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #59805
* (SEMVER-MAJOR) bump minimum Clang version to 19 (Michaël Zasso) #59048
* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #58064
* (SEMVER-MAJOR) stop distributing Corepack (Antoine du Hamel) #57617
child_process:
* (SEMVER-MAJOR) move _channel to end-of-life (James M Snell) #58527
crypto:
* (SEMVER-MAJOR) runtime-deprecate default shake128/256 output lengths (Filip Skokan) #59008
* (SEMVER-MAJOR) move deprecated hash and mgf1Hash options to EOL (James M Snell) #58706
* (SEMVER-MAJOR) runtime deprecate ECDH.setPublicKey() (James M Snell) #58620
deps:
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #59805
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54077
* (SEMVER-MAJOR) update V8 to 14.1.146.11 (Michaël Zasso) #59805
* (SEMVER-MAJOR) V8: backport 1d3362c55396 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 4f38995c8295 (Shu-yu Guo) #58064
* (SEMVER-MAJOR) V8: cherry-pick 044b9b6f589d (Rezvan Mahdavi Hezaveh) #58064
* (SEMVER-MAJOR) V8: cherry-pick d2ad518a0b57 (Joyee Cheung) #58064
* (SEMVER-MAJOR) V8: revert 6d6c1e680c7b (Michaël Zasso) #58064
* (SEMVER-MAJOR) V8: revert e3cddbedb205 (Michaël Zasso) #58064
* (SEMVER-MAJOR) use std::map in MSVC STL for EphemeronRememberedSet (Joyee Cheung) #58064
* (SEMVER-MAJOR) patch V8 for illumos (Dan McDonald) #58064
* (SEMVER-MAJOR) remove problematic comment from v8-internal (Michaël Zasso) #58064
* (SEMVER-MAJOR) define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) fix FP16 bitcasts.h (Stefan Stojanovic) #58064
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #58064
* (SEMVER-MAJOR) update V8 to 13.7.152.9 (Michaël Zasso) #58064
dgram:
* (SEMVER-MAJOR) move deprecated APIs to EOL (James M Snell) #58474
dns:
* (SEMVER-MAJOR) move falsy hostname in lookup to end-of-life (James M Snell) #58619
doc,src,test:
* (SEMVER-MAJOR) replace use of deprecated `GetIsolate` (Michaël Zasso) #59805
fs:
* (SEMVER-MAJOR) move FileHandle close on GC to EOL (James M Snell) #58536
* (SEMVER-MAJOR) move rmdir recursive option to end-of-life (James M Snell) #58616
* (SEMVER-MAJOR) make `processReadResult()` and `readSyncRecursive()` private (Livia Medeiros) #58672
* (SEMVER-MAJOR) move fs stream open method to eol (James M Snell) #58529
* (SEMVER-MAJOR) remove `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #55862
http:
* (SEMVER-MAJOR) deprecate writeHeader (Sebastian Beltran) #59060
lib:
* (SEMVER-MAJOR) use validators for argument validation (Nam Yooseong) #59416
* (SEMVER-MAJOR) expose global ErrorEvent (Richie Bendall) #58920
* (SEMVER-MAJOR) deprecate `_stream_*` modules (Dario Piotrowicz) #58337
* (SEMVER-MAJOR) deprecate _tls_common and _tls_wrap (Dario Piotrowicz) #57643
module:
* (SEMVER-MAJOR) move Module._debug to end-of-life (James M Snell) #58473
node-api:
* (SEMVER-MAJOR) add warning for NAPI_EXPERIMENTAL (Miguel Marcondes Filho) #58280
perf_hooks:
* (SEMVER-MAJOR) move deprecated accessors to EOF (James M Snell) #58531
process:
* (SEMVER-MAJOR) move multipleResolves event to EOL (James M Snell) #58707
repl:
* (SEMVER-MAJOR) eol deprecate instantiating without new (Aviv Keller) #59495
src:
* (SEMVER-MAJOR) update crypto.getCipherInfo() to use DictionaryTemplate (James M Snell) #60036
* (SEMVER-MAJOR) fix calls to v8::Object::wrap (Andreas Haas) #59805
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 141 (Michaël Zasso) #59805
* (SEMVER-MAJOR) improve performance of dotenv ToObject (James M Snell) #60038
* (SEMVER-MAJOR) use std::string_view from node_report (iknoom) #60006
* (SEMVER-MAJOR) unflag --experimental-webstorage by default (Daniel M Brasil) #57666
* (SEMVER-MAJOR) store `Local` for `CallbackScope` on stack (Anna Henningsen) #59705
* (SEMVER-MAJOR) remove node.h APIs to make callback without an async context (Chengzhong Wu) #58471
* (SEMVER-MAJOR) remove deprecated node::EmitBeforeExit and node::EmitExit (Chengzhong Wu) #58469
* (SEMVER-MAJOR) remove deprecated node::CreatePlatform and node::FreePlatform (Chengzhong Wu) #58470
* (SEMVER-MAJOR) remove deprecated node::InitializeNodeWithArgs (Chengzhong Wu) #58470
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 138 (Michaël Zasso) #58064
src,permission:
* (SEMVER-MAJOR) add --allow-net permission (Rafael Gonzaga) #58517
test:
* (SEMVER-MAJOR) update cppgc-object addon config (StefanStojanovic) #59805
* (SEMVER-MAJOR) spin longer for sequential/test-worker-prof (Michaël Zasso) #59805
* (SEMVER-MAJOR) remove `--always-turbofan` flag (Michaël Zasso) #59805
* (SEMVER-MAJOR) update snapshot for V8 14.1 (Michaël Zasso) #59805
test,win:
* (SEMVER-MAJOR) split addon tests (StefanStojanovic) #59805
tls:
* (SEMVER-MAJOR) move IP-address servername deprecation to eol (James M Snell) #58533
tools:
* (SEMVER-MAJOR) update V8 gypfiles for 14.0 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.9 (Michaël Zasso) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.8 (Michaël Zasso) #59805
* (SEMVER-MAJOR) enable leaptiering for aix/ibmi (Abdirahim Musse) #59805
* (SEMVER-MAJOR) update V8 gypfiles for 13.7 (Michaël Zasso) #58064
url:
* (SEMVER-MAJOR) move bad port deprecation in legacy url to end-of-life (James M Snell) #58617
util,console:
* (SEMVER-MAJOR) colorize regexp groups, character classes, etc (Ruben Bridgewater) #59710
worker:
* (SEMVER-MAJOR) move terminate callback to end-of-life (James M Snell) #58528
PR-URL: #59896
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
rvagg added a commit to FilOzone/synapse-sdk that referenced this pull request Oct 20, 2025
Node.js 25 became "current" and our CI is now testing it. We now have a failure
because "localStorage" is now a thing in Node.js but it's not properly
enabled without the arg. So @typescript/vfs, which in the browser detects
a "localStorage" and tries to use it (but previously in Node.js wouldn't find
it so wouldn't try) finds an implementation that's incomplete.
This change activates it, so we don't get the error. But we don't really need
it, so this can be wound back when we have a fix in vfs or somewhere else in
the stack.
Ref: nodejs/node#57666
Ref: microsoft/TypeScript-Website#3449
Ref: microsoft/TypeScript-Website#3450
rvagg added a commit to FilOzone/synapse-sdk that referenced this pull request Oct 21, 2025
Node.js 25 became "current" and our CI is now testing it. We now have a failure
because "localStorage" is now a thing in Node.js but it's not properly
enabled without the arg. So @typescript/vfs, which in the browser detects
a "localStorage" and tries to use it (but previously in Node.js wouldn't find
it so wouldn't try) finds an implementation that's incomplete.
This change activates it, so we don't get the error. But we don't really need
it, so this can be wound back when we have a fix in vfs or somewhere else in
the stack.
Ref: nodejs/node#57666
Ref: microsoft/TypeScript-Website#3449
Ref: microsoft/TypeScript-Website#3450
deokjinkim added a commit to deokjinkim/node that referenced this pull request Oct 22, 2025
For now, web storage is enabled by default.
Refs: nodejs#57666
nodejs-github-bot pushed a commit that referenced this pull request Oct 24, 2025
For now, web storage is enabled by default.
Refs: #57666
PR-URL: #60363
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
aduh95 pushed a commit that referenced this pull request Oct 26, 2025
For now, web storage is enabled by default.
Refs: #57666
PR-URL: #60363
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
caixw added a commit to issue9/cmfx that referenced this pull request Nov 18, 2025
nodejs/node#57666 原因,与 webStorage 相关的测试暂时不兼容。
lordshashank pushed a commit to lordshashank/synapse-sdk that referenced this pull request Mar 9, 2026
…Ozone#329)
Node.js 25 became "current" and our CI is now testing it. We now have a failure
because "localStorage" is now a thing in Node.js but it's not properly
enabled without the arg. So @typescript/vfs, which in the browser detects
a "localStorage" and tries to use it (but previously in Node.js wouldn't find
it so wouldn't try) finds an implementation that's incomplete.
This change activates it, so we don't get the error. But we don't really need
it, so this can be wound back when we have a fix in vfs or somewhere else in
the stack.
Ref: nodejs/node#57666
Ref: microsoft/TypeScript-Website#3449
Ref: microsoft/TypeScript-Website#3450
@derekpierrederekpierre mentioned this pull request Apr 10, 2026
7 tasks
zioalex pushed a commit to zioalex/getinspiredbythebible that referenced this pull request Jul 27, 2026
…rkers
The Node 26.x leg added in the previous commit failed CI: Node >=25
enables a native `localStorage` global by default (nodejs/node#57666),
which throws a DOMException without --localstorage-file and shadows
jsdom's own window.localStorage before vitest-environment-jsdom can
install it. Every test touching localStorage saw it as undefined
(WhatsNewModal.test.tsx, page.test.tsx's BITB-029 case), while 22.x
was unaffected since the global is opt-in-only before Node 25.
Pass --no-experimental-webstorage to vitest's worker processes via
the now-flat `execArgv` option (Vitest 4 removed the old
`poolOptions.threads/forks.execArgv` nesting) so jsdom's localStorage
wins again. Verified 773/773 unit tests, lint, and type-check pass
locally with the flag applied; confirmed via Node's own changelog
that the flag was introduced alongside --experimental-webstorage in
v22.4.0, so it's a recognized no-op on the 22.x leg too.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NQfpC1H5MQRgQWuTfyWSMp
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs that have at least one approval, no pending requests for changes, and a CI started.c++Issues and PRs that require attention from people who are familiar with C++.commit-queue-squashAdd this label to instruct the Commit Queue to squash all the PR commits into the first one.configIssues or PRs related to the config subsystemneeds-ciPRs that need a full CI run.notable-changePRs with changes that should be highlighted in changelogs.semver-majorPRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@danielmbrasil@nodejs-github-bot@mcollina@cjihrig@geeksilva97@emicovi@jasnell