OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_AST_H_ | 5 #ifndef VM_AST_H_ |
6 #define VM_AST_H_ | 6 #define VM_AST_H_ |
7 | 7 |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/allocation.h" | 9 #include "vm/allocation.h" |
10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 private: | 154 private: |
155 const intptr_t token_pos_; | 155 const intptr_t token_pos_; |
156 DISALLOW_COPY_AND_ASSIGN(AstNode); | 156 DISALLOW_COPY_AND_ASSIGN(AstNode); |
157 }; | 157 }; |
158 | 158 |
159 | 159 |
160 class AwaitNode : public AstNode { | 160 class AwaitNode : public AstNode { |
161 public: | 161 public: |
162 AwaitNode(intptr_t token_pos, | 162 AwaitNode(intptr_t token_pos, |
163 AstNode* expr, | 163 AstNode* expr, |
164 LocalScope* try_scope, | 164 LocalVariable* saved_try_ctx, |
165 int16_t try_index, | 165 LocalVariable* async_saved_try_ctx, |
166 LocalScope* outer_try_scope, | 166 LocalVariable* outer_saved_try_ctx, |
167 intptr_t outer_try_index) | 167 LocalVariable* outer_async_saved_try_ctx) |
168 : AstNode(token_pos), | 168 : AstNode(token_pos), |
169 expr_(expr), | 169 expr_(expr), |
170 try_scope_(try_scope), | 170 saved_try_ctx_(saved_try_ctx), |
171 try_index_(try_index), | 171 async_saved_try_ctx_(async_saved_try_ctx), |
172 outer_try_scope_(outer_try_scope), | 172 outer_saved_try_ctx_(outer_saved_try_ctx), |
173 outer_try_index_(outer_try_index) { } | 173 outer_async_saved_try_ctx_(outer_async_saved_try_ctx) { } |
174 | 174 |
175 void VisitChildren(AstNodeVisitor* visitor) const { | 175 void VisitChildren(AstNodeVisitor* visitor) const { |
176 expr_->Visit(visitor); | 176 expr_->Visit(visitor); |
177 } | 177 } |
178 | 178 |
179 AstNode* expr() const { return expr_; } | 179 AstNode* expr() const { return expr_; } |
180 LocalScope* try_scope() const { return try_scope_; } | 180 LocalVariable* saved_try_ctx() const { return saved_try_ctx_; } |
181 int16_t try_index() const { return try_index_; } | 181 LocalVariable* async_saved_try_ctx() const { return async_saved_try_ctx_; } |
182 LocalScope* outer_try_scope() const { return outer_try_scope_; } | 182 LocalVariable* outer_saved_try_ctx() const { return outer_saved_try_ctx_; } |
183 int16_t outer_try_index() const { return outer_try_index_; } | 183 LocalVariable* outer_async_saved_try_ctx() const { |
| 184 return outer_async_saved_try_ctx_; |
| 185 } |
184 | 186 |
185 DECLARE_COMMON_NODE_FUNCTIONS(AwaitNode); | 187 DECLARE_COMMON_NODE_FUNCTIONS(AwaitNode); |
186 | 188 |
187 private: | 189 private: |
188 AstNode* expr_; | 190 AstNode* expr_; |
189 LocalScope* try_scope_; | 191 LocalVariable* saved_try_ctx_; |
190 int16_t try_index_; | 192 LocalVariable* async_saved_try_ctx_; |
191 LocalScope* outer_try_scope_; | 193 LocalVariable* outer_saved_try_ctx_; |
192 int16_t outer_try_index_; | 194 LocalVariable* outer_async_saved_try_ctx_; |
193 | 195 |
194 DISALLOW_COPY_AND_ASSIGN(AwaitNode); | 196 DISALLOW_COPY_AND_ASSIGN(AwaitNode); |
195 }; | 197 }; |
196 | 198 |
197 | 199 |
198 // AwaitMarker nodes are used to generate markers that the FlowGraphBuilder | 200 // AwaitMarker nodes are used to generate markers that the FlowGraphBuilder |
199 // relies on. A marker indicates that a new await state needs to be | 201 // relies on. A marker indicates that a new await state needs to be |
200 // added to a function preamble. This type also triggers storing of the | 202 // added to a function preamble. This type also triggers storing of the |
201 // current context. | 203 // current context. |
202 // | 204 // |
(...skipping 1742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1945 const intptr_t try_index_; | 1947 const intptr_t try_index_; |
1946 | 1948 |
1947 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); | 1949 DISALLOW_IMPLICIT_CONSTRUCTORS(InlinedFinallyNode); |
1948 }; | 1950 }; |
1949 | 1951 |
1950 } // namespace dart | 1952 } // namespace dart |
1951 | 1953 |
1952 #undef DECLARE_COMMON_NODE_FUNCTIONS | 1954 #undef DECLARE_COMMON_NODE_FUNCTIONS |
1953 | 1955 |
1954 #endif // VM_AST_H_ | 1956 #endif // VM_AST_H_ |
OLD | NEW |