| |
| // FILE: test.kt |
| |
| fun foo() { |
| try { |
| mightThrow() |
| } finally { |
| "FINALLY" |
| } |
| |
| val t = try { |
| mightThrow2() |
| } finally { |
| "FINALLY2" |
| } |
| } |
| |
| var throw1 = false |
| var throw2 = false |
| |
| fun mightThrow() { |
| if (throw1) throw Exception() |
| } |
| |
| fun mightThrow2() { |
| if (throw2) throw Exception() |
| } |
| |
| fun box() { |
| foo() |
| throw2 = true |
| foo() |
| // Never gets here. |
| throw1 = true |
| foo() |
| } |
| |
| // EXPECTATIONS JVM_IR |
| // test.kt:30 box |
| // test.kt:5 foo |
| // test.kt:6 foo |
| // test.kt:22 mightThrow |
| // test.kt:23 mightThrow |
| // test.kt:8 foo |
| // test.kt:9 foo |
| // test.kt:11 foo |
| // test.kt:12 foo |
| // test.kt:26 mightThrow2 |
| // test.kt:27 mightThrow2 |
| // test.kt:14 foo |
| // test.kt:15 foo |
| // test.kt:11 foo |
| // test.kt:16 foo |
| // test.kt:31 box |
| // test.kt:32 box |
| // test.kt:5 foo |
| // test.kt:6 foo |
| // test.kt:22 mightThrow |
| // test.kt:23 mightThrow |
| // test.kt:8 foo |
| // test.kt:9 foo |
| // test.kt:11 foo |
| // test.kt:12 foo |
| // test.kt:26 mightThrow2 |
| // test.kt:14 foo |
| |
| // EXPECTATIONS JS_IR |
| // test.kt:30 box |
| // test.kt:6 foo |
| // test.kt:22 mightThrow |
| // test.kt:23 mightThrow |
| // test.kt:12 foo |
| // test.kt:26 mightThrow2 |
| // test.kt:27 mightThrow2 |
| // test.kt:11 foo |
| // test.kt:16 foo |
| // test.kt:31 box |
| // test.kt:32 box |
| // test.kt:6 foo |
| // test.kt:22 mightThrow |
| // test.kt:23 mightThrow |
| // test.kt:12 foo |
| // test.kt:26 mightThrow2 |
| // test.kt:26 mightThrow2 |
| |
| // EXPECTATIONS WASM |
| // test.kt:30 $box (4) |
| // test.kt:6 $foo (8) |
| // test.kt:22 $mightThrow (8) |
| // test.kt:23 $mightThrow (1) |
| // test.kt:6 $foo (8) |
| // test.kt:8 $foo (8) |
| // test.kt:12 $foo (8) |
| // test.kt:26 $mightThrow2 (8) |
| // test.kt:27 $mightThrow2 (1) |
| // test.kt:12 $foo (8) |
| // test.kt:14 $foo (8) |
| // test.kt:16 $foo (1) |
| // test.kt:31 $box (13, 4) |
| // test.kt:32 $box (4) |
| // test.kt:6 $foo (8) |
| // test.kt:22 $mightThrow (8) |
| // test.kt:23 $mightThrow (1) |
| // test.kt:6 $foo (8) |
| // test.kt:8 $foo (8) |
| // test.kt:12 $foo (8) |
| // test.kt:26 $mightThrow2 (8, 22, 16) |
| // test.kt:14 $foo (8) |