OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 V(DoWhileStatement) \ | 66 V(DoWhileStatement) \ |
67 V(WhileStatement) \ | 67 V(WhileStatement) \ |
68 V(ForStatement) \ | 68 V(ForStatement) \ |
69 V(ForInStatement) \ | 69 V(ForInStatement) \ |
70 V(TryCatchStatement) \ | 70 V(TryCatchStatement) \ |
71 V(TryFinallyStatement) \ | 71 V(TryFinallyStatement) \ |
72 V(DebuggerStatement) | 72 V(DebuggerStatement) |
73 | 73 |
74 #define EXPRESSION_NODE_LIST(V) \ | 74 #define EXPRESSION_NODE_LIST(V) \ |
75 V(FunctionLiteral) \ | 75 V(FunctionLiteral) \ |
76 V(FunctionBoilerplateLiteral) \ | 76 V(SharedFunctionInfoLiteral) \ |
77 V(Conditional) \ | 77 V(Conditional) \ |
78 V(Slot) \ | 78 V(Slot) \ |
79 V(VariableProxy) \ | 79 V(VariableProxy) \ |
80 V(Literal) \ | 80 V(Literal) \ |
81 V(RegExpLiteral) \ | 81 V(RegExpLiteral) \ |
82 V(ObjectLiteral) \ | 82 V(ObjectLiteral) \ |
83 V(ArrayLiteral) \ | 83 V(ArrayLiteral) \ |
84 V(CatchExtensionObject) \ | 84 V(CatchExtensionObject) \ |
85 V(Assignment) \ | 85 V(Assignment) \ |
86 V(Throw) \ | 86 V(Throw) \ |
(...skipping 1552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1639 bool is_expression_; | 1639 bool is_expression_; |
1640 int function_token_position_; | 1640 int function_token_position_; |
1641 Handle<String> inferred_name_; | 1641 Handle<String> inferred_name_; |
1642 bool try_full_codegen_; | 1642 bool try_full_codegen_; |
1643 #ifdef DEBUG | 1643 #ifdef DEBUG |
1644 bool already_compiled_; | 1644 bool already_compiled_; |
1645 #endif | 1645 #endif |
1646 }; | 1646 }; |
1647 | 1647 |
1648 | 1648 |
1649 class FunctionBoilerplateLiteral: public Expression { | 1649 class SharedFunctionInfoLiteral: public Expression { |
1650 public: | 1650 public: |
1651 explicit FunctionBoilerplateLiteral(Handle<JSFunction> boilerplate) | 1651 explicit SharedFunctionInfoLiteral( |
1652 : boilerplate_(boilerplate) { | 1652 Handle<SharedFunctionInfo> shared_function_info) |
1653 ASSERT(boilerplate->IsBoilerplate()); | 1653 : shared_function_info_(shared_function_info) { } |
| 1654 |
| 1655 Handle<SharedFunctionInfo> shared_function_info() const { |
| 1656 return shared_function_info_; |
1654 } | 1657 } |
1655 | 1658 |
1656 Handle<JSFunction> boilerplate() const { return boilerplate_; } | |
1657 | |
1658 virtual bool IsLeaf() { return true; } | 1659 virtual bool IsLeaf() { return true; } |
1659 | 1660 |
1660 virtual void Accept(AstVisitor* v); | 1661 virtual void Accept(AstVisitor* v); |
1661 | 1662 |
1662 virtual bool IsPrimitive(); | 1663 virtual bool IsPrimitive(); |
1663 | 1664 |
1664 private: | 1665 private: |
1665 Handle<JSFunction> boilerplate_; | 1666 Handle<SharedFunctionInfo> shared_function_info_; |
1666 }; | 1667 }; |
1667 | 1668 |
1668 | 1669 |
1669 class ThisFunction: public Expression { | 1670 class ThisFunction: public Expression { |
1670 public: | 1671 public: |
1671 virtual void Accept(AstVisitor* v); | 1672 virtual void Accept(AstVisitor* v); |
1672 virtual bool IsLeaf() { return true; } | 1673 virtual bool IsLeaf() { return true; } |
1673 virtual bool IsPrimitive(); | 1674 virtual bool IsPrimitive(); |
1674 }; | 1675 }; |
1675 | 1676 |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2083 | 2084 |
2084 // Holds the result of copying an expression. | 2085 // Holds the result of copying an expression. |
2085 Expression* expr_; | 2086 Expression* expr_; |
2086 // Holds the result of copying a statement. | 2087 // Holds the result of copying a statement. |
2087 Statement* stmt_; | 2088 Statement* stmt_; |
2088 }; | 2089 }; |
2089 | 2090 |
2090 } } // namespace v8::internal | 2091 } } // namespace v8::internal |
2091 | 2092 |
2092 #endif // V8_AST_H_ | 2093 #endif // V8_AST_H_ |
OLD | NEW |