| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_AST_H_ | 5 #ifndef V8_AST_H_ |
| 6 #define V8_AST_H_ | 6 #define V8_AST_H_ |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
| (...skipping 1666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1677 return var()->IsUnallocated() || var()->IsLookupSlot(); | 1677 return var()->IsUnallocated() || var()->IsLookupSlot(); |
| 1678 } | 1678 } |
| 1679 | 1679 |
| 1680 virtual FeedbackVectorRequirements ComputeFeedbackRequirements( | 1680 virtual FeedbackVectorRequirements ComputeFeedbackRequirements( |
| 1681 Isolate* isolate, const ICSlotCache* cache) override; | 1681 Isolate* isolate, const ICSlotCache* cache) override; |
| 1682 | 1682 |
| 1683 void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot, | 1683 void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot, |
| 1684 ICSlotCache* cache) override; | 1684 ICSlotCache* cache) override; |
| 1685 Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; } | 1685 Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; } |
| 1686 FeedbackVectorICSlot VariableFeedbackSlot() { | 1686 FeedbackVectorICSlot VariableFeedbackSlot() { |
| 1687 DCHECK(!UsesVariableFeedbackSlot() || !variable_feedback_slot_.IsInvalid()); | |
| 1688 return variable_feedback_slot_; | 1687 return variable_feedback_slot_; |
| 1689 } | 1688 } |
| 1690 | 1689 |
| 1691 static int num_ids() { return parent_num_ids() + 1; } | 1690 static int num_ids() { return parent_num_ids() + 1; } |
| 1692 BailoutId BeforeId() const { return BailoutId(local_id(0)); } | 1691 BailoutId BeforeId() const { return BailoutId(local_id(0)); } |
| 1693 | 1692 |
| 1694 protected: | 1693 protected: |
| 1695 VariableProxy(Zone* zone, Variable* var, int start_position, | 1694 VariableProxy(Zone* zone, Variable* var, int start_position, |
| 1696 int end_position); | 1695 int end_position); |
| 1697 | 1696 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1785 } | 1784 } |
| 1786 void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot, | 1785 void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot, |
| 1787 ICSlotCache* cache) override { | 1786 ICSlotCache* cache) override { |
| 1788 property_feedback_slot_ = slot; | 1787 property_feedback_slot_ = slot; |
| 1789 } | 1788 } |
| 1790 Code::Kind FeedbackICSlotKind(int index) override { | 1789 Code::Kind FeedbackICSlotKind(int index) override { |
| 1791 return key()->IsPropertyName() ? Code::LOAD_IC : Code::KEYED_LOAD_IC; | 1790 return key()->IsPropertyName() ? Code::LOAD_IC : Code::KEYED_LOAD_IC; |
| 1792 } | 1791 } |
| 1793 | 1792 |
| 1794 FeedbackVectorICSlot PropertyFeedbackSlot() const { | 1793 FeedbackVectorICSlot PropertyFeedbackSlot() const { |
| 1795 DCHECK(!property_feedback_slot_.IsInvalid()); | |
| 1796 return property_feedback_slot_; | 1794 return property_feedback_slot_; |
| 1797 } | 1795 } |
| 1798 | 1796 |
| 1799 static LhsKind GetAssignType(Property* property) { | 1797 static LhsKind GetAssignType(Property* property) { |
| 1800 if (property == NULL) return VARIABLE; | 1798 if (property == NULL) return VARIABLE; |
| 1801 bool super_access = property->IsSuperAccess(); | 1799 bool super_access = property->IsSuperAccess(); |
| 1802 return (property->key()->IsPropertyName()) | 1800 return (property->key()->IsPropertyName()) |
| 1803 ? (super_access ? NAMED_SUPER_PROPERTY : NAMED_PROPERTY) | 1801 ? (super_access ? NAMED_SUPER_PROPERTY : NAMED_PROPERTY) |
| 1804 : (super_access ? KEYED_SUPER_PROPERTY : KEYED_PROPERTY); | 1802 : (super_access ? KEYED_SUPER_PROPERTY : KEYED_PROPERTY); |
| 1805 } | 1803 } |
| (...skipping 1821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3627 | 3625 |
| 3628 private: | 3626 private: |
| 3629 Zone* zone_; | 3627 Zone* zone_; |
| 3630 AstValueFactory* ast_value_factory_; | 3628 AstValueFactory* ast_value_factory_; |
| 3631 }; | 3629 }; |
| 3632 | 3630 |
| 3633 | 3631 |
| 3634 } } // namespace v8::internal | 3632 } } // namespace v8::internal |
| 3635 | 3633 |
| 3636 #endif // V8_AST_H_ | 3634 #endif // V8_AST_H_ |
| OLD | NEW |