@@ -259,7 +259,23 @@ SeaResource FindSingleExecutableResource() {
259259 return sea_resource;
260260}
261261
262- // Boolean flag getters removed - flags are set as properties in Initialize().
262+ void IsExperimentalSeaWarningNeeded (const FunctionCallbackInfo<Value>& args) {
263+ bool is_building_sea =
264+ !per_process::cli_options->experimental_sea_config .empty ();
265+ if (is_building_sea) {
266+ args.GetReturnValue ().Set (true );
267+ return ;
268+ }
269+
270+ if (!IsSingleExecutable ()) {
271+ args.GetReturnValue ().Set (false );
272+ return ;
273+ }
274+
275+ SeaResource sea_resource = FindSingleExecutableResource ();
276+ args.GetReturnValue ().Set (!static_cast <bool >(
277+ sea_resource.flags & SeaFlags::kDisableExperimentalSeaWarning ));
278+ }
263279
264280std::tuple<int , char **> FixupArgsForSEA (int argc, char ** argv) {
265281 // Repeats argv[0] at position 1 on argv as a replacement for the missing
@@ -886,17 +902,11 @@ void Initialize(Local<Object> target,
886902 // Set boolean flags as properties (computed once, avoids repeated calls).
887903 bool is_sea = IsSingleExecutable ();
888904 bool is_vfs_enabled = false ;
889- bool is_experimental_warning_needed =
890- !per_process::cli_options->experimental_sea_config .empty ();
891905
892906 if (is_sea) {
893907 SeaResource sea_resource = FindSingleExecutableResource ();
894908 is_vfs_enabled =
895909 static_cast <bool >(sea_resource.flags & SeaFlags::kEnableVfs );
896- if (!static_cast <bool >(sea_resource.flags &
897- SeaFlags::kDisableExperimentalSeaWarning )) {
898- is_experimental_warning_needed = true ;
899- }
900910 }
901911
902912 target
@@ -909,17 +919,17 @@ void Initialize(Local<Object> target,
909919 FIXED_ONE_BYTE_STRING (isolate, " isVfsEnabled" ),
910920 Boolean::New (isolate, is_vfs_enabled))
911921 .Check ();
912- target
913- ->Set (context,
914- FIXED_ONE_BYTE_STRING (isolate, " isExperimentalSeaWarningNeeded" ),
915- Boolean::New (isolate, is_experimental_warning_needed))
916- .Check ();
917922
923+ SetMethod (context,
924+ target,
925+ " isExperimentalSeaWarningNeeded" ,
926+ IsExperimentalSeaWarningNeeded);
918927 SetMethod (context, target, " getAsset" , GetAsset);
919928 SetMethod (context, target, " getAssetKeys" , GetAssetKeys);
920929}
921930
922931void RegisterExternalReferences (ExternalReferenceRegistry* registry) {
932+ registry->Register (IsExperimentalSeaWarningNeeded);
923933 registry->Register (GetAsset);
924934 registry->Register (GetAssetKeys);
925935}
0 commit comments