| 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
|
|
|