| Index: src/type-feedback-vector.cc
 | 
| diff --git a/src/type-feedback-vector.cc b/src/type-feedback-vector.cc
 | 
| index 789ac2ea77d726db01e9417069f9edeef0e7389d..723143db229afee07b000cfd4c7d1ba61221edac 100644
 | 
| --- a/src/type-feedback-vector.cc
 | 
| +++ b/src/type-feedback-vector.cc
 | 
| @@ -284,11 +284,19 @@ void TypeFeedbackVector::ClearAllKeyedStoreICs(Isolate* isolate) {
 | 
|        int length = optimized_code_map->length();
 | 
|        for (int i = SharedFunctionInfo::kEntriesStart; i < length;
 | 
|             i += SharedFunctionInfo::kEntryLength) {
 | 
| -        WeakCell* cell = WeakCell::cast(
 | 
| -            optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset));
 | 
| -        if (cell->value()->IsLiteralsArray()) {
 | 
| -          TypeFeedbackVector* vector =
 | 
| -              LiteralsArray::cast(cell->value())->feedback_vector();
 | 
| +        Object* lits =
 | 
| +            optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset);
 | 
| +        TypeFeedbackVector* vector = nullptr;
 | 
| +        if (lits->IsWeakCell()) {
 | 
| +          WeakCell* cell = WeakCell::cast(lits);
 | 
| +          if (cell->value()->IsLiteralsArray()) {
 | 
| +            vector = LiteralsArray::cast(cell->value())->feedback_vector();
 | 
| +          }
 | 
| +        } else {
 | 
| +          DCHECK(lits->IsLiteralsArray());
 | 
| +          vector = LiteralsArray::cast(lits)->feedback_vector();
 | 
| +        }
 | 
| +        if (vector != nullptr) {
 | 
|            vector->ClearKeyedStoreICs(shared);
 | 
|          }
 | 
|        }
 | 
| 
 |