OLD | NEW |
| (Empty) |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 import 'package:expect/expect.dart'; | |
6 | |
7 throwValue(val) => throw val; | |
8 | |
9 f1() { | |
10 var a = 0; | |
11 var b = 0; | |
12 var c = 0; | |
13 var d = 0; | |
14 for (var i = 0; i < 10; i++) { | |
15 try { | |
16 for (var j = 0; j < 11; j++) { | |
17 try { | |
18 capture() => [i, j, a, b, c, d]; | |
19 throwValue(j == 10 ? "${j}" : j); | |
20 } on num catch (e) { | |
21 a += j; | |
22 b -= e; | |
23 } | |
24 } | |
25 } catch (e) { | |
26 c++; | |
27 d += int.parse(e); | |
28 } | |
29 } | |
30 return [a, b, c, d]; | |
31 } | |
32 | |
33 | |
34 f2() { | |
35 var a = 0; | |
36 var b = 0; | |
37 var c = 0; | |
38 var d = 0; | |
39 for (var i = 0; i < 10; i++) { | |
40 try { | |
41 for (var j = 0; j < 11; j++) { | |
42 try { | |
43 capture() => [i, j, a, b, c, d]; | |
44 throwValue(j == 10 ? "${j}" : j); | |
45 } on num catch (e) { | |
46 a += j; | |
47 b -= e; | |
48 } | |
49 } | |
50 } catch (e) { | |
51 capture() => e; | |
52 c++; | |
53 d += int.parse(e); | |
54 } | |
55 } | |
56 return [a, b, c, d]; | |
57 } | |
58 | |
59 | |
60 f3() { | |
61 var a = 0; | |
62 var b = 0; | |
63 var c = 0; | |
64 var d = 0; | |
65 for (var i = 0; i < 10; i++) { | |
66 try { | |
67 for (var j = 0; j < 11; j++) { | |
68 try { | |
69 capture() => [i, j, a, b, c, d]; | |
70 throwValue(j == 10 ? "${j}" : j); | |
71 } on num catch (e) { | |
72 a += j; | |
73 b -= e; | |
74 } | |
75 } | |
76 } catch (e) { | |
77 capture() => e; | |
78 c++; | |
79 d += int.parse(e); | |
80 continue; | |
81 } | |
82 } | |
83 return [a, b, c, d]; | |
84 } | |
85 | |
86 | |
87 main() { | |
88 Expect.listEquals([450, -450, 10, 100], f1()); | |
89 Expect.listEquals([450, -450, 10, 100], f2()); | |
90 Expect.listEquals([450, -450, 10, 100], f3()); | |
91 } | |
OLD | NEW |