Index: runtime/vm/ast_transformer.cc |
diff --git a/runtime/vm/ast_transformer.cc b/runtime/vm/ast_transformer.cc |
index 11cb61cabb661db8f66a1726ff8b1e2bf130c74a..276c8d73dd081fb80f1d35c8abcec3ecff08400a 100644 |
--- a/runtime/vm/ast_transformer.cc |
+++ b/runtime/vm/ast_transformer.cc |
@@ -62,7 +62,7 @@ AstNode* AwaitTransformer::Transform(AstNode* expr) { |
LocalVariable* AwaitTransformer::EnsureCurrentTempVar() { |
- const char* await_temp_prefix = ":await_temp_var_"; |
+ const char* await_temp_prefix = Symbols::AwaitTempVarPrefix().ToCString(); |
hausner
2015/09/02 22:07:55
Does it make sense to define this string constant
regis
2015/09/03 01:28:03
Done.
srdjan
2015/09/03 01:50:47
This is problematic as it allocates a String in th
regis
2015/09/03 16:48:38
The previous version also allocates a new string,
|
const String& cnt_str = String::ZoneHandle( |
Z, String::NewFormatted("%s%d", await_temp_prefix, temp_cnt_)); |
const String& symbol = String::ZoneHandle(Z, Symbols::New(cnt_str)); |
@@ -136,8 +136,8 @@ void AwaitTransformer::VisitAwaitNode(AwaitNode* node) { |
AstNode* transformed_expr = Transform(node->expr()); |
LocalVariable* await_temp = AddToPreambleNewTempVar(transformed_expr); |
- AwaitMarkerNode* await_marker = new (Z) AwaitMarkerNode(); |
- await_marker->set_scope(preamble_->scope()); |
+ AwaitMarkerNode* await_marker = |
+ new (Z) AwaitMarkerNode(function_top_, node->scope()); |
preamble_->Add(await_marker); |
// :result_param = _awaitHelper( |