@@ -916,16 +916,6 @@ MaybeLocal<Promise> Shell::HostImportModuleDynamically(
916916 return MaybeLocal<Promise>();
917917}
918918
919- void Shell::HostCleanupFinalizationGroup (Local<Context> context,
920- Local<FinalizationGroup> fg) {
921- Isolate* isolate = context->GetIsolate ();
922- PerIsolateData::Get (isolate)->HostCleanupFinalizationGroup (fg);
923- }
924-
925- void PerIsolateData::HostCleanupFinalizationGroup (Local<FinalizationGroup> fg) {
926- cleanup_finalization_groups_.emplace (isolate_, fg);
927- }
928-
929919void Shell::HostInitializeImportMetaObject (Local<Context> context,
930920 Local<Module> module ,
931921 Local<Object> meta) {
@@ -1123,15 +1113,6 @@ MaybeLocal<Context> PerIsolateData::GetTimeoutContext() {
11231113 return result;
11241114}
11251115
1126- MaybeLocal<FinalizationGroup> PerIsolateData::GetCleanupFinalizationGroup () {
1127- if (cleanup_finalization_groups_.empty ())
1128- return MaybeLocal<FinalizationGroup>();
1129- Local<FinalizationGroup> result =
1130- cleanup_finalization_groups_.front ().Get (isolate_);
1131- cleanup_finalization_groups_.pop ();
1132- return result;
1133- }
1134-
11351116PerIsolateData::RealmScope::RealmScope (PerIsolateData* data) : data_(data) {
11361117 data_->realm_count_ = 1 ;
11371118 data_->realm_current_ = 0 ;
@@ -1281,8 +1262,11 @@ void Shell::DisposeRealm(const v8::FunctionCallbackInfo<v8::Value>& args,
12811262 int index) {
12821263 Isolate* isolate = args.GetIsolate ();
12831264 PerIsolateData* data = PerIsolateData::Get (isolate);
1284- DisposeModuleEmbedderData (data->realms_ [index].Get (isolate));
1265+ Local<Context> context = data->realms_ [index].Get (isolate);
1266+ DisposeModuleEmbedderData (context);
12851267 data->realms_ [index].Reset ();
1268+ // ContextDisposedNotification expects the disposed context to be entered.
1269+ v8::Context::Scope scope (context);
12861270 isolate->ContextDisposedNotification ();
12871271 isolate->IdleNotificationDeadline (g_platform->MonotonicallyIncreasingTime ());
12881272}
@@ -2742,8 +2726,6 @@ void SourceGroup::ExecuteInThread() {
27422726 Isolate::CreateParams create_params;
27432727 create_params.array_buffer_allocator = Shell::array_buffer_allocator;
27442728 Isolate* isolate = Isolate::New (create_params);
2745- isolate->SetHostCleanupFinalizationGroupCallback (
2746- Shell::HostCleanupFinalizationGroup);
27472729 isolate->SetHostImportModuleDynamicallyCallback (
27482730 Shell::HostImportModuleDynamically);
27492731 isolate->SetHostInitializeImportMetaObjectCallback (
@@ -2889,8 +2871,6 @@ void Worker::ExecuteInThread() {
28892871 Isolate::CreateParams create_params;
28902872 create_params.array_buffer_allocator = Shell::array_buffer_allocator;
28912873 Isolate* isolate = Isolate::New (create_params);
2892- isolate->SetHostCleanupFinalizationGroupCallback (
2893- Shell::HostCleanupFinalizationGroup);
28942874 isolate->SetHostImportModuleDynamicallyCallback (
28952875 Shell::HostImportModuleDynamically);
28962876 isolate->SetHostInitializeImportMetaObjectCallback (
@@ -3272,21 +3252,6 @@ bool RunSetTimeoutCallback(Isolate* isolate, bool* did_run) {
32723252 return true ;
32733253}
32743254
3275- bool RunCleanupFinalizationGroupCallback (Isolate* isolate, bool * did_run) {
3276- PerIsolateData* data = PerIsolateData::Get (isolate);
3277- HandleScope handle_scope (isolate);
3278- while (true ) {
3279- Local<FinalizationGroup> fg;
3280- if (!data->GetCleanupFinalizationGroup ().ToLocal (&fg)) return true ;
3281- *did_run = true ;
3282- TryCatch try_catch (isolate);
3283- try_catch.SetVerbose (true );
3284- if (FinalizationGroup::Cleanup (fg).IsNothing ()) {
3285- return false ;
3286- }
3287- }
3288- }
3289-
32903255bool ProcessMessages (
32913256 Isolate* isolate,
32923257 const std::function<platform::MessageLoopBehavior()>& behavior) {
@@ -3303,17 +3268,12 @@ bool ProcessMessages(
33033268 v8::platform::RunIdleTasks (g_default_platform, isolate,
33043269 50.0 / base::Time::kMillisecondsPerSecond );
33053270 }
3306- bool ran_finalization_callback = false ;
3307- if (!RunCleanupFinalizationGroupCallback (isolate,
3308- &ran_finalization_callback)) {
3309- return false ;
3310- }
33113271 bool ran_set_timeout = false ;
33123272 if (!RunSetTimeoutCallback (isolate, &ran_set_timeout)) {
33133273 return false ;
33143274 }
33153275
3316- if (!ran_set_timeout && !ran_finalization_callback ) return true ;
3276+ if (!ran_set_timeout) return true ;
33173277 }
33183278 return true ;
33193279}
@@ -3768,8 +3728,6 @@ int Shell::Main(int argc, char* argv[]) {
37683728 }
37693729
37703730 Isolate* isolate = Isolate::New (create_params);
3771- isolate->SetHostCleanupFinalizationGroupCallback (
3772- Shell::HostCleanupFinalizationGroup);
37733731 isolate->SetHostImportModuleDynamicallyCallback (
37743732 Shell::HostImportModuleDynamically);
37753733 isolate->SetHostInitializeImportMetaObjectCallback (
@@ -3832,8 +3790,6 @@ int Shell::Main(int argc, char* argv[]) {
38323790 i::FLAG_hash_seed ^= 1337 ; // Use a different hash seed.
38333791 Isolate* isolate2 = Isolate::New (create_params);
38343792 i::FLAG_hash_seed ^= 1337 ; // Restore old hash seed.
3835- isolate2->SetHostCleanupFinalizationGroupCallback (
3836- Shell::HostCleanupFinalizationGroup);
38373793 isolate2->SetHostImportModuleDynamicallyCallback (
38383794 Shell::HostImportModuleDynamically);
38393795 isolate2->SetHostInitializeImportMetaObjectCallback (
0 commit comments