@@ -485,7 +485,6 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
485485 AddOption (" --experimental-report" , " " , NoOp{}, kAllowedInEnvvar );
486486 AddOption (
487487 " --experimental-wasi-unstable-preview1" , " " , NoOp{}, kAllowedInEnvvar );
488- AddOption (" --expose-gc" , " expose gc extension" , V8Option{}, kAllowedInEnvvar );
489488 AddOption (" --expose-internals" , " " , &EnvironmentOptions::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" , " " , V8Option{}, kAllowedInEnvvar );
839- AddOption (" --max-semi-space-size" , " " , V8Option{}, kAllowedInEnvvar );
840- AddOption (" --perf-basic-prof" , " " , V8Option{}, kAllowedInEnvvar );
841- AddOption (
842- " --perf-basic-prof-only-functions" , " " , V8Option{}, kAllowedInEnvvar );
843- AddOption (" --perf-prof" , " " , V8Option{}, kAllowedInEnvvar );
844- AddOption (" --perf-prof-unwinding-info" , " " , V8Option{}, kAllowedInEnvvar );
845- AddOption (" --stack-trace-limit" , " " , V8Option{}, 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" , " " , NoOp{}, kAllowedInEnvvar );
879841
880- AddOption (" --experimental-shadow-realm" ,
881- " " ,
882- &PerIsolateOptions::experimental_shadow_realm,
883- kAllowedInEnvvar );
884- AddOption (" --harmony-shadow-realm" , " " , V8Option{});
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" , V8Option{}, 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" , " " , V8Option{}, kAllowedInEnvvar );
1064+ AddOption (" --max-semi-space-size" , " " , V8Option{}, kAllowedInEnvvar );
1065+ AddOption (" --perf-basic-prof" , " " , V8Option{}, kAllowedInEnvvar );
1066+ AddOption (
1067+ " --perf-basic-prof-only-functions" , " " , V8Option{}, kAllowedInEnvvar );
1068+ AddOption (" --perf-prof" , " " , V8Option{}, kAllowedInEnvvar );
1069+ AddOption (" --perf-prof-unwinding-info" , " " , V8Option{}, kAllowedInEnvvar );
1070+ AddOption (" --prof" , " Generate V8 profiler output." , V8Option{});
1071+ AddOption (" --stack-trace-limit" , " " , V8Option{}, 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" , " " , NoOp{}, kAllowedInEnvvar );
1091+
1092+ AddOption (" --experimental-shadow-realm" ,
1093+ " " ,
1094+ &PerProcessOptions::experimental_shadow_realm,
1095+ kAllowedInEnvvar );
1096+ AddOption (" --harmony-shadow-realm" , " " , V8Option{});
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