@@ -485,7 +485,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
485485  AddOption (" --experimental-report" " " kAllowedInEnvvar );
486486  AddOption (
487487      " --experimental-wasi-unstable-preview1" " " kAllowedInEnvvar );
488-   AddOption (" --expose-gc" " expose gc extension" kAllowedInEnvvar );
489488  AddOption (" --expose-internals" " " 
490489  AddOption (" --frozen-intrinsics" 
491490            " experimental frozen intrinsics support" 
@@ -565,9 +564,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
565564            " preserve symbolic links when resolving the main module" 
566565            &EnvironmentOptions::preserve_symlinks_main,
567566            kAllowedInEnvvar );
568-   AddOption (" --prof" 
569-             " Generate V8 profiler output." 
570-             V8Option{});
571567  AddOption (" --prof-process" 
572568            " process V8 profiler output generated using --prof" 
573569            &EnvironmentOptions::prof_process);
@@ -820,42 +816,14 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
820816
821817PerIsolateOptionsParser::PerIsolateOptionsParser (
822818  const  EnvironmentOptionsParser& eop) {
819+   //  Generally, V8 flags are saved in per-process storage and should be added
820+   //  to PerProcessOptionsParser.
821+ 
823822  AddOption (" --track-heap-objects" 
824823            " track heap object allocations for heap snapshots" 
825824            &PerIsolateOptions::track_heap_objects,
826825            kAllowedInEnvvar );
827826
828-   //  Explicitly add some V8 flags to mark them as allowed in NODE_OPTIONS.
829-   AddOption (" --abort-on-uncaught-exception" 
830-             " aborting instead of exiting causes a core file to be generated " 
831-             " for analysis" 
832-             V8Option{},
833-             kAllowedInEnvvar );
834-   AddOption (" --interpreted-frames-native-stack" 
835-             " help system profilers to translate JavaScript interpreted frames" 
836-             V8Option{},
837-             kAllowedInEnvvar );
838-   AddOption (" --max-old-space-size" " " kAllowedInEnvvar );
839-   AddOption (" --max-semi-space-size" " " kAllowedInEnvvar );
840-   AddOption (" --perf-basic-prof" " " kAllowedInEnvvar );
841-   AddOption (
842-       " --perf-basic-prof-only-functions" " " kAllowedInEnvvar );
843-   AddOption (" --perf-prof" " " kAllowedInEnvvar );
844-   AddOption (" --perf-prof-unwinding-info" " " kAllowedInEnvvar );
845-   AddOption (" --stack-trace-limit" " " kAllowedInEnvvar );
846-   AddOption (" --disallow-code-generation-from-strings" 
847-             " disallow eval and friends" 
848-             V8Option{},
849-             kAllowedInEnvvar );
850-   AddOption (" --huge-max-old-generation-size" 
851-             " increase default maximum heap size on machines with 16GB memory " 
852-             " or more" 
853-             V8Option{},
854-             kAllowedInEnvvar );
855-   AddOption (" --jitless" 
856-             " disable runtime allocation of executable memory" 
857-             V8Option{},
858-             kAllowedInEnvvar );
859827  AddOption (" --report-uncaught-exception" 
860828            " generate diagnostic report on uncaught exceptions" 
861829            &PerIsolateOptions::report_uncaught_exception,
@@ -870,21 +838,7 @@ PerIsolateOptionsParser::PerIsolateOptionsParser(
870838            &PerIsolateOptions::report_signal,
871839            kAllowedInEnvvar );
872840  Implies (" --report-signal" " --report-on-signal" 
873-   AddOption (" --enable-etw-stack-walking" 
874-             " provides heap data to ETW Windows native tracing" 
875-             V8Option{},
876-             kAllowedInEnvvar );
877- 
878-   AddOption (" --experimental-top-level-await" " " kAllowedInEnvvar );
879841
880-   AddOption (" --experimental-shadow-realm" 
881-             " " 
882-             &PerIsolateOptions::experimental_shadow_realm,
883-             kAllowedInEnvvar );
884-   AddOption (" --harmony-shadow-realm" " " 
885-   Implies (" --experimental-shadow-realm" " --harmony-shadow-realm" 
886-   Implies (" --harmony-shadow-realm" " --experimental-shadow-realm" 
887-   ImpliesNot (" --no-harmony-shadow-realm" " --experimental-shadow-realm" 
888842  AddOption (" --build-snapshot" 
889843            " Generate a snapshot blob when the process exits." 
890844            &PerIsolateOptions::build_snapshot,
@@ -1092,6 +1046,58 @@ PerProcessOptionsParser::PerProcessOptionsParser(
10921046      " performance." 
10931047      &PerProcessOptions::disable_wasm_trap_handler,
10941048      kAllowedInEnvvar );
1049+ 
1050+   //  Explicitly add some V8 flags to mark them as allowed in NODE_OPTIONS.
1051+   //  V8 flags are be per-process options and should not be modified with
1052+   //  NODE_OPTIONS or execArgv with a Worker constructor.
1053+   AddOption (" --abort-on-uncaught-exception" 
1054+             " aborting instead of exiting causes a core file to be generated " 
1055+             " for analysis" 
1056+             V8Option{},
1057+             kAllowedInEnvvar );
1058+   AddOption (" --expose-gc" " expose gc extension" kAllowedInEnvvar );
1059+   AddOption (" --interpreted-frames-native-stack" 
1060+             " help system profilers to translate JavaScript interpreted frames" 
1061+             V8Option{},
1062+             kAllowedInEnvvar );
1063+   AddOption (" --max-old-space-size" " " kAllowedInEnvvar );
1064+   AddOption (" --max-semi-space-size" " " kAllowedInEnvvar );
1065+   AddOption (" --perf-basic-prof" " " kAllowedInEnvvar );
1066+   AddOption (
1067+       " --perf-basic-prof-only-functions" " " kAllowedInEnvvar );
1068+   AddOption (" --perf-prof" " " kAllowedInEnvvar );
1069+   AddOption (" --perf-prof-unwinding-info" " " kAllowedInEnvvar );
1070+   AddOption (" --prof" " Generate V8 profiler output." 
1071+   AddOption (" --stack-trace-limit" " " kAllowedInEnvvar );
1072+   AddOption (" --disallow-code-generation-from-strings" 
1073+             " disallow eval and friends" 
1074+             V8Option{},
1075+             kAllowedInEnvvar );
1076+   AddOption (" --huge-max-old-generation-size" 
1077+             " increase default maximum heap size on machines with 16GB memory " 
1078+             " or more" 
1079+             V8Option{},
1080+             kAllowedInEnvvar );
1081+   AddOption (" --jitless" 
1082+             " disable runtime allocation of executable memory" 
1083+             V8Option{},
1084+             kAllowedInEnvvar );
1085+   AddOption (" --enable-etw-stack-walking" 
1086+             " provides heap data to ETW Windows native tracing" 
1087+             V8Option{},
1088+             kAllowedInEnvvar );
1089+ 
1090+   AddOption (" --experimental-top-level-await" " " kAllowedInEnvvar );
1091+ 
1092+   AddOption (" --experimental-shadow-realm" 
1093+             " " 
1094+             &PerProcessOptions::experimental_shadow_realm,
1095+             kAllowedInEnvvar );
1096+   AddOption (" --harmony-shadow-realm" " " 
1097+ 
1098+   Implies (" --experimental-shadow-realm" " --harmony-shadow-realm" 
1099+   Implies (" --harmony-shadow-realm" " --experimental-shadow-realm" 
1100+   ImpliesNot (" --no-harmony-shadow-realm" " --experimental-shadow-realm" 
10951101}
10961102
10971103inline  std::string RemoveBrackets (const  std::string& host) {
0 commit comments