Index: src/compiler/access-info.cc |
diff --git a/src/compiler/access-info.cc b/src/compiler/access-info.cc |
index 34e102a3eeb50e5085535e629322b200c135dc69..432071c4e3f83efe6b1353fe3f3b3c9da271d370 100644 |
--- a/src/compiler/access-info.cc |
+++ b/src/compiler/access-info.cc |
@@ -61,11 +61,8 @@ std::ostream& operator<<(std::ostream& os, AccessMode access_mode) { |
ElementAccessInfo::ElementAccessInfo() {} |
ElementAccessInfo::ElementAccessInfo(MapList const& receiver_maps, |
- ElementsKind elements_kind, |
- MaybeHandle<JSObject> holder) |
- : elements_kind_(elements_kind), |
- holder_(holder), |
- receiver_maps_(receiver_maps) {} |
+ ElementsKind elements_kind) |
+ : elements_kind_(elements_kind), receiver_maps_(receiver_maps) {} |
// static |
PropertyAccessInfo PropertyAccessInfo::NotFound(MapList const& receiver_maps, |
@@ -182,29 +179,8 @@ bool AccessInfoFactory::ComputeElementAccessInfo( |
Handle<Map> map, AccessMode access_mode, ElementAccessInfo* access_info) { |
// Check if it is safe to inline element access for the {map}. |
if (!CanInlineElementAccess(map)) return false; |
- |
ElementsKind const elements_kind = map->elements_kind(); |
- |
- // Certain (monomorphic) stores need a prototype chain check because shape |
- // changes could allow callbacks on elements in the chain that are not |
- // compatible with monomorphic keyed stores. |
- MaybeHandle<JSObject> holder; |
- if (access_mode == AccessMode::kStore && map->prototype()->IsJSObject()) { |
- for (PrototypeIterator i(map); !i.IsAtEnd(); i.Advance()) { |
- Handle<JSReceiver> prototype = |
- PrototypeIterator::GetCurrent<JSReceiver>(i); |
- if (!prototype->IsJSObject()) return false; |
- // TODO(bmeurer): We do not currently support unstable prototypes. |
- // We might want to revisit the way we handle certain keyed stores |
- // because this whole prototype chain check is essential a hack, |
- // and I'm not sure that it is correct at all with dictionaries in |
- // the prototype chain. |
- if (!prototype->map()->is_stable()) return false; |
- holder = Handle<JSObject>::cast(prototype); |
- } |
- } |
- |
- *access_info = ElementAccessInfo(MapList{map}, elements_kind, holder); |
+ *access_info = ElementAccessInfo(MapList{map}, elements_kind); |
return true; |
} |