Skip to content

Commit 14969d9

Browse files
backespthier
authored and
pthier
committed
Disable freezing V8 flags on initialization (#141)
Node still changes flags after initializationg; either because tests need to set their own flags (which V8 tests also still allow), or because it's explicitly requested via the "v8.setFlagsFromString" method that Node provides.
1 parent 276f2bf commit 14969d9

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/node.cc

+5
Original file line numberDiff line numberDiff line change
@@ -912,6 +912,11 @@ int InitializeNodeWithArgs(std::vector<std::string>* argv,
912912
// used in diagnostic reports.
913913
per_process::cli_options->cmdline = *argv;
914914

915+
// Node provides a "v8.setFlagsFromString" method to dynamically change flags.
916+
// Hence do not freeze flags when initializing V8. In a browser setting, this
917+
// is security relevant, for Node it's less important.
918+
V8::SetFlagsFromString("--no-freeze-flags-after-init");
919+
915920
#if defined(NODE_V8_OPTIONS)
916921
// Should come before the call to V8::SetFlagsFromCommandLine()
917922
// so the user can disable a flag --foo at run-time by passing

test/cctest/node_test_fixture.cc

+5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ void NodeTestEnvironment::SetUp() {
2424
#endif
2525
cppgc::InitializeProcess(
2626
NodeZeroIsolateTestFixture::platform->GetPageAllocator());
27+
28+
// Before initializing V8, disable the --freeze-flags-after-init flag, so
29+
// individual tests can set their own flags.
30+
v8::V8::SetFlagsFromString("--no-freeze-flags-after-init");
31+
2732
v8::V8::Initialize();
2833
}
2934

0 commit comments

Comments
 (0)