mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 08:31:29 +00:00
Parse TryCatchBlockNode's in generated bytecode, infer stack save/restore points. Save stack to local variables before 'try'. Restore stack after the beginning of try-block, catch-block, and default handler. Integrate before/after inline markers rewriting (otherwise it'll break our stacks). #KT-3309 Fixed
19 lines
380 B
Kotlin
Vendored
19 lines
380 B
Kotlin
Vendored
fun idiv(a: Int, b: Int): Int =
|
|
if (b == 0) throw Exception("Division by zero") else a / b
|
|
|
|
fun foo(): Int {
|
|
var sum = 0
|
|
var i = 2
|
|
while (i > -10) {
|
|
sum += try { idiv(100, i) } catch (e: Exception) { break }
|
|
i--
|
|
}
|
|
return sum
|
|
}
|
|
|
|
fun box(): String {
|
|
val test = foo()
|
|
if (test != 150) return "Failed, test=$test"
|
|
|
|
return "OK"
|
|
} |