blob: abcb503e348454b3b0417a7fbfed51d68d42b1a9 [file]
// OPT_IN: kotlin.js.ExperimentalJsExport
// FIR_IDENTICAL
@file:JsExport
interface Optional<out T> {
@JsName("valueOrThrowException")
fun valueOrThrow(exp: Throwable): T
fun valueOrThrow(): T = valueOrThrow(NoSuchElementException("Optional has no value"))
}
abstract class None<out T : Any> private constructor() : Optional<T> {
companion object : None<Nothing>()
override fun valueOrThrow(exp: Throwable): Nothing = throw exp
}