Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index f59f988534f20c3b7a63fdb7cc0425b8d0c3e4b5..3705042adc7cff58c835e3894ed697c63766e9ad 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -4707,10 +4707,14 @@ bool HOptimizedGraphBuilder::PropertyAccessInfo::IsCompatibleForLoad( |
if (!LookupDescriptor()) return false; |
if (!lookup_.IsFound()) { |
- return (!info->lookup_.IsFound() || !info->holder_.is_null()) && |
+ return (!info->lookup_.IsFound() || info->has_holder()) && |
map_->prototype() == info->map_->prototype(); |
} |
+ // Mismatch if the other access info found the property in the prototype |
+ // chain. |
+ if (info->has_holder()) return false; |
+ |
if (lookup_.IsPropertyCallbacks()) { |
return accessor_.is_identical_to(info->accessor_); |
} |