blob: e81e43511a18b7b6baa192f6923c9a525b42b0ee [file] [log] [blame]
/*
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.coroutines
import kotlinx.coroutines.internal.*
internal actual abstract class CompletionHandlerBase : LinkedListNode() {
@JsName("invoke")
actual abstract fun invoke(cause: Throwable?)
}
@Suppress("UnsafeCastFromDynamic")
internal actual inline val CompletionHandlerBase.asHandler: CompletionHandler get() = asDynamic()
internal actual abstract class CancelHandlerBase {
@JsName("invoke")
actual abstract fun invoke(cause: Throwable?)
}
@Suppress("UnsafeCastFromDynamic")
internal actual inline val CancelHandlerBase.asHandler: CompletionHandler get() = asDynamic()
internal actual fun CompletionHandler.invokeIt(cause: Throwable?) {
when(jsTypeOf(this)) {
"function" -> invoke(cause)
else -> asDynamic().invoke(cause)
}
}