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

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

Issue 2990223002: Reformat untouched files. (Closed)
Patch Set: Created 3 years, 4 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
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 import "package:compiler/src/js_backend/js_backend.dart" show StringBackedName; 8 import "package:compiler/src/js_backend/js_backend.dart" show StringBackedName;
9 9
10 void testTransform(String source, String expected, AsyncRewriterBase rewriter) { 10 void testTransform(String source, String expected, AsyncRewriterBase rewriter) {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 // implicit return 87 // implicit return
88 return returnHelper(null, __completer); 88 return returnHelper(null, __completer);
89 } 89 }
90 }); 90 });
91 return startHelper(body, __completer); 91 return startHelper(body, __completer);
92 }""") 92 }""")
93 93
94 /// 01: ok 94 /// 01: ok
95 ; 95 ;
96 96
97 testAsyncTransform( 97 testAsyncTransform("""
98 """
99 function(a) async { 98 function(a) async {
100 print(this.x); // Ensure `this` is translated in the helper function. 99 print(this.x); // Ensure `this` is translated in the helper function.
101 await foo(); 100 await foo();
102 }""", 101 }""", """
103 """
104 function(a) { 102 function(a) {
105 var __goto = 0, __completer = NewCompleter(), __self = this; 103 var __goto = 0, __completer = NewCompleter(), __self = this;
106 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 104 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
107 if (__errorCode === 1) 105 if (__errorCode === 1)
108 return rethrowHelper(__result, __completer); 106 return rethrowHelper(__result, __completer);
109 while (true) 107 while (true)
110 switch (__goto) { 108 switch (__goto) {
111 case 0: 109 case 0:
112 // Function start 110 // Function start
113 print(__self.x); 111 print(__self.x);
114 __goto = 2; 112 __goto = 2;
115 return awaitHelper(foo(), body); 113 return awaitHelper(foo(), body);
116 case 2: 114 case 2:
117 // returning from await. 115 // returning from await.
118 // implicit return 116 // implicit return
119 return returnHelper(null, __completer); 117 return returnHelper(null, __completer);
120 } 118 }
121 }); 119 });
122 return startHelper(body, __completer); 120 return startHelper(body, __completer);
123 }"""); 121 }""");
124 122
125 testAsyncTransform( 123 testAsyncTransform("""
126 """
127 function(b) async { 124 function(b) async {
128 try { 125 try {
129 __outer: while (true) { // Overlapping label name. 126 __outer: while (true) { // Overlapping label name.
130 try { 127 try {
131 inner: while (true) { 128 inner: while (true) {
132 break __outer; // Break from untranslated loop to translated target. 129 break __outer; // Break from untranslated loop to translated target.
133 break; // break to untranslated target. 130 break; // break to untranslated target.
134 } 131 }
135 while (true) { 132 while (true) {
136 return; // Return via finallies. 133 return; // Return via finallies.
137 } 134 }
138 var __helper = await foo(); // Overlapping variable name. 135 var __helper = await foo(); // Overlapping variable name.
139 } finally { 136 } finally {
140 foo(); 137 foo();
141 continue; // Continue from finally with pending finally. 138 continue; // Continue from finally with pending finally.
142 return 2; // Return from finally with pending finally. 139 return 2; // Return from finally with pending finally.
143 } 140 }
144 } 141 }
145 } finally { 142 } finally {
146 return 3; // Return from finally with no pending finally. 143 return 3; // Return from finally with no pending finally.
147 } 144 }
148 return 4; 145 return 4;
149 }""", 146 }""", """
150 """
151 function(b) { 147 function(b) {
152 var __goto = 0, __completer = NewCompleter(), __returnValue, __handler = 2, __ currentError, __next = [], __helper; 148 var __goto = 0, __completer = NewCompleter(), __returnValue, __handler = 2, __ currentError, __next = [], __helper;
153 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 149 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
154 if (__errorCode === 1) { 150 if (__errorCode === 1) {
155 __currentError = __result; 151 __currentError = __result;
156 __goto = __handler; 152 __goto = __handler;
157 } 153 }
158 while (true) 154 while (true)
159 __outer1: 155 __outer1:
160 switch (__goto) { 156 switch (__goto) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 // return 237 // return
242 return returnHelper(__returnValue, __completer); 238 return returnHelper(__returnValue, __completer);
243 case 2: 239 case 2:
244 // rethrow 240 // rethrow
245 return rethrowHelper(__currentError, __completer); 241 return rethrowHelper(__currentError, __completer);
246 } 242 }
247 }); 243 });
248 return startHelper(body, __completer); 244 return startHelper(body, __completer);
249 }"""); 245 }""");
250 246
251 testAsyncTransform( 247 testAsyncTransform("""
252 """
253 function(c) async { 248 function(c) async {
254 var a, b, c, d, e, f; 249 var a, b, c, d, e, f;
255 a = b++; // post- and preincrements. 250 a = b++; // post- and preincrements.
256 b = --b; 251 b = --b;
257 c = (await foo()).a++; 252 c = (await foo()).a++;
258 d = ++(await foo()).a; 253 d = ++(await foo()).a;
259 e = foo1()[await foo2()]--; 254 e = foo1()[await foo2()]--;
260 f = --foo1()[await foo2()]; 255 f = --foo1()[await foo2()];
261 }""", 256 }""", """
262 """
263 function(c) { 257 function(c) {
264 var __goto = 0, __completer = NewCompleter(), a, b, c, d, e, f, __temp1; 258 var __goto = 0, __completer = NewCompleter(), a, b, c, d, e, f, __temp1;
265 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 259 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
266 if (__errorCode === 1) 260 if (__errorCode === 1)
267 return rethrowHelper(__result, __completer); 261 return rethrowHelper(__result, __completer);
268 while (true) 262 while (true)
269 switch (__goto) { 263 switch (__goto) {
270 case 0: 264 case 0:
271 // Function start 265 // Function start
272 a = b++; 266 a = b++;
(...skipping 20 matching lines...) Expand all
293 case 5: 287 case 5:
294 // returning from await. 288 // returning from await.
295 f = --__temp1[__result]; 289 f = --__temp1[__result];
296 // implicit return 290 // implicit return
297 return returnHelper(null, __completer); 291 return returnHelper(null, __completer);
298 } 292 }
299 }); 293 });
300 return startHelper(body, __completer); 294 return startHelper(body, __completer);
301 }"""); 295 }""");
302 296
303 testAsyncTransform( 297 testAsyncTransform("""
304 """
305 function(d2) async { 298 function(d2) async {
306 var a, b, c, d, e, f, g, h; // empty initializer 299 var a, b, c, d, e, f, g, h; // empty initializer
307 a = foo1() || await foo2(); // short circuiting operators 300 a = foo1() || await foo2(); // short circuiting operators
308 b = await foo1() || foo2(); 301 b = await foo1() || foo2();
309 c = await foo1() || foo3(await foo2()); 302 c = await foo1() || foo3(await foo2());
310 d = foo1() || foo2(); 303 d = foo1() || foo2();
311 e = foo1() && await foo2(); 304 e = foo1() && await foo2();
312 f = await foo1() && foo2(); 305 f = await foo1() && foo2();
313 g = await foo1() && await foo2(); 306 g = await foo1() && await foo2();
314 h = foo1() && foo2(); 307 h = foo1() && foo2();
315 }""", 308 }""", """
316 """
317 function(d2) { 309 function(d2) {
318 var __goto = 0, __completer = NewCompleter(), a, b, c, d, e, f, g, h, __temp1; 310 var __goto = 0, __completer = NewCompleter(), a, b, c, d, e, f, g, h, __temp1;
319 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 311 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
320 if (__errorCode === 1) 312 if (__errorCode === 1)
321 return rethrowHelper(__result, __completer); 313 return rethrowHelper(__result, __completer);
322 while (true) 314 while (true)
323 switch (__goto) { 315 switch (__goto) {
324 case 0: 316 case 0:
325 // Function start 317 // Function start
326 __temp1 = foo1(); 318 __temp1 = foo1();
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 // join 415 // join
424 g = __result; 416 g = __result;
425 h = foo1() && foo2(); 417 h = foo1() && foo2();
426 // implicit return 418 // implicit return
427 return returnHelper(null, __completer); 419 return returnHelper(null, __completer);
428 } 420 }
429 }); 421 });
430 return startHelper(body, __completer); 422 return startHelper(body, __completer);
431 }"""); 423 }""");
432 424
433 testAsyncTransform( 425 testAsyncTransform("""
434 """
435 function(x, y) async { 426 function(x, y) async {
436 while (true) { 427 while (true) {
437 switch(y) { // Switch with no awaits in case key expressions 428 switch(y) { // Switch with no awaits in case key expressions
438 case 0: 429 case 0:
439 case 1: 430 case 1:
440 await foo(); 431 await foo();
441 continue; // Continue the loop, not the switch 432 continue; // Continue the loop, not the switch
442 case 1: // Duplicate case 433 case 1: // Duplicate case
443 await foo(); 434 await foo();
444 break; // Break the switch 435 break; // Break the switch
445 case 2: 436 case 2:
446 foo(); // No default 437 foo(); // No default
447 } 438 }
448 } 439 }
449 }""", 440 }""", """
450 """
451 function(x, y) { 441 function(x, y) {
452 var __goto = 0, __completer = NewCompleter(); 442 var __goto = 0, __completer = NewCompleter();
453 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 443 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
454 if (__errorCode === 1) 444 if (__errorCode === 1)
455 return rethrowHelper(__result, __completer); 445 return rethrowHelper(__result, __completer);
456 while (true) 446 while (true)
457 switch (__goto) { 447 switch (__goto) {
458 case 0: 448 case 0:
459 // Function start 449 // Function start
460 case 2: 450 case 2:
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 break; 504 break;
515 case 3: 505 case 3:
516 // after while 506 // after while
517 // implicit return 507 // implicit return
518 return returnHelper(null, __completer); 508 return returnHelper(null, __completer);
519 } 509 }
520 }); 510 });
521 return startHelper(body, __completer); 511 return startHelper(body, __completer);
522 }"""); 512 }""");
523 513
524 testAsyncTransform( 514 testAsyncTransform("""
525 """
526 function(f) async { 515 function(f) async {
527 do { 516 do {
528 var a = await foo(); 517 var a = await foo();
529 if (a) // If with no awaits in body 518 if (a) // If with no awaits in body
530 break; 519 break;
531 else 520 else
532 continue; 521 continue;
533 } while (await foo()); 522 } while (await foo());
534 } 523 }
535 """, 524 """, """
536 """
537 function(f) { 525 function(f) {
538 var __goto = 0, __completer = NewCompleter(), a; 526 var __goto = 0, __completer = NewCompleter(), a;
539 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 527 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
540 if (__errorCode === 1) 528 if (__errorCode === 1)
541 return rethrowHelper(__result, __completer); 529 return rethrowHelper(__result, __completer);
542 while (true) 530 while (true)
543 switch (__goto) { 531 switch (__goto) {
544 case 0: 532 case 0:
545 // Function start 533 // Function start
546 case 2: 534 case 2:
(...skipping 25 matching lines...) Expand all
572 } 560 }
573 case 4: 561 case 4:
574 // after do 562 // after do
575 // implicit return 563 // implicit return
576 return returnHelper(null, __completer); 564 return returnHelper(null, __completer);
577 } 565 }
578 }); 566 });
579 return startHelper(body, __completer); 567 return startHelper(body, __completer);
580 }"""); 568 }""");
581 569
582 testAsyncTransform( 570 testAsyncTransform("""
583 """
584 function(g) async { 571 function(g) async {
585 for (var i = 0; i < await foo1(); i += await foo2()) { 572 for (var i = 0; i < await foo1(); i += await foo2()) {
586 if (foo(i)) 573 if (foo(i))
587 continue; 574 continue;
588 else 575 else
589 break; 576 break;
590 if (!foo(i)) { // If with no else and await in body. 577 if (!foo(i)) { // If with no else and await in body.
591 await foo(); 578 await foo();
592 return; 579 return;
593 } 580 }
594 print(await(foo(i))); 581 print(await(foo(i)));
595 } 582 }
596 } 583 }
597 """, 584 """, """
598 """
599 function(g) { 585 function(g) {
600 var __goto = 0, __completer = NewCompleter(), __returnValue, i, __temp1; 586 var __goto = 0, __completer = NewCompleter(), __returnValue, i, __temp1;
601 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 587 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
602 if (__errorCode === 1) 588 if (__errorCode === 1)
603 return rethrowHelper(__result, __completer); 589 return rethrowHelper(__result, __completer);
604 while (true) 590 while (true)
605 switch (__goto) { 591 switch (__goto) {
606 case 0: 592 case 0:
607 // Function start 593 // Function start
608 i = 0; 594 i = 0;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 case 5: 645 case 5:
660 // after for 646 // after for
661 case 1: 647 case 1:
662 // return 648 // return
663 return returnHelper(__returnValue, __completer); 649 return returnHelper(__returnValue, __completer);
664 } 650 }
665 }); 651 });
666 return startHelper(body, __completer); 652 return startHelper(body, __completer);
667 }"""); 653 }""");
668 654
669 testAsyncTransform( 655 testAsyncTransform("""
670 """
671 function(a, h) async { 656 function(a, h) async {
672 var x = {"a": foo1(), "b": await foo2(), "c": foo3()}; 657 var x = {"a": foo1(), "b": await foo2(), "c": foo3()};
673 x["a"] = 2; // Different assignments 658 x["a"] = 2; // Different assignments
674 (await foo()).a = 3; 659 (await foo()).a = 3;
675 x[await foo()] = 4; 660 x[await foo()] = 4;
676 x[(await foo1()).a = await foo2()] = 5; 661 x[(await foo1()).a = await foo2()] = 5;
677 (await foo1())[await foo2()] = await foo3(6); 662 (await foo1())[await foo2()] = await foo3(6);
678 } 663 }
679 """, 664 """, """
680 """
681 function(a, h) { 665 function(a, h) {
682 var __goto = 0, __completer = NewCompleter(), x, __temp1, __temp2; 666 var __goto = 0, __completer = NewCompleter(), x, __temp1, __temp2;
683 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 667 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
684 if (__errorCode === 1) 668 if (__errorCode === 1)
685 return rethrowHelper(__result, __completer); 669 return rethrowHelper(__result, __completer);
686 while (true) 670 while (true)
687 switch (__goto) { 671 switch (__goto) {
688 case 0: 672 case 0:
689 // Function start 673 // Function start
690 __temp1 = foo1(); 674 __temp1 = foo1();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 case 9: 715 case 9:
732 // returning from await. 716 // returning from await.
733 __temp1[__temp2] = __result; 717 __temp1[__temp2] = __result;
734 // implicit return 718 // implicit return
735 return returnHelper(null, __completer); 719 return returnHelper(null, __completer);
736 } 720 }
737 }); 721 });
738 return startHelper(body, __completer); 722 return startHelper(body, __completer);
739 }"""); 723 }""");
740 724
741 testAsyncTransform( 725 testAsyncTransform("""
742 """
743 function(c, i) async { 726 function(c, i) async {
744 try { 727 try {
745 var x = c ? await foo() : foo(); // conditional 728 var x = c ? await foo() : foo(); // conditional
746 var y = {}; 729 var y = {};
747 } catch (error) { 730 } catch (error) {
748 try { 731 try {
749 x = c ? await fooError(error) : fooError(error); 732 x = c ? await fooError(error) : fooError(error);
750 } catch (error) { // nested error handler with overlapping name 733 } catch (error) { // nested error handler with overlapping name
751 y.x = foo(error); 734 y.x = foo(error);
752 } finally { 735 } finally {
753 foo(x); 736 foo(x);
754 } 737 }
755 } 738 }
756 } 739 }
757 """, 740 """, """
758 """
759 function(c, i) { 741 function(c, i) {
760 var __goto = 0, __completer = NewCompleter(), __handler = 1, __currentError, _ _next = [], x, y, __error, __error1; 742 var __goto = 0, __completer = NewCompleter(), __handler = 1, __currentError, _ _next = [], x, y, __error, __error1;
761 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 743 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
762 if (__errorCode === 1) { 744 if (__errorCode === 1) {
763 __currentError = __result; 745 __currentError = __result;
764 __goto = __handler; 746 __goto = __handler;
765 } 747 }
766 while (true) 748 while (true)
767 switch (__goto) { 749 switch (__goto) {
768 case 0: 750 case 0:
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 // implicit return 832 // implicit return
851 return returnHelper(null, __completer); 833 return returnHelper(null, __completer);
852 case 1: 834 case 1:
853 // rethrow 835 // rethrow
854 return rethrowHelper(__currentError, __completer); 836 return rethrowHelper(__currentError, __completer);
855 } 837 }
856 }); 838 });
857 return startHelper(body, __completer); 839 return startHelper(body, __completer);
858 }"""); 840 }""");
859 841
860 testAsyncTransform( 842 testAsyncTransform("""
861 """
862 function(x, y, j) async { 843 function(x, y, j) async {
863 print(await(foo(x))); // calls 844 print(await(foo(x))); // calls
864 (await print)(foo(x)); 845 (await print)(foo(x));
865 print(foo(await x)); 846 print(foo(await x));
866 await (print(foo(await x))); 847 await (print(foo(await x)));
867 print(foo(x, await y, z)); 848 print(foo(x, await y, z));
868 } 849 }
869 """, 850 """, """
870 """
871 function(x, y, j) { 851 function(x, y, j) {
872 var __goto = 0, __completer = NewCompleter(), __temp1, __temp2, __temp3; 852 var __goto = 0, __completer = NewCompleter(), __temp1, __temp2, __temp3;
873 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 853 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
874 if (__errorCode === 1) 854 if (__errorCode === 1)
875 return rethrowHelper(__result, __completer); 855 return rethrowHelper(__result, __completer);
876 while (true) 856 while (true)
877 switch (__goto) { 857 switch (__goto) {
878 case 0: 858 case 0:
879 // Function start 859 // Function start
880 __temp1 = print; 860 __temp1 = print;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 case 7: 893 case 7:
914 // returning from await. 894 // returning from await.
915 __temp1(__temp2(__temp3, __result, z)); 895 __temp1(__temp2(__temp3, __result, z));
916 // implicit return 896 // implicit return
917 return returnHelper(null, __completer); 897 return returnHelper(null, __completer);
918 } 898 }
919 }); 899 });
920 return startHelper(body, __completer); 900 return startHelper(body, __completer);
921 }"""); 901 }""");
922 902
923 testAsyncTransform( 903 testAsyncTransform("""
924 """
925 function(x, y, k) async { 904 function(x, y, k) async {
926 while (await(foo())) { 905 while (await(foo())) {
927 lab: { // labelled statement 906 lab: { // labelled statement
928 switch(y) { 907 switch(y) {
929 case 0: 908 case 0:
930 foo(); 909 foo();
931 case 0: // Duplicate case 910 case 0: // Duplicate case
932 print(await foo1(x)); 911 print(await foo1(x));
933 return y; 912 return y;
934 case await bar(): // await in case 913 case await bar(): // await in case
935 print(await foobar(x)); 914 print(await foobar(x));
936 return y; 915 return y;
937 case x: 916 case x:
938 if (a) { 917 if (a) {
939 throw new Error(); 918 throw new Error();
940 } else { 919 } else {
941 continue; 920 continue;
942 } 921 }
943 default: // default case 922 default: // default case
944 break lab; // break to label 923 break lab; // break to label
945 } 924 }
946 foo(); 925 foo();
947 } 926 }
948 } 927 }
949 }""", 928 }""", """
950 """
951 function(x, y, k) { 929 function(x, y, k) {
952 var __goto = 0, __completer = NewCompleter(), __returnValue, __temp1; 930 var __goto = 0, __completer = NewCompleter(), __returnValue, __temp1;
953 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 931 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
954 if (__errorCode === 1) 932 if (__errorCode === 1)
955 return rethrowHelper(__result, __completer); 933 return rethrowHelper(__result, __completer);
956 while (true) 934 while (true)
957 switch (__goto) { 935 switch (__goto) {
958 case 0: 936 case 0:
959 // Function start 937 // Function start
960 case 3: 938 case 3:
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 case 4: 1028 case 4:
1051 // after while 1029 // after while
1052 case 1: 1030 case 1:
1053 // return 1031 // return
1054 return returnHelper(__returnValue, __completer); 1032 return returnHelper(__returnValue, __completer);
1055 } 1033 }
1056 }); 1034 });
1057 return startHelper(body, __completer); 1035 return startHelper(body, __completer);
1058 }"""); 1036 }""");
1059 1037
1060 testAsyncTransform( 1038 testAsyncTransform("""
1061 """
1062 function(l) async { 1039 function(l) async {
1063 switch(await l) { 1040 switch(await l) {
1064 case 1: 1041 case 1:
1065 print(1); 1042 print(1);
1066 break; 1043 break;
1067 case 2: 1044 case 2:
1068 print(1); 1045 print(1);
1069 // Fallthrough 1046 // Fallthrough
1070 default: 1047 default:
1071 print(2); 1048 print(2);
1072 break; 1049 break;
1073 } 1050 }
1074 }""", 1051 }""", """
1075 """
1076 function(l) { 1052 function(l) {
1077 var __goto = 0, __completer = NewCompleter(); 1053 var __goto = 0, __completer = NewCompleter();
1078 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 1054 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
1079 if (__errorCode === 1) 1055 if (__errorCode === 1)
1080 return rethrowHelper(__result, __completer); 1056 return rethrowHelper(__result, __completer);
1081 while (true) 1057 while (true)
1082 switch (__goto) { 1058 switch (__goto) {
1083 case 0: 1059 case 0:
1084 // Function start 1060 // Function start
1085 __goto = 2; 1061 __goto = 2;
(...skipping 10 matching lines...) Expand all
1096 print(2); 1072 print(2);
1097 break; 1073 break;
1098 } 1074 }
1099 // implicit return 1075 // implicit return
1100 return returnHelper(null, __completer); 1076 return returnHelper(null, __completer);
1101 } 1077 }
1102 }); 1078 });
1103 return startHelper(body, __completer); 1079 return startHelper(body, __completer);
1104 }"""); 1080 }""");
1105 1081
1106 testAsyncTransform( 1082 testAsyncTransform("""
1107 """
1108 function(m) async { 1083 function(m) async {
1109 var exception = 1; 1084 var exception = 1;
1110 try { 1085 try {
1111 await 42; 1086 await 42;
1112 throw 42; 1087 throw 42;
1113 } catch (exception) { 1088 } catch (exception) {
1114 exception = await 10; 1089 exception = await 10;
1115 exception += await 10; 1090 exception += await 10;
1116 exception++; 1091 exception++;
1117 exception--; 1092 exception--;
1118 ++exception; 1093 ++exception;
1119 --exception; 1094 --exception;
1120 exception += 10; 1095 exception += 10;
1121 } 1096 }
1122 print(exception); 1097 print(exception);
1123 }""", 1098 }""", """
1124 """
1125 function(m) { 1099 function(m) {
1126 var __goto = 0, __completer = NewCompleter(), __handler = 1, __currentError, _ _next = [], exception, __exception; 1100 var __goto = 0, __completer = NewCompleter(), __handler = 1, __currentError, _ _next = [], exception, __exception;
1127 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) { 1101 var body = _wrapJsFunctionForAsync(function(__errorCode, __result) {
1128 if (__errorCode === 1) { 1102 if (__errorCode === 1) {
1129 __currentError = __result; 1103 __currentError = __result;
1130 __goto = __handler; 1104 __goto = __handler;
1131 } 1105 }
1132 while (true) 1106 while (true)
1133 switch (__goto) { 1107 switch (__goto) {
1134 case 0: 1108 case 0:
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 // implicit return 1151 // implicit return
1178 return returnHelper(null, __completer); 1152 return returnHelper(null, __completer);
1179 case 1: 1153 case 1:
1180 // rethrow 1154 // rethrow
1181 return rethrowHelper(__currentError, __completer); 1155 return rethrowHelper(__currentError, __completer);
1182 } 1156 }
1183 }); 1157 });
1184 return startHelper(body, __completer); 1158 return startHelper(body, __completer);
1185 }"""); 1159 }""");
1186 1160
1187 testSyncStarTransform( 1161 testSyncStarTransform("""
1188 """
1189 function(a) sync* { 1162 function(a) sync* {
1190 // Ensure that return of a value is treated as first evaluating the value, and 1163 // Ensure that return of a value is treated as first evaluating the value, and
1191 // then returning. 1164 // then returning.
1192 return foo(); 1165 return foo();
1193 }""", 1166 }""", """
1194 """
1195 function(__a) { 1167 function(__a) {
1196 return NewIterable(function() { 1168 return NewIterable(function() {
1197 var a = __a; 1169 var a = __a;
1198 var __goto = 0, __handler = 2, __currentError; 1170 var __goto = 0, __handler = 2, __currentError;
1199 return function body(__errorCode, __result) { 1171 return function body(__errorCode, __result) {
1200 if (__errorCode === 1) { 1172 if (__errorCode === 1) {
1201 __currentError = __result; 1173 __currentError = __result;
1202 __goto = __handler; 1174 __goto = __handler;
1203 } 1175 }
1204 while (true) 1176 while (true)
1205 switch (__goto) { 1177 switch (__goto) {
1206 case 0: 1178 case 0:
1207 // Function start 1179 // Function start
1208 foo(); 1180 foo();
1209 // goto return 1181 // goto return
1210 __goto = 1; 1182 __goto = 1;
1211 break; 1183 break;
1212 case 1: 1184 case 1:
1213 // return 1185 // return
1214 return endOfIteration(); 1186 return endOfIteration();
1215 case 2: 1187 case 2:
1216 // rethrow 1188 // rethrow
1217 return uncaughtError(__currentError); 1189 return uncaughtError(__currentError);
1218 } 1190 }
1219 }; 1191 };
1220 }); 1192 });
1221 }"""); 1193 }""");
1222 } 1194 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/analyze_only_test.dart ('k') | tests/compiler/dart2js/class_set_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698