Lines Matching defs:weak_cell
30 Handle<WeakCell> weak_cell, Isolate* isolate) {
43 uint32_t key = weak_cell->unregister_token().GetOrCreateHash(isolate).value();
48 existing_weak_cell.set_key_list_prev(*weak_cell);
49 weak_cell->set_key_list_next(existing_weak_cell);
51 key_map = SimpleNumberDictionary::Set(isolate, key_map, key, weak_cell);
102 WeakCell weak_cell = WeakCell::cast(value);
103 DCHECK(!ObjectInYoungGeneration(weak_cell));
104 value = weak_cell.key_list_next();
105 if (weak_cell.unregister_token() == unregister_token) {
106 // weak_cell has the same unregister token; remove it from the key list.
109 weak_cell.RemoveFromFinalizationRegistryCells(isolate);
116 weak_cell.set_unregister_token(undefined);
117 weak_cell.set_key_list_prev(undefined);
118 weak_cell.set_key_list_next(undefined);
121 // weak_cell has a different unregister token with the same key (hash
123 weak_cell.set_key_list_prev(new_key_list_prev);
124 gc_notify_updated_slot(weak_cell,
125 weak_cell.RawField(WeakCell::kKeyListPrevOffset),
127 weak_cell.set_key_list_next(undefined);
129 new_key_list_head = weak_cell;
133 prev_cell.set_key_list_next(weak_cell);
136 weak_cell);
138 new_key_list_prev = weak_cell;