diff options
Diffstat (limited to 'chromium/v8/src/compiler/access-info.cc')
-rw-r--r-- | chromium/v8/src/compiler/access-info.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/chromium/v8/src/compiler/access-info.cc b/chromium/v8/src/compiler/access-info.cc index 024a8031cbe..4c8923325b4 100644 --- a/chromium/v8/src/compiler/access-info.cc +++ b/chromium/v8/src/compiler/access-info.cc @@ -451,9 +451,15 @@ PropertyAccessInfo AccessInfoFactory::ComputeDataFieldAccessInfo( map, descriptor, details_representation)); } else if (details_representation.IsHeapObject()) { if (descriptors_field_type->IsNone()) { - // Store is not safe if the field type was cleared. - if (access_mode == AccessMode::kStore) { - return Invalid(); + switch (access_mode) { + case AccessMode::kStore: + case AccessMode::kStoreInLiteral: + case AccessMode::kDefine: + // Store is not safe if the field type was cleared. + return Invalid(); + case AccessMode::kLoad: + case AccessMode::kHas: + break; } // The field type was cleared by the GC, so we don't know anything |