Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index a6d891586cb51942f59f3cb91194610a7ae6efaf..7ff876837b292e6f6a658dfedb60b893aff88f18 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -867,6 +867,7 @@ class HValue : public ZoneObject { |
// Escape analysis helpers. |
virtual bool HasEscapingOperandAt(int index) { return true; } |
+ virtual bool HasOutOfBoundsAccess(int size) { return false; } |
// Representation helpers. |
virtual Representation observed_input_representation(int index) { |
@@ -5756,6 +5757,9 @@ class HLoadNamedField V8_FINAL : public HTemplateInstruction<1> { |
} |
virtual bool HasEscapingOperandAt(int index) V8_OVERRIDE { return false; } |
+ virtual bool HasOutOfBoundsAccess(int size) V8_OVERRIDE { |
+ return !access().IsInobject() || access().offset() >= size; |
+ } |
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
if (index == 0 && access().IsExternalMemory()) { |
// object must be external in case of external memory access |
@@ -6071,6 +6075,9 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> { |
virtual bool HasEscapingOperandAt(int index) V8_OVERRIDE { |
return index == 1; |
} |
+ virtual bool HasOutOfBoundsAccess(int size) V8_OVERRIDE { |
+ return !access().IsInobject() || access().offset() >= size; |
+ } |
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
if (index == 0 && access().IsExternalMemory()) { |
// object must be external in case of external memory access |