/* * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package kotlin.js import kotlin.js.coroutineAliases.* @PublishedApi internal fun getContinuation(): ContinuationAlias { throw Exception("Implemented as intrinsic") } // Do we really need this intrinsic in JS? @PublishedApi internal suspend fun returnIfSuspended(@Suppress("UNUSED_PARAMETER") argument: Any?): T { throw Exception("Implemented as intrinsic") } @PublishedApi internal fun interceptContinuationIfNeeded( context: CoroutineContextAlias, continuation: ContinuationAlias ) = context[ContinuationInterceptorAlias]?.interceptContinuation(continuation) ?: continuation @SinceKotlin("1.2") @PublishedApi internal suspend fun getCoroutineContext(): CoroutineContextAlias = getContinuation().context // TODO: remove `JS` suffix oncec `NameGenerator` is implemented @PublishedApi internal suspend fun suspendCoroutineUninterceptedOrReturnJS(block: (ContinuationAlias) -> Any?): T = returnIfSuspended(block(getContinuation()))