| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 class AstNode: public ZoneObject { | 126 class AstNode: public ZoneObject { |
| 127 public: | 127 public: |
| 128 #define DECLARE_TYPE_ENUM(type) k##type, | 128 #define DECLARE_TYPE_ENUM(type) k##type, |
| 129 enum Type { | 129 enum Type { |
| 130 AST_NODE_LIST(DECLARE_TYPE_ENUM) | 130 AST_NODE_LIST(DECLARE_TYPE_ENUM) |
| 131 kInvalid = -1 | 131 kInvalid = -1 |
| 132 }; | 132 }; |
| 133 #undef DECLARE_TYPE_ENUM | 133 #undef DECLARE_TYPE_ENUM |
| 134 | 134 |
| 135 static const int kNoNumber = -1; | 135 static const int kNoNumber = -1; |
| 136 static const int kFunctionEntryId = 2; // Using 0 could disguise errors. |
| 136 | 137 |
| 137 AstNode() : id_(GetNextId()) { | 138 AstNode() : id_(GetNextId()) { |
| 138 Isolate* isolate = Isolate::Current(); | 139 Isolate* isolate = Isolate::Current(); |
| 139 isolate->set_ast_node_count(isolate->ast_node_count() + 1); | 140 isolate->set_ast_node_count(isolate->ast_node_count() + 1); |
| 140 } | 141 } |
| 141 | 142 |
| 142 virtual ~AstNode() { } | 143 virtual ~AstNode() { } |
| 143 | 144 |
| 144 virtual void Accept(AstVisitor* v) = 0; | 145 virtual void Accept(AstVisitor* v) = 0; |
| 145 virtual Type node_type() const { return kInvalid; } | 146 virtual Type node_type() const { return kInvalid; } |
| (...skipping 1573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1719 FunctionLiteral(Handle<String> name, | 1720 FunctionLiteral(Handle<String> name, |
| 1720 Scope* scope, | 1721 Scope* scope, |
| 1721 ZoneList<Statement*>* body, | 1722 ZoneList<Statement*>* body, |
| 1722 int materialized_literal_count, | 1723 int materialized_literal_count, |
| 1723 int expected_property_count, | 1724 int expected_property_count, |
| 1724 bool has_only_simple_this_property_assignments, | 1725 bool has_only_simple_this_property_assignments, |
| 1725 Handle<FixedArray> this_property_assignments, | 1726 Handle<FixedArray> this_property_assignments, |
| 1726 int num_parameters, | 1727 int num_parameters, |
| 1727 int start_position, | 1728 int start_position, |
| 1728 int end_position, | 1729 int end_position, |
| 1729 bool is_expression, | 1730 bool is_expression) |
| 1730 bool contains_loops) | |
| 1731 : name_(name), | 1731 : name_(name), |
| 1732 scope_(scope), | 1732 scope_(scope), |
| 1733 body_(body), | 1733 body_(body), |
| 1734 materialized_literal_count_(materialized_literal_count), | 1734 materialized_literal_count_(materialized_literal_count), |
| 1735 expected_property_count_(expected_property_count), | 1735 expected_property_count_(expected_property_count), |
| 1736 has_only_simple_this_property_assignments_( | 1736 has_only_simple_this_property_assignments_( |
| 1737 has_only_simple_this_property_assignments), | 1737 has_only_simple_this_property_assignments), |
| 1738 this_property_assignments_(this_property_assignments), | 1738 this_property_assignments_(this_property_assignments), |
| 1739 num_parameters_(num_parameters), | 1739 num_parameters_(num_parameters), |
| 1740 start_position_(start_position), | 1740 start_position_(start_position), |
| 1741 end_position_(end_position), | 1741 end_position_(end_position), |
| 1742 is_expression_(is_expression), | 1742 is_expression_(is_expression), |
| 1743 contains_loops_(contains_loops), | |
| 1744 function_token_position_(RelocInfo::kNoPosition), | 1743 function_token_position_(RelocInfo::kNoPosition), |
| 1745 inferred_name_(HEAP->empty_string()), | 1744 inferred_name_(HEAP->empty_string()), |
| 1746 pretenure_(false) { } | 1745 pretenure_(false) { } |
| 1747 | 1746 |
| 1748 DECLARE_NODE_TYPE(FunctionLiteral) | 1747 DECLARE_NODE_TYPE(FunctionLiteral) |
| 1749 | 1748 |
| 1750 Handle<String> name() const { return name_; } | 1749 Handle<String> name() const { return name_; } |
| 1751 Scope* scope() const { return scope_; } | 1750 Scope* scope() const { return scope_; } |
| 1752 ZoneList<Statement*>* body() const { return body_; } | 1751 ZoneList<Statement*>* body() const { return body_; } |
| 1753 void set_function_token_position(int pos) { function_token_position_ = pos; } | 1752 void set_function_token_position(int pos) { function_token_position_ = pos; } |
| 1754 int function_token_position() const { return function_token_position_; } | 1753 int function_token_position() const { return function_token_position_; } |
| 1755 int start_position() const { return start_position_; } | 1754 int start_position() const { return start_position_; } |
| 1756 int end_position() const { return end_position_; } | 1755 int end_position() const { return end_position_; } |
| 1757 bool is_expression() const { return is_expression_; } | 1756 bool is_expression() const { return is_expression_; } |
| 1758 bool contains_loops() const { return contains_loops_; } | |
| 1759 bool strict_mode() const; | 1757 bool strict_mode() const; |
| 1760 | 1758 |
| 1761 int materialized_literal_count() { return materialized_literal_count_; } | 1759 int materialized_literal_count() { return materialized_literal_count_; } |
| 1762 int expected_property_count() { return expected_property_count_; } | 1760 int expected_property_count() { return expected_property_count_; } |
| 1763 bool has_only_simple_this_property_assignments() { | 1761 bool has_only_simple_this_property_assignments() { |
| 1764 return has_only_simple_this_property_assignments_; | 1762 return has_only_simple_this_property_assignments_; |
| 1765 } | 1763 } |
| 1766 Handle<FixedArray> this_property_assignments() { | 1764 Handle<FixedArray> this_property_assignments() { |
| 1767 return this_property_assignments_; | 1765 return this_property_assignments_; |
| 1768 } | 1766 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1788 Scope* scope_; | 1786 Scope* scope_; |
| 1789 ZoneList<Statement*>* body_; | 1787 ZoneList<Statement*>* body_; |
| 1790 int materialized_literal_count_; | 1788 int materialized_literal_count_; |
| 1791 int expected_property_count_; | 1789 int expected_property_count_; |
| 1792 bool has_only_simple_this_property_assignments_; | 1790 bool has_only_simple_this_property_assignments_; |
| 1793 Handle<FixedArray> this_property_assignments_; | 1791 Handle<FixedArray> this_property_assignments_; |
| 1794 int num_parameters_; | 1792 int num_parameters_; |
| 1795 int start_position_; | 1793 int start_position_; |
| 1796 int end_position_; | 1794 int end_position_; |
| 1797 bool is_expression_; | 1795 bool is_expression_; |
| 1798 bool contains_loops_; | |
| 1799 bool strict_mode_; | 1796 bool strict_mode_; |
| 1800 int function_token_position_; | 1797 int function_token_position_; |
| 1801 Handle<String> inferred_name_; | 1798 Handle<String> inferred_name_; |
| 1802 bool pretenure_; | 1799 bool pretenure_; |
| 1803 }; | 1800 }; |
| 1804 | 1801 |
| 1805 | 1802 |
| 1806 class SharedFunctionInfoLiteral: public Expression { | 1803 class SharedFunctionInfoLiteral: public Expression { |
| 1807 public: | 1804 public: |
| 1808 explicit SharedFunctionInfoLiteral( | 1805 explicit SharedFunctionInfoLiteral( |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2220 | 2217 |
| 2221 private: | 2218 private: |
| 2222 Isolate* isolate_; | 2219 Isolate* isolate_; |
| 2223 bool stack_overflow_; | 2220 bool stack_overflow_; |
| 2224 }; | 2221 }; |
| 2225 | 2222 |
| 2226 | 2223 |
| 2227 } } // namespace v8::internal | 2224 } } // namespace v8::internal |
| 2228 | 2225 |
| 2229 #endif // V8_AST_H_ | 2226 #endif // V8_AST_H_ |
| OLD | NEW |