blob: 2ff10702222eb9192751e8b6cac63ccedd632fc5 [file] [log] [blame]
/*
* Copyright 2016-2021 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)
}
}