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 2610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2621 Handle<String> name() const { return raw_name_->string(); } | 2621 Handle<String> name() const { return raw_name_->string(); } |
2622 const AstRawString* raw_name() const { return raw_name_; } | 2622 const AstRawString* raw_name() const { return raw_name_; } |
2623 Scope* scope() const { return scope_; } | 2623 Scope* scope() const { return scope_; } |
2624 VariableProxy* class_variable_proxy() const { return class_variable_proxy_; } | 2624 VariableProxy* class_variable_proxy() const { return class_variable_proxy_; } |
2625 Expression* extends() const { return extends_; } | 2625 Expression* extends() const { return extends_; } |
2626 Expression* constructor() const { return constructor_; } | 2626 Expression* constructor() const { return constructor_; } |
2627 ZoneList<Property*>* properties() const { return properties_; } | 2627 ZoneList<Property*>* properties() const { return properties_; } |
2628 int start_position() const { return position(); } | 2628 int start_position() const { return position(); } |
2629 int end_position() const { return end_position_; } | 2629 int end_position() const { return end_position_; } |
2630 | 2630 |
| 2631 static int num_ids() { return parent_num_ids() + 3; } |
| 2632 BailoutId EntryId() const { return BailoutId(local_id(0)); } |
| 2633 BailoutId DeclsId() const { return BailoutId(local_id(1)); } |
| 2634 BailoutId ExitId() { return BailoutId(local_id(2)); } |
| 2635 |
2631 protected: | 2636 protected: |
2632 ClassLiteral(Zone* zone, const AstRawString* name, Scope* scope, | 2637 ClassLiteral(Zone* zone, const AstRawString* name, Scope* scope, |
2633 VariableProxy* class_variable_proxy, Expression* extends, | 2638 VariableProxy* class_variable_proxy, Expression* extends, |
2634 Expression* constructor, ZoneList<Property*>* properties, | 2639 Expression* constructor, ZoneList<Property*>* properties, |
2635 int start_position, int end_position) | 2640 int start_position, int end_position) |
2636 : Expression(zone, start_position), | 2641 : Expression(zone, start_position), |
2637 raw_name_(name), | 2642 raw_name_(name), |
2638 scope_(scope), | 2643 scope_(scope), |
2639 class_variable_proxy_(class_variable_proxy), | 2644 class_variable_proxy_(class_variable_proxy), |
2640 extends_(extends), | 2645 extends_(extends), |
2641 constructor_(constructor), | 2646 constructor_(constructor), |
2642 properties_(properties), | 2647 properties_(properties), |
2643 end_position_(end_position) {} | 2648 end_position_(end_position) {} |
| 2649 static int parent_num_ids() { return Expression::num_ids(); } |
2644 | 2650 |
2645 private: | 2651 private: |
| 2652 int local_id(int n) const { return base_id() + parent_num_ids() + n; } |
| 2653 |
2646 const AstRawString* raw_name_; | 2654 const AstRawString* raw_name_; |
2647 Scope* scope_; | 2655 Scope* scope_; |
2648 VariableProxy* class_variable_proxy_; | 2656 VariableProxy* class_variable_proxy_; |
2649 Expression* extends_; | 2657 Expression* extends_; |
2650 Expression* constructor_; | 2658 Expression* constructor_; |
2651 ZoneList<Property*>* properties_; | 2659 ZoneList<Property*>* properties_; |
2652 int end_position_; | 2660 int end_position_; |
2653 }; | 2661 }; |
2654 | 2662 |
2655 | 2663 |
(...skipping 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3516 | 3524 |
3517 private: | 3525 private: |
3518 Zone* zone_; | 3526 Zone* zone_; |
3519 AstValueFactory* ast_value_factory_; | 3527 AstValueFactory* ast_value_factory_; |
3520 }; | 3528 }; |
3521 | 3529 |
3522 | 3530 |
3523 } } // namespace v8::internal | 3531 } } // namespace v8::internal |
3524 | 3532 |
3525 #endif // V8_AST_H_ | 3533 #endif // V8_AST_H_ |
OLD | NEW |