blob: 3c8209caf285689e71d43a8ac518b23948a39ea7 [file]
// TARGET_BACKEND: WASM
// USE_NEW_EXCEPTION_HANDLING_PROPOSAL
// TODO: remove the test when KT-66906 will be resolved
// WITH_STDLIB
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
class Controller {
suspend fun suspendHere(v: String): String = suspendCoroutineUninterceptedOrReturn { x ->
x.resume(v)
COROUTINE_SUSPENDED
}
}
fun builder(c: suspend Controller.() -> Unit) {
c.startCoroutine(Controller(), EmptyContinuation)
}
inline fun run(block: () -> Unit) {
block()
}
fun box(): String {
var result = ""
run {
builder {
try {
result += suspendHere("O")
} finally {
result += suspendHere("K")
}
}
}
return result
}