Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 11dda68879962254d1a998c001b178ed6f3c76ec..c75938e22d8689010a630ddbfd804a6093d59384 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -2591,13 +2591,28 @@ class SuperReference FINAL : public Expression { |
TypeFeedbackId HomeObjectFeedbackId() { return reuse(id()); } |
+ // Type feedback information. |
+ virtual int ComputeFeedbackSlotCount() { return FLAG_vector_ics ? 1 : 0; } |
+ virtual void SetFirstFeedbackSlot(int slot) { |
+ homeobject_feedback_slot_ = slot; |
+ } |
+ |
+ int HomeObjectFeedbackSlot() { |
+ DCHECK(!FLAG_vector_ics || |
+ homeobject_feedback_slot_ != kInvalidFeedbackSlot); |
+ return homeobject_feedback_slot_; |
+ } |
+ |
protected: |
SuperReference(Zone* zone, VariableProxy* this_var, int pos, IdGen* id_gen) |
- : Expression(zone, pos, id_gen), this_var_(this_var) { |
+ : Expression(zone, pos, id_gen), |
+ this_var_(this_var), |
+ homeobject_feedback_slot_(kInvalidFeedbackSlot) { |
DCHECK(this_var->is_this()); |
} |
VariableProxy* this_var_; |
+ int homeobject_feedback_slot_; |
}; |