Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: runtime/vm/ast_transformer.cc

Issue 878243002: Cleanup: use const reference for ParsedFunction where possible. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/ast_transformer.h ('k') | runtime/vm/block_scheduler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 #include "vm/ast_transformer.h" 5 #include "vm/ast_transformer.h"
6 6
7 #include "vm/object_store.h" 7 #include "vm/object_store.h"
8 #include "vm/parser.h" 8 #include "vm/parser.h"
9 #include "vm/thread.h" 9 #include "vm/thread.h"
10 10
(...skipping 27 matching lines...) Expand all
38 38
39 #define DEFINE_UNREACHABLE(BaseName) \ 39 #define DEFINE_UNREACHABLE(BaseName) \
40 void AwaitTransformer::Visit##BaseName##Node(BaseName##Node* node) { \ 40 void AwaitTransformer::Visit##BaseName##Node(BaseName##Node* node) { \
41 UNREACHABLE(); \ 41 UNREACHABLE(); \
42 } 42 }
43 43
44 FOR_EACH_UNREACHABLE_NODE(DEFINE_UNREACHABLE) 44 FOR_EACH_UNREACHABLE_NODE(DEFINE_UNREACHABLE)
45 #undef DEFINE_UNREACHABLE 45 #undef DEFINE_UNREACHABLE
46 46
47 AwaitTransformer::AwaitTransformer(SequenceNode* preamble, 47 AwaitTransformer::AwaitTransformer(SequenceNode* preamble,
48 ParsedFunction* const parsed_function, 48 const ParsedFunction& parsed_function,
49 LocalScope* function_top) 49 LocalScope* function_top)
50 : preamble_(preamble), 50 : preamble_(preamble),
51 temp_cnt_(0), 51 temp_cnt_(0),
52 parsed_function_(parsed_function), 52 parsed_function_(parsed_function),
53 function_top_(function_top), 53 function_top_(function_top),
54 thread_(Thread::Current()) { 54 thread_(Thread::Current()) {
55 ASSERT(function_top_ != NULL); 55 ASSERT(function_top_ != NULL);
56 } 56 }
57 57
58 58
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 Scanner::kNoSourcePos, 205 Scanner::kNoSourcePos,
206 async_catch_helper, 206 async_catch_helper,
207 catch_helper_args)); 207 catch_helper_args));
208 ReturnNode* continuation_return = new(Z) ReturnNode(Scanner::kNoSourcePos); 208 ReturnNode* continuation_return = new(Z) ReturnNode(Scanner::kNoSourcePos);
209 continuation_return->set_return_type(ReturnNode::kContinuationTarget); 209 continuation_return->set_return_type(ReturnNode::kContinuationTarget);
210 preamble_->Add(continuation_return); 210 preamble_->Add(continuation_return);
211 211
212 // If this expression is part of a try block, also append the code for 212 // If this expression is part of a try block, also append the code for
213 // restoring the saved try context that lives on the stack. 213 // restoring the saved try context that lives on the stack.
214 const String& async_saved_try_ctx_name = 214 const String& async_saved_try_ctx_name =
215 String::Handle(Z, parsed_function_->async_saved_try_ctx_name()); 215 String::Handle(Z, parsed_function_.async_saved_try_ctx_name());
216 if (!async_saved_try_ctx_name.IsNull()) { 216 if (!async_saved_try_ctx_name.IsNull()) {
217 LocalVariable* async_saved_try_ctx = 217 LocalVariable* async_saved_try_ctx =
218 GetVariableInScope(preamble_->scope(), async_saved_try_ctx_name); 218 GetVariableInScope(preamble_->scope(), async_saved_try_ctx_name);
219 preamble_->Add(new (Z) StoreLocalNode( 219 preamble_->Add(new (Z) StoreLocalNode(
220 Scanner::kNoSourcePos, 220 Scanner::kNoSourcePos,
221 parsed_function_->saved_try_ctx(), 221 parsed_function_.saved_try_ctx(),
222 new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_saved_try_ctx))); 222 new (Z) LoadLocalNode(Scanner::kNoSourcePos, async_saved_try_ctx)));
223 } 223 }
224 224
225 LoadLocalNode* load_error_param = new (Z) LoadLocalNode( 225 LoadLocalNode* load_error_param = new (Z) LoadLocalNode(
226 Scanner::kNoSourcePos, error_param); 226 Scanner::kNoSourcePos, error_param);
227 SequenceNode* error_ne_null_branch = new (Z) SequenceNode( 227 SequenceNode* error_ne_null_branch = new (Z) SequenceNode(
228 Scanner::kNoSourcePos, ChainNewScope(preamble_->scope())); 228 Scanner::kNoSourcePos, ChainNewScope(preamble_->scope()));
229 error_ne_null_branch->Add(new (Z) ThrowNode( 229 error_ne_null_branch->Add(new (Z) ThrowNode(
230 Scanner::kNoSourcePos, 230 Scanner::kNoSourcePos,
231 load_error_param, 231 load_error_param,
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 void AwaitTransformer::VisitThrowNode(ThrowNode* node) { 595 void AwaitTransformer::VisitThrowNode(ThrowNode* node) {
596 // TODO(mlippautz): Check if relevant. 596 // TODO(mlippautz): Check if relevant.
597 AstNode* new_exception = Transform(node->exception()); 597 AstNode* new_exception = Transform(node->exception());
598 AstNode* new_stacktrace = Transform(node->stacktrace()); 598 AstNode* new_stacktrace = Transform(node->stacktrace());
599 result_ = new(Z) ThrowNode(node->token_pos(), 599 result_ = new(Z) ThrowNode(node->token_pos(),
600 new_exception, 600 new_exception,
601 new_stacktrace); 601 new_stacktrace);
602 } 602 }
603 603
604 } // namespace dart 604 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/ast_transformer.h ('k') | runtime/vm/block_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698