| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 360fc939fecb2bd8cfcceb15c31b8bea3541a611..badd6833c4e4ed8cd36685e8310f7e24ab7cfe87 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -1705,6 +1705,7 @@ class VariableProxy FINAL : public Expression {
|
| }
|
|
|
| FeedbackVectorICSlot VariableFeedbackSlot() {
|
| + DCHECK(!FLAG_vector_ics || !variable_feedback_slot_.IsInvalid());
|
| return variable_feedback_slot_;
|
| }
|
|
|
| @@ -1790,6 +1791,7 @@ class Property FINAL : public Expression {
|
| }
|
|
|
| FeedbackVectorICSlot PropertyFeedbackSlot() const {
|
| + DCHECK(!FLAG_vector_ics || !property_feedback_slot_.IsInvalid());
|
| return property_feedback_slot_;
|
| }
|
|
|
| @@ -1834,7 +1836,10 @@ class Call FINAL : public Expression {
|
| }
|
|
|
| bool HasCallFeedbackSlot() const { return !call_feedback_slot_.IsInvalid(); }
|
| - FeedbackVectorICSlot CallFeedbackSlot() const { return call_feedback_slot_; }
|
| + FeedbackVectorICSlot CallFeedbackSlot() const {
|
| + DCHECK(!call_feedback_slot_.IsInvalid());
|
| + return call_feedback_slot_;
|
| + }
|
|
|
| virtual SmallMapList* GetReceiverTypes() OVERRIDE {
|
| if (expression()->IsProperty()) {
|
| @@ -1933,7 +1938,10 @@ class CallNew FINAL : public Expression {
|
| callnew_feedback_slot_ = slot;
|
| }
|
|
|
| - FeedbackVectorSlot CallNewFeedbackSlot() { return callnew_feedback_slot_; }
|
| + FeedbackVectorSlot CallNewFeedbackSlot() {
|
| + DCHECK(!callnew_feedback_slot_.IsInvalid());
|
| + return callnew_feedback_slot_;
|
| + }
|
| FeedbackVectorSlot AllocationSiteFeedbackSlot() {
|
| DCHECK(FLAG_pretenuring_call_new);
|
| return CallNewFeedbackSlot().next();
|
| @@ -1997,6 +2005,8 @@ class CallRuntime FINAL : public Expression {
|
| }
|
|
|
| FeedbackVectorICSlot CallRuntimeFeedbackSlot() {
|
| + DCHECK(!(FLAG_vector_ics && is_jsruntime()) ||
|
| + !callruntime_feedback_slot_.IsInvalid());
|
| return callruntime_feedback_slot_;
|
| }
|
|
|
| @@ -2383,6 +2393,7 @@ class Yield FINAL : public Expression {
|
| }
|
|
|
| FeedbackVectorICSlot KeyedLoadFeedbackSlot() {
|
| + DCHECK(!FLAG_vector_ics || !yield_first_feedback_slot_.IsInvalid());
|
| return yield_first_feedback_slot_;
|
| }
|
|
|
| @@ -3162,8 +3173,6 @@ class AstConstructionVisitor BASE_EMBEDDED {
|
| public:
|
| AstConstructionVisitor() {}
|
|
|
| - AstProperties* ast_properties() { return &properties_; }
|
| -
|
| private:
|
| template<class> friend class AstNodeFactory;
|
|
|
| @@ -3172,22 +3181,6 @@ class AstConstructionVisitor BASE_EMBEDDED {
|
| void Visit##type(type* node);
|
| AST_NODE_LIST(DEF_VISIT)
|
| #undef DEF_VISIT
|
| -
|
| - void add_slot_node(AstNode* slot_node) {
|
| - FeedbackVectorRequirements reqs = slot_node->ComputeFeedbackRequirements();
|
| - if (reqs.slots() > 0) {
|
| - slot_node->SetFirstFeedbackSlot(
|
| - FeedbackVectorSlot(properties_.feedback_slots()));
|
| - properties_.increase_feedback_slots(reqs.slots());
|
| - }
|
| - if (reqs.ic_slots() > 0) {
|
| - slot_node->SetFirstFeedbackICSlot(
|
| - FeedbackVectorICSlot(properties_.ic_feedback_slots()));
|
| - properties_.increase_ic_feedback_slots(reqs.ic_slots());
|
| - }
|
| - }
|
| -
|
| - AstProperties properties_;
|
| };
|
|
|
|
|
|
|