blob: 56d0d82dd34b503b32b3ceebbae6e3447b422adf [file]
// FILE: test.kt
fun foo() {
try {
mightThrow()
} catch (e: Throwable) {
return
}
val t = try {
mightThrow2()
} catch (e: Throwable) {
return
}
val x = try {
mightThrow3()
} catch (e: Throwable) {
return
}
}
var throw1 = false
var throw2 = false
var throw3 = false
fun mightThrow() {
if (throw1) throw Exception()
}
fun mightThrow2() {
if (throw2) throw Exception()
}
fun mightThrow3(): Int {
if (throw3) throw Exception()
return 42
}
fun box() {
foo()
throw3 = true
foo()
throw2 = true
foo()
throw1 = true
foo()
}
// EXPECTATIONS JVM_IR
// test.kt:42 box
// test.kt:5 foo
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:6 foo
// test.kt:11 foo
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:12 foo
// test.kt:11 foo
// test.kt:17 foo
// test.kt:18 foo
// test.kt:37 mightThrow3
// test.kt:38 mightThrow3
// test.kt:18 foo
// test.kt:17 foo
// test.kt:22 foo
// test.kt:43 box
// test.kt:44 box
// test.kt:5 foo
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:6 foo
// test.kt:11 foo
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:12 foo
// test.kt:11 foo
// test.kt:17 foo
// test.kt:18 foo
// test.kt:37 mightThrow3
// test.kt:19 foo
// test.kt:20 foo
// test.kt:45 box
// test.kt:46 box
// test.kt:5 foo
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:6 foo
// test.kt:11 foo
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:13 foo
// test.kt:14 foo
// test.kt:47 box
// test.kt:48 box
// test.kt:5 foo
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:7 foo
// test.kt:8 foo
// test.kt:49 box
// EXPECTATIONS NATIVE
// test.kt:42 box
// test.kt:4 foo
// test.kt:6 foo
// test.kt:28 mightThrow
// test.kt:29 mightThrow
// test.kt:24 <get-throw1>
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:6 foo
// test.kt:12 foo
// test.kt:32 mightThrow2
// test.kt:33 mightThrow2
// test.kt:25 <get-throw2>
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:12 foo
// test.kt:15 foo
// test.kt:18 foo
// test.kt:36 mightThrow3
// test.kt:37 mightThrow3
// test.kt:26 <get-throw3>
// test.kt:37 mightThrow3
// test.kt:38 mightThrow3
// test.kt:39 mightThrow3
// test.kt:18 foo
// test.kt:21 foo
// test.kt:22 foo
// test.kt:42 box
// test.kt:43 box
// test.kt:26 <set-throw3>
// test.kt:44 box
// test.kt:4 foo
// test.kt:6 foo
// test.kt:28 mightThrow
// test.kt:29 mightThrow
// test.kt:24 <get-throw1>
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:6 foo
// test.kt:12 foo
// test.kt:32 mightThrow2
// test.kt:33 mightThrow2
// test.kt:25 <get-throw2>
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:12 foo
// test.kt:15 foo
// test.kt:18 foo
// test.kt:36 mightThrow3
// test.kt:37 mightThrow3
// test.kt:26 <get-throw3>
// test.kt:37 mightThrow3
// test.kt:37 mightThrow3
// EXPECTATIONS JS_IR
// test.kt:42 box
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:11 foo
// test.kt:18 foo
// test.kt:37 mightThrow3
// test.kt:38 mightThrow3
// test.kt:17 foo
// test.kt:22 foo
// test.kt:43 box
// test.kt:44 box
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:34 mightThrow2
// test.kt:11 foo
// test.kt:18 foo
// test.kt:37 mightThrow3
// test.kt:37 mightThrow3
// test.kt:19 foo
// test.kt:20 foo
// test.kt:45 box
// test.kt:46 box
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:30 mightThrow
// test.kt:12 foo
// test.kt:33 mightThrow2
// test.kt:33 mightThrow2
// test.kt:13 foo
// test.kt:14 foo
// test.kt:47 box
// test.kt:48 box
// test.kt:6 foo
// test.kt:29 mightThrow
// test.kt:29 mightThrow
// test.kt:7 foo
// test.kt:7 foo
// test.kt:8 foo
// test.kt:49 box
// EXPECTATIONS WASM
// test.kt:42 $box (4)
// test.kt:6 $foo (8)
// test.kt:29 $mightThrow (8)
// test.kt:30 $mightThrow (1)
// test.kt:6 $foo (8)
// test.kt:12 $foo (8)
// test.kt:33 $mightThrow2 (8)
// test.kt:34 $mightThrow2 (1)
// test.kt:12 $foo (8)
// test.kt:14 $foo (8)
// test.kt:18 $foo (8)
// test.kt:37 $mightThrow3 (8)
// test.kt:38 $mightThrow3 (11, 4)
// test.kt:18 $foo (8)
// test.kt:20 $foo (8)
// test.kt:22 $foo (1)
// test.kt:43 $box (13, 4)
// test.kt:44 $box (4)
// test.kt:6 $foo (8)
// test.kt:29 $mightThrow (8)
// test.kt:30 $mightThrow (1)
// test.kt:6 $foo (8)
// test.kt:12 $foo (8)
// test.kt:33 $mightThrow2 (8)
// test.kt:34 $mightThrow2 (1)
// test.kt:12 $foo (8)
// test.kt:14 $foo (8)
// test.kt:18 $foo (8)
// test.kt:37 $mightThrow3 (8, 22, 16)
// test.kt:20 $foo (8)
// test.kt:45 $box (13, 4)
// test.kt:46 $box (4)
// test.kt:6 $foo (8)
// test.kt:29 $mightThrow (8)
// test.kt:30 $mightThrow (1)
// test.kt:6 $foo (8)
// test.kt:12 $foo (8)
// test.kt:33 $mightThrow2 (8, 22, 16)
// test.kt:14 $foo (8)
// test.kt:47 $box (13, 4)
// test.kt:48 $box (4)
// test.kt:6 $foo (8)
// test.kt:29 $mightThrow (8, 22, 16)
// test.kt:8 $foo (8)
// test.kt:49 $box (1)