| 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/assembler.h" | 8 #include "src/assembler.h" |
| 9 #include "src/ast-value-factory.h" | 9 #include "src/ast-value-factory.h" |
| 10 #include "src/bailout-reason.h" | 10 #include "src/bailout-reason.h" |
| (...skipping 1964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1975 class CallNew final : public Expression { | 1975 class CallNew final : public Expression { |
| 1976 public: | 1976 public: |
| 1977 DECLARE_NODE_TYPE(CallNew) | 1977 DECLARE_NODE_TYPE(CallNew) |
| 1978 | 1978 |
| 1979 Expression* expression() const { return expression_; } | 1979 Expression* expression() const { return expression_; } |
| 1980 ZoneList<Expression*>* arguments() const { return arguments_; } | 1980 ZoneList<Expression*>* arguments() const { return arguments_; } |
| 1981 | 1981 |
| 1982 // Type feedback information. | 1982 // Type feedback information. |
| 1983 virtual FeedbackVectorRequirements ComputeFeedbackRequirements( | 1983 virtual FeedbackVectorRequirements ComputeFeedbackRequirements( |
| 1984 Isolate* isolate, const ICSlotCache* cache) override { | 1984 Isolate* isolate, const ICSlotCache* cache) override { |
| 1985 return FeedbackVectorRequirements(FLAG_pretenuring_call_new ? 2 : 1, 0); | 1985 return FeedbackVectorRequirements(1, 0); |
| 1986 } | 1986 } |
| 1987 void SetFirstFeedbackSlot(FeedbackVectorSlot slot) override { | 1987 void SetFirstFeedbackSlot(FeedbackVectorSlot slot) override { |
| 1988 callnew_feedback_slot_ = slot; | 1988 callnew_feedback_slot_ = slot; |
| 1989 } | 1989 } |
| 1990 | 1990 |
| 1991 FeedbackVectorSlot CallNewFeedbackSlot() { | 1991 FeedbackVectorSlot CallNewFeedbackSlot() { |
| 1992 DCHECK(!callnew_feedback_slot_.IsInvalid()); | 1992 DCHECK(!callnew_feedback_slot_.IsInvalid()); |
| 1993 return callnew_feedback_slot_; | 1993 return callnew_feedback_slot_; |
| 1994 } | 1994 } |
| 1995 FeedbackVectorSlot AllocationSiteFeedbackSlot() { | |
| 1996 DCHECK(FLAG_pretenuring_call_new); | |
| 1997 return CallNewFeedbackSlot().next(); | |
| 1998 } | |
| 1999 | 1995 |
| 2000 bool IsMonomorphic() override { return is_monomorphic_; } | 1996 bool IsMonomorphic() override { return is_monomorphic_; } |
| 2001 Handle<JSFunction> target() const { return target_; } | 1997 Handle<JSFunction> target() const { return target_; } |
| 2002 Handle<AllocationSite> allocation_site() const { | 1998 Handle<AllocationSite> allocation_site() const { |
| 2003 return allocation_site_; | 1999 return allocation_site_; |
| 2004 } | 2000 } |
| 2005 | 2001 |
| 2006 static int num_ids() { return parent_num_ids() + 1; } | 2002 static int num_ids() { return parent_num_ids() + 1; } |
| 2007 static int feedback_slots() { return 1; } | 2003 static int feedback_slots() { return 1; } |
| 2008 BailoutId ReturnId() const { return BailoutId(local_id(0)); } | 2004 BailoutId ReturnId() const { return BailoutId(local_id(0)); } |
| (...skipping 1694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3703 // ZoneObjects which need to persist until scope analysis must be allocated in | 3699 // ZoneObjects which need to persist until scope analysis must be allocated in |
| 3704 // the parser-level zone. | 3700 // the parser-level zone. |
| 3705 Zone* parser_zone_; | 3701 Zone* parser_zone_; |
| 3706 AstValueFactory* ast_value_factory_; | 3702 AstValueFactory* ast_value_factory_; |
| 3707 }; | 3703 }; |
| 3708 | 3704 |
| 3709 | 3705 |
| 3710 } } // namespace v8::internal | 3706 } } // namespace v8::internal |
| 3711 | 3707 |
| 3712 #endif // V8_AST_H_ | 3708 #endif // V8_AST_H_ |
| OLD | NEW |