| Index: src/hydrogen-instructions.h
|
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
|
| index 961c15c61d25fc4609c6af14927cbeb13e3dd366..dd1227f2a913970b79884fb974a77c1b6a6dbeea 100644
|
| --- a/src/hydrogen-instructions.h
|
| +++ b/src/hydrogen-instructions.h
|
| @@ -6432,8 +6432,8 @@ class HLoadNamedField V8_FINAL : public HTemplateInstruction<2> {
|
|
|
| class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> {
|
| public:
|
| - DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadNamedGeneric, HValue*,
|
| - Handle<Object>);
|
| + DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadNamedGeneric, HValue*,
|
| + Handle<Object>, bool);
|
|
|
| HValue* context() const { return OperandAt(0); }
|
| HValue* object() const { return OperandAt(1); }
|
| @@ -6450,6 +6450,7 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> {
|
| feedback_vector_ = vector;
|
| slot_ = slot;
|
| }
|
| + bool is_own_property() { return is_own_property_; }
|
|
|
| virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE {
|
| return Representation::Tagged();
|
| @@ -6460,9 +6461,11 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> {
|
| DECLARE_CONCRETE_INSTRUCTION(LoadNamedGeneric)
|
|
|
| private:
|
| - HLoadNamedGeneric(HValue* context, HValue* object, Handle<Object> name)
|
| + HLoadNamedGeneric(HValue* context, HValue* object,
|
| + Handle<Object> name, bool is_own_property)
|
| : name_(name),
|
| - slot_(FeedbackSlotInterface::kInvalidFeedbackSlot) {
|
| + slot_(FeedbackSlotInterface::kInvalidFeedbackSlot),
|
| + is_own_property_(is_own_property) {
|
| SetOperandAt(0, context);
|
| SetOperandAt(1, object);
|
| set_representation(Representation::Tagged());
|
| @@ -6472,6 +6475,7 @@ class HLoadNamedGeneric V8_FINAL : public HTemplateInstruction<2> {
|
| Handle<Object> name_;
|
| Handle<FixedArray> feedback_vector_;
|
| int slot_;
|
| + bool is_own_property_;
|
| };
|
|
|
|
|
| @@ -6712,8 +6716,8 @@ class HLoadKeyed V8_FINAL
|
|
|
| class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> {
|
| public:
|
| - DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HLoadKeyedGeneric, HValue*,
|
| - HValue*);
|
| + DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadKeyedGeneric, HValue*,
|
| + HValue*, bool);
|
| HValue* object() const { return OperandAt(0); }
|
| HValue* key() const { return OperandAt(1); }
|
| HValue* context() const { return OperandAt(2); }
|
| @@ -6722,6 +6726,7 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> {
|
| slot_ != FeedbackSlotInterface::kInvalidFeedbackSlot);
|
| return slot_;
|
| }
|
| + bool is_own_property() const { return is_own_property_; }
|
| Handle<FixedArray> feedback_vector() const { return feedback_vector_; }
|
| void SetVectorAndSlot(Handle<FixedArray> vector, int slot) {
|
| DCHECK(FLAG_vector_ics);
|
| @@ -6741,8 +6746,9 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> {
|
| DECLARE_CONCRETE_INSTRUCTION(LoadKeyedGeneric)
|
|
|
| private:
|
| - HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key)
|
| - : slot_(FeedbackSlotInterface::kInvalidFeedbackSlot) {
|
| + HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key, bool is_own_property)
|
| + : slot_(FeedbackSlotInterface::kInvalidFeedbackSlot),
|
| + is_own_property_(is_own_property) {
|
| set_representation(Representation::Tagged());
|
| SetOperandAt(0, obj);
|
| SetOperandAt(1, key);
|
| @@ -6752,6 +6758,7 @@ class HLoadKeyedGeneric V8_FINAL : public HTemplateInstruction<3> {
|
|
|
| Handle<FixedArray> feedback_vector_;
|
| int slot_;
|
| + bool is_own_property_;
|
| };
|
|
|
|
|
|
|