63 bool key_map_may_need_shrink =
false;
64 while (finalization_registry->NeedsCleanup()) {
70 isolate, &key_map_may_need_shrink),
78 isolate->factory()->undefined_value(),
81 if (key_map_may_need_shrink)
ShrinkKeyMap(isolate, finalization_registry);
86 if (key_map_may_need_shrink)
ShrinkKeyMap(isolate, finalization_registry);
93 DCHECK(!IsUndefined(weak_cell->unregister_token(), isolate));
100 if (IsUndefined(weak_cell->key_list_prev(), isolate)) {
108 if (IsUndefined(weak_cell->key_list_next(), isolate)) {
111 key_map->ClearEntry(entry);
112 key_map->ElementRemoved();
117 DCHECK_EQ(next->key_list_prev(), weak_cell);
118 next->set_key_list_prev(undefined);
119 key_map->ValueAtPut(entry, next);
124 prev->set_key_list_next(weak_cell->key_list_next());
125 if (!IsUndefined(weak_cell->key_list_next())) {
127 next->set_key_list_prev(weak_cell->key_list_prev());
133 weak_cell->set_unregister_token(undefined);
134 weak_cell->set_key_list_prev(undefined);
135 weak_cell->set_key_list_next(undefined);
V8_EXPORT_PRIVATE static V8_WARN_UNUSED_RESULT MaybeHandle< Object > Call(Isolate *isolate, DirectHandle< Object > callable, DirectHandle< Object > receiver, base::Vector< const DirectHandle< Object > > args)