| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 39e051a50fd897d08940f4ecfa2525213ab988b0..cf14953e80ef7bfbe21a9f38bd46c90e44835185 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -15201,6 +15201,7 @@ Handle<PropertyCell> GlobalObject::EnsurePropertyCell(
|
| PropertyCellType::kUninitialized ||
|
| dictionary->DetailsAt(entry).cell_type() ==
|
| PropertyCellType::kDeleted);
|
| + DCHECK(dictionary->ValueAt(entry)->IsPropertyCell());
|
| cell = handle(PropertyCell::cast(dictionary->ValueAt(entry)));
|
| DCHECK(cell->value()->IsTheHole());
|
| return cell;
|
| @@ -15817,6 +15818,7 @@ static inline bool IsDeleted(D d, int i) {
|
| case DictionaryEntryType::kObjects:
|
| return false;
|
| case DictionaryEntryType::kCells:
|
| + DCHECK(d->ValueAt(i)->IsPropertyCell());
|
| return PropertyCell::cast(d->ValueAt(i))->value()->IsTheHole();
|
| }
|
| UNREACHABLE();
|
| @@ -16972,6 +16974,7 @@ Handle<PropertyCell> PropertyCell::InvalidateEntry(
|
| Handle<NameDictionary> dictionary, int entry) {
|
| Isolate* isolate = dictionary->GetIsolate();
|
| // Swap with a copy.
|
| + DCHECK(dictionary->ValueAt(entry)->IsPropertyCell());
|
| Handle<PropertyCell> cell(PropertyCell::cast(dictionary->ValueAt(entry)));
|
| auto new_cell = isolate->factory()->NewPropertyCell();
|
| new_cell->set_value(cell->value());
|
| @@ -17025,6 +17028,7 @@ Handle<Object> PropertyCell::UpdateCell(Handle<NameDictionary> dictionary,
|
| int entry, Handle<Object> value,
|
| PropertyDetails details) {
|
| DCHECK(!value->IsTheHole());
|
| + DCHECK(dictionary->ValueAt(entry)->IsPropertyCell());
|
| Handle<PropertyCell> cell(PropertyCell::cast(dictionary->ValueAt(entry)));
|
| const PropertyDetails original_details = dictionary->DetailsAt(entry);
|
| // Data accesses could be cached in ics or optimized code.
|
|
|