Lines Matching refs:weak_cell
6952 WeakCell weak_cell = WeakCell::cast(Object(raw_weak_cell));
6953 DCHECK(!weak_cell.unregister_token().IsUndefined(isolate));
6956 // Remove weak_cell from the linked list of other WeakCells with the same
6960 if (weak_cell.key_list_prev().IsUndefined(isolate)) {
6963 HeapObject unregister_token = weak_cell.unregister_token();
6968 if (weak_cell.key_list_next().IsUndefined(isolate)) {
6969 // weak_cell is the only one associated with its key; remove the key
6974 // weak_cell is the list head for its key; we need to change the value
6976 WeakCell next = WeakCell::cast(weak_cell.key_list_next());
6977 DCHECK_EQ(next.key_list_prev(), weak_cell);
6982 // weak_cell is somewhere in the middle of its key list.
6983 WeakCell prev = WeakCell::cast(weak_cell.key_list_prev());
6984 prev.set_key_list_next(weak_cell.key_list_next());
6985 if (!weak_cell.key_list_next().IsUndefined()) {
6986 WeakCell next = WeakCell::cast(weak_cell.key_list_next());
6987 next.set_key_list_prev(weak_cell.key_list_prev());
6991 // weak_cell is now removed from the unregister token map, so clear its
6993 weak_cell.set_unregister_token(undefined);
6994 weak_cell.set_key_list_prev(undefined);
6995 weak_cell.set_key_list_next(undefined);