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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/tree/unparser.dart

Issue 675113002: Support async/await in the dart2js frontend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments Created 6 years, 1 month 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
OLDNEW
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 part of tree; 5 part of tree;
6 6
7 String unparse(Node node, {minify: true}) { 7 String unparse(Node node, {minify: true}) {
8 Unparser unparser = new Unparser(minify: minify); 8 Unparser unparser = new Unparser(minify: minify);
9 unparser.unparse(node); 9 unparser.unparse(node);
10 return unparser.result; 10 return unparser.result;
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 // TODO(ahe): Remove special case for negate. 210 // TODO(ahe): Remove special case for negate.
211 write(' '); 211 write(' ');
212 } 212 }
213 } 213 }
214 visit(send.selector); 214 visit(send.selector);
215 } else { 215 } else {
216 visit(name); 216 visit(name);
217 } 217 }
218 } 218 }
219 219
220 visitAsyncModifier(AsyncModifier node) {
221 write(node.asyncToken.value);
222 if (node.starToken != null) {
223 write(node.starToken.value);
224 }
225 }
226
220 visitFunctionExpression(FunctionExpression node) { 227 visitFunctionExpression(FunctionExpression node) {
221 if (!node.modifiers.nodes.isEmpty) { 228 if (!node.modifiers.nodes.isEmpty) {
222 visit(node.modifiers); 229 visit(node.modifiers);
223 write(' '); 230 write(' ');
224 } 231 }
225 if (node.returnType != null && !stripTypes) { 232 if (node.returnType != null && !stripTypes) {
226 visit(node.returnType); 233 visit(node.returnType);
227 write(' '); 234 write(' ');
228 } 235 }
229 if (node.getOrSet != null) { 236 if (node.getOrSet != null) {
230 write(node.getOrSet.value); 237 write(node.getOrSet.value);
231 write(' '); 238 write(' ');
232 } 239 }
233 unparseFunctionName(node.name); 240 unparseFunctionName(node.name);
234 visit(node.parameters); 241 visit(node.parameters);
235 if (node.initializers != null) { 242 if (node.initializers != null) {
236 space(); 243 space();
237 write(':'); 244 write(':');
238 space(); 245 space();
239 unparseNodeListFrom(node.initializers, node.initializers.nodes, 246 unparseNodeListFrom(node.initializers, node.initializers.nodes,
240 spaces: true); 247 spaces: true);
241 } 248 }
249 visit(node.asyncModifier);
242 if (node.body != null && node.body is! EmptyStatement) space(); 250 if (node.body != null && node.body is! EmptyStatement) space();
243 visit(node.body); 251 visit(node.body);
244 } 252 }
245 253
246 visitIdentifier(Identifier node) { 254 visitIdentifier(Identifier node) {
247 write(node.token.value); 255 write(node.token.value);
248 } 256 }
249 257
250 visitIf(If node) { 258 visitIf(If node) {
251 write(node.ifToken.value); 259 write(node.ifToken.value);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 visitReturn(Return node) { 379 visitReturn(Return node) {
372 write(node.beginToken.value); 380 write(node.beginToken.value);
373 if (node.hasExpression && node.beginToken.stringValue != '=>') { 381 if (node.hasExpression && node.beginToken.stringValue != '=>') {
374 write(' '); 382 write(' ');
375 } 383 }
376 if (node.beginToken.stringValue == '=>') space(); 384 if (node.beginToken.stringValue == '=>') space();
377 visit(node.expression); 385 visit(node.expression);
378 if (node.endToken != null) write(node.endToken.value); 386 if (node.endToken != null) write(node.endToken.value);
379 } 387 }
380 388
389 visitYield(Yield node) {
390 write(node.yieldToken);
391 write(node.starToken);
392 space();
393 visit(node.expression);
394 write(node.endToken);
395 }
396
397
381 unparseSendReceiver(Send node, {bool spacesNeeded: false}) { 398 unparseSendReceiver(Send node, {bool spacesNeeded: false}) {
382 if (node.receiver == null) return; 399 if (node.receiver == null) return;
383 visit(node.receiver); 400 visit(node.receiver);
384 CascadeReceiver asCascadeReceiver = node.receiver.asCascadeReceiver(); 401 CascadeReceiver asCascadeReceiver = node.receiver.asCascadeReceiver();
385 if (asCascadeReceiver != null) { 402 if (asCascadeReceiver != null) {
386 newline(); 403 newline();
387 indentMore(); 404 indentMore();
388 indentMore(); 405 indentMore();
389 write(asCascadeReceiver.cascadeOperator.value); 406 write(asCascadeReceiver.cascadeOperator.value);
390 indentLess(); 407 indentLess();
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 visit(node.argumentsNode); 498 visit(node.argumentsNode);
482 } 499 }
483 } 500 }
484 501
485 visitThrow(Throw node) { 502 visitThrow(Throw node) {
486 write(node.throwToken.value); 503 write(node.throwToken.value);
487 write(' '); 504 write(' ');
488 visit(node.expression); 505 visit(node.expression);
489 } 506 }
490 507
508 visitAwait(Await node) {
509 write(node.awaitToken.value);
510 write(' ');
511 visit(node.expression);
512 }
513
491 visitTypeAnnotation(TypeAnnotation node) { 514 visitTypeAnnotation(TypeAnnotation node) {
492 visit(node.typeName); 515 visit(node.typeName);
493 visit(node.typeArguments); 516 visit(node.typeArguments);
494 } 517 }
495 518
496 visitTypeVariable(TypeVariable node) { 519 visitTypeVariable(TypeVariable node) {
497 visit(node.name); 520 visit(node.name);
498 if (node.bound != null) { 521 if (node.bound != null) {
499 write(' extends '); 522 write(' extends ');
500 visit(node.bound); 523 visit(node.bound);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 598
576 visitBreakStatement(BreakStatement node) { 599 visitBreakStatement(BreakStatement node) {
577 visitGotoStatement(node); 600 visitGotoStatement(node);
578 } 601 }
579 602
580 visitContinueStatement(ContinueStatement node) { 603 visitContinueStatement(ContinueStatement node) {
581 visitGotoStatement(node); 604 visitGotoStatement(node);
582 } 605 }
583 606
584 visitForIn(ForIn node) { 607 visitForIn(ForIn node) {
608 if (node.awaitToken != null) {
609 write(node.awaitToken.value);
610 write(' ');
611 }
585 write(node.forToken.value); 612 write(node.forToken.value);
586 space(); 613 space();
587 write('('); 614 write('(');
588 visit(node.declaredIdentifier); 615 visit(node.declaredIdentifier);
589 write(' '); 616 write(' ');
590 addToken(node.inToken); 617 addToken(node.inToken);
591 visit(node.expression); 618 visit(node.expression);
592 write(')'); 619 write(')');
593 space(); 620 space();
594 visit(node.body); 621 visit(node.body);
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 } 821 }
795 822
796 visitStatement(Statement node) { 823 visitStatement(Statement node) {
797 throw 'internal error'; // Should not be called. 824 throw 'internal error'; // Should not be called.
798 } 825 }
799 826
800 visitStringNode(StringNode node) { 827 visitStringNode(StringNode node) {
801 throw 'internal error'; // Should not be called. 828 throw 'internal error'; // Should not be called.
802 } 829 }
803 } 830 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698