OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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; | |
floitsch
2015/03/17 17:01:17
Apparently catch-variables are supposed to be fina
sigurdm
2015/03/18 14:06:24
This test only contains js-code extended with asyn
| |
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 } |
OLD | NEW |