| 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 1693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1704 virtual bool IsInlineable() const; | 1704 virtual bool IsInlineable() const; |
| 1705 | 1705 |
| 1706 private: | 1706 private: |
| 1707 Expression* exception_; | 1707 Expression* exception_; |
| 1708 int pos_; | 1708 int pos_; |
| 1709 }; | 1709 }; |
| 1710 | 1710 |
| 1711 | 1711 |
| 1712 class FunctionLiteral: public Expression { | 1712 class FunctionLiteral: public Expression { |
| 1713 public: | 1713 public: |
| 1714 enum Type { |
| 1715 ANONYMOUS_EXPRESSION, |
| 1716 NAMED_EXPRESSION, |
| 1717 DECLARATION |
| 1718 }; |
| 1719 |
| 1714 FunctionLiteral(Isolate* isolate, | 1720 FunctionLiteral(Isolate* isolate, |
| 1715 Handle<String> name, | 1721 Handle<String> name, |
| 1716 Scope* scope, | 1722 Scope* scope, |
| 1717 ZoneList<Statement*>* body, | 1723 ZoneList<Statement*>* body, |
| 1718 int materialized_literal_count, | 1724 int materialized_literal_count, |
| 1719 int expected_property_count, | 1725 int expected_property_count, |
| 1720 bool has_only_simple_this_property_assignments, | 1726 bool has_only_simple_this_property_assignments, |
| 1721 Handle<FixedArray> this_property_assignments, | 1727 Handle<FixedArray> this_property_assignments, |
| 1722 int num_parameters, | 1728 int num_parameters, |
| 1723 int start_position, | 1729 int start_position, |
| 1724 int end_position, | 1730 int end_position, |
| 1725 bool is_expression, | 1731 Type type, |
| 1726 bool has_duplicate_parameters) | 1732 bool has_duplicate_parameters) |
| 1727 : Expression(isolate), | 1733 : Expression(isolate), |
| 1728 name_(name), | 1734 name_(name), |
| 1729 scope_(scope), | 1735 scope_(scope), |
| 1730 body_(body), | 1736 body_(body), |
| 1731 materialized_literal_count_(materialized_literal_count), | 1737 materialized_literal_count_(materialized_literal_count), |
| 1732 expected_property_count_(expected_property_count), | 1738 expected_property_count_(expected_property_count), |
| 1733 has_only_simple_this_property_assignments_( | 1739 has_only_simple_this_property_assignments_( |
| 1734 has_only_simple_this_property_assignments), | 1740 has_only_simple_this_property_assignments), |
| 1735 this_property_assignments_(this_property_assignments), | 1741 this_property_assignments_(this_property_assignments), |
| 1736 num_parameters_(num_parameters), | 1742 num_parameters_(num_parameters), |
| 1737 start_position_(start_position), | 1743 start_position_(start_position), |
| 1738 end_position_(end_position), | 1744 end_position_(end_position), |
| 1739 function_token_position_(RelocInfo::kNoPosition), | 1745 function_token_position_(RelocInfo::kNoPosition), |
| 1740 inferred_name_(HEAP->empty_string()), | 1746 inferred_name_(HEAP->empty_string()), |
| 1741 is_expression_(is_expression), | 1747 is_expression_(type != DECLARATION), |
| 1748 is_anonymous_(type == ANONYMOUS_EXPRESSION), |
| 1742 pretenure_(false), | 1749 pretenure_(false), |
| 1743 has_duplicate_parameters_(has_duplicate_parameters) { | 1750 has_duplicate_parameters_(has_duplicate_parameters) { |
| 1744 } | 1751 } |
| 1745 | 1752 |
| 1746 DECLARE_NODE_TYPE(FunctionLiteral) | 1753 DECLARE_NODE_TYPE(FunctionLiteral) |
| 1747 | 1754 |
| 1748 Handle<String> name() const { return name_; } | 1755 Handle<String> name() const { return name_; } |
| 1749 Scope* scope() const { return scope_; } | 1756 Scope* scope() const { return scope_; } |
| 1750 ZoneList<Statement*>* body() const { return body_; } | 1757 ZoneList<Statement*>* body() const { return body_; } |
| 1751 void set_function_token_position(int pos) { function_token_position_ = pos; } | 1758 void set_function_token_position(int pos) { function_token_position_ = pos; } |
| 1752 int function_token_position() const { return function_token_position_; } | 1759 int function_token_position() const { return function_token_position_; } |
| 1753 int start_position() const { return start_position_; } | 1760 int start_position() const { return start_position_; } |
| 1754 int end_position() const { return end_position_; } | 1761 int end_position() const { return end_position_; } |
| 1755 bool is_expression() const { return is_expression_; } | 1762 bool is_expression() const { return is_expression_; } |
| 1763 bool is_anonymous() const { return is_anonymous_; } |
| 1756 bool strict_mode() const; | 1764 bool strict_mode() const; |
| 1757 | 1765 |
| 1758 int materialized_literal_count() { return materialized_literal_count_; } | 1766 int materialized_literal_count() { return materialized_literal_count_; } |
| 1759 int expected_property_count() { return expected_property_count_; } | 1767 int expected_property_count() { return expected_property_count_; } |
| 1760 bool has_only_simple_this_property_assignments() { | 1768 bool has_only_simple_this_property_assignments() { |
| 1761 return has_only_simple_this_property_assignments_; | 1769 return has_only_simple_this_property_assignments_; |
| 1762 } | 1770 } |
| 1763 Handle<FixedArray> this_property_assignments() { | 1771 Handle<FixedArray> this_property_assignments() { |
| 1764 return this_property_assignments_; | 1772 return this_property_assignments_; |
| 1765 } | 1773 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1790 int materialized_literal_count_; | 1798 int materialized_literal_count_; |
| 1791 int expected_property_count_; | 1799 int expected_property_count_; |
| 1792 bool has_only_simple_this_property_assignments_; | 1800 bool has_only_simple_this_property_assignments_; |
| 1793 Handle<FixedArray> this_property_assignments_; | 1801 Handle<FixedArray> this_property_assignments_; |
| 1794 int num_parameters_; | 1802 int num_parameters_; |
| 1795 int start_position_; | 1803 int start_position_; |
| 1796 int end_position_; | 1804 int end_position_; |
| 1797 int function_token_position_; | 1805 int function_token_position_; |
| 1798 Handle<String> inferred_name_; | 1806 Handle<String> inferred_name_; |
| 1799 bool is_expression_; | 1807 bool is_expression_; |
| 1808 bool is_anonymous_; |
| 1800 bool pretenure_; | 1809 bool pretenure_; |
| 1801 bool has_duplicate_parameters_; | 1810 bool has_duplicate_parameters_; |
| 1802 }; | 1811 }; |
| 1803 | 1812 |
| 1804 | 1813 |
| 1805 class SharedFunctionInfoLiteral: public Expression { | 1814 class SharedFunctionInfoLiteral: public Expression { |
| 1806 public: | 1815 public: |
| 1807 SharedFunctionInfoLiteral( | 1816 SharedFunctionInfoLiteral( |
| 1808 Isolate* isolate, | 1817 Isolate* isolate, |
| 1809 Handle<SharedFunctionInfo> shared_function_info) | 1818 Handle<SharedFunctionInfo> shared_function_info) |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2227 | 2236 |
| 2228 private: | 2237 private: |
| 2229 Isolate* isolate_; | 2238 Isolate* isolate_; |
| 2230 bool stack_overflow_; | 2239 bool stack_overflow_; |
| 2231 }; | 2240 }; |
| 2232 | 2241 |
| 2233 | 2242 |
| 2234 } } // namespace v8::internal | 2243 } } // namespace v8::internal |
| 2235 | 2244 |
| 2236 #endif // V8_AST_H_ | 2245 #endif // V8_AST_H_ |
| OLD | NEW |