diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt index 4a9f678b949..a6f3e8405c3 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt @@ -68,15 +68,13 @@ private val runtimeSources = listOfKtFilesFrom( // Full version is defined in stdlib // This file is useful for smaller subset of runtime sources - "libraries/stdlib/js/irRuntime/rangeExtensions.kt", - - // TODO: Reuse coroutine code from common (and current JS BE?) - "libraries/stdlib/js/src/kotlin/coroutines.kt", - "libraries/stdlib/js/src/kotlin/coroutinesIntrinsics.kt", - "libraries/stdlib/src/kotlin/coroutines" + "libraries/stdlib/js/irRuntime/rangeExtensions.kt" ) + listOfKtFilesFrom( - "libraries/stdlib/src/kotlin/coroutines/experimental/SequenceBuilder.kt", - "libraries/stdlib/src/kotlin/coroutines/experimental/Coroutines.kt" + // TODO share more coroutine code between JS BEs + "libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/SequenceBuilder.kt", + "libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/Coroutines.kt", + "libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/CoroutinesExperimentalH.kt", + "libraries/stdlib/coroutines-experimental/src/kotlin/coroutines/experimental/CoroutinesIntrinsicsExperimentalH.kt" ) // Smaller set of sources missing a big part of stdlib diff --git a/libraries/stdlib/js/irRuntime/hacks.kt b/libraries/stdlib/js/irRuntime/hacks.kt index 738992ca2c0..679831d3cca 100644 --- a/libraries/stdlib/js/irRuntime/hacks.kt +++ b/libraries/stdlib/js/irRuntime/hacks.kt @@ -5,6 +5,8 @@ package kotlin +import kotlin.coroutines.experimental.SequenceBuilder + // TODO: Ignore FunctionN interfaces public interface Function0 : Function { @@ -25,3 +27,8 @@ public interface Function3 : Function { public inline fun arrayOfNulls(size: Int): Array = js("[]") // FIXME: Implement +internal inline fun buildSequence(noinline builderAction: suspend SequenceBuilder.() -> Unit): Sequence = + kotlin.coroutines.experimental.buildSequence(builderAction) + +internal inline fun buildIterator(noinline builderAction: suspend SequenceBuilder.() -> Unit): Iterator = + kotlin.coroutines.experimental.buildIterator(builderAction)