From ea76501f9e0337ce6906b72bac9d1ca84e83775e Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Thu, 27 Jan 2022 15:53:42 +0100 Subject: [PATCH] [WASM] Implement ConstrainedOnceSequence --- libraries/stdlib/wasm/src/kotlin/Sequences.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/stdlib/wasm/src/kotlin/Sequences.kt b/libraries/stdlib/wasm/src/kotlin/Sequences.kt index 01e51c5d714..e8306fe4273 100644 --- a/libraries/stdlib/wasm/src/kotlin/Sequences.kt +++ b/libraries/stdlib/wasm/src/kotlin/Sequences.kt @@ -5,8 +5,12 @@ package kotlin.sequences -internal actual class ConstrainedOnceSequence : Sequence { - actual constructor(sequence: Sequence) { TODO("Wasm stdlib: ConstrainedOnceSequence") } +internal actual class ConstrainedOnceSequence actual constructor(sequence: Sequence) : Sequence { + private var sequenceRef: Sequence? = sequence - actual override fun iterator(): Iterator = TODO("Wasm stdlib: ConstrainedOnceSequence") + actual override fun iterator(): Iterator { + val sequence = sequenceRef ?: throw IllegalStateException("This sequence can be consumed only once.") + sequenceRef = null + return sequence.iterator() + } }