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

Side by Side Diff: tests/compiler/dart2js/async_await_js_transform_test.dart

Issue 1012783002: Fix renaming of exception variables on left-hand-sides. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix also the dynamic type... Created 5 years, 9 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 | « pkg/js_ast/lib/src/nodes.dart ('k') | tests/language/async_await_catch_regression_test.dart » ('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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 import "package:compiler/src/js/js.dart"; 6 import "package:compiler/src/js/js.dart";
7 import "package:compiler/src/js/rewrite_async.dart"; 7 import "package:compiler/src/js/rewrite_async.dart";
8 8
9 import "backend_dart/dart_printer_test.dart" show PrintDiagnosticListener; 9 import "backend_dart/dart_printer_test.dart" show PrintDiagnosticListener;
10 10
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 return thenHelper(foo(i), __body, __completer); 590 return thenHelper(foo(i), __body, __completer);
591 case 10: 591 case 10:
592 // returning from await. 592 // returning from await.
593 __temp1(__result); 593 __temp1(__result);
594 case 4: 594 case 4:
595 // for update 595 // for update
596 __goto = 11; 596 __goto = 11;
597 return thenHelper(foo2(), __body, __completer); 597 return thenHelper(foo2(), __body, __completer);
598 case 11: 598 case 11:
599 // returning from await. 599 // returning from await.
600 i = __result; 600 i += __result;
601 // goto for condition 601 // goto for condition
602 __goto = 3; 602 __goto = 3;
603 break; 603 break;
604 case 5: 604 case 5:
605 // after for 605 // after for
606 case 1: 606 case 1:
607 // return 607 // return
608 return thenHelper(__returnValue, 0, __completer, null); 608 return thenHelper(__returnValue, 0, __completer, null);
609 case 2: 609 case 2:
610 // rethrow 610 // rethrow
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 } 1052 }
1053 // implicit return 1053 // implicit return
1054 return thenHelper(null, 0, __completer, null); 1054 return thenHelper(null, 0, __completer, null);
1055 case 1: 1055 case 1:
1056 // rethrow 1056 // rethrow
1057 return thenHelper(__currentError, 1, __completer); 1057 return thenHelper(__currentError, 1, __completer);
1058 } 1058 }
1059 } 1059 }
1060 return thenHelper(null, __body, __completer, null); 1060 return thenHelper(null, __body, __completer, null);
1061 }"""); 1061 }""");
1062
1063 testTransform("""
1064 function(m) async {
1065 var exception = 1;
1066 try {
1067 await 42;
1068 throw 42;
1069 } catch (exception) {
1070 exception = await 10;
1071 exception += await 10;
1072 exception++;
1073 exception--;
1074 ++exception;
1075 --exception;
1076 exception += 10;
1077 }
1078 print(exception);
1079 }""", """
1080 function(m) {
1081 var __goto = 0, __completer = new Completer(), __handler = 1, __currentError, __next = [], exception, __exception;
1082 function __body(__errorCode, __result) {
1083 if (__errorCode === 1) {
1084 __currentError = __result;
1085 __goto = __handler;
1086 }
1087 while (true)
1088 switch (__goto) {
1089 case 0:
1090 // Function start
1091 exception = 1;
1092 __handler = 3;
1093 __goto = 6;
1094 return thenHelper(42, __body, __completer);
1095 case 6:
1096 // returning from await.
1097 throw 42;
1098 __handler = 1;
1099 // goto after finally
1100 __goto = 5;
1101 break;
1102 case 3:
1103 // catch
1104 __handler = 2;
1105 __exception = __currentError;
1106 __goto = 7;
1107 return thenHelper(10, __body, __completer);
1108 case 7:
1109 // returning from await.
1110 __exception = __result;
1111 __goto = 8;
1112 return thenHelper(10, __body, __completer);
1113 case 8:
1114 // returning from await.
1115 __exception += __result;
1116 __exception++;
1117 __exception--;
1118 ++__exception;
1119 --__exception;
1120 __exception += 10;
1121 // goto after finally
1122 __goto = 5;
1123 break;
1124 case 2:
1125 // uncaught
1126 // goto rethrow
1127 __goto = 1;
1128 break;
1129 case 5:
1130 // after finally
1131 print(exception);
1132 // implicit return
1133 return thenHelper(null, 0, __completer, null);
1134 case 1:
1135 // rethrow
1136 return thenHelper(__currentError, 1, __completer);
1137 }
1138 }
1139 return thenHelper(null, __body, __completer, null);
1140 }""");
1062 } 1141 }
OLDNEW
« no previous file with comments | « pkg/js_ast/lib/src/nodes.dart ('k') | tests/language/async_await_catch_regression_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698