diff --git a/libraries/stdlib/wasm/src/kotlin/random/Random.kt b/libraries/stdlib/wasm/src/kotlin/random/PlatformRandom.kt similarity index 54% rename from libraries/stdlib/wasm/src/kotlin/random/Random.kt rename to libraries/stdlib/wasm/src/kotlin/random/PlatformRandom.kt index 4270affaaec..5a320d56e75 100644 --- a/libraries/stdlib/wasm/src/kotlin/random/Random.kt +++ b/libraries/stdlib/wasm/src/kotlin/random/PlatformRandom.kt @@ -5,5 +5,11 @@ package kotlin.random -internal actual fun defaultPlatformRandom(): Random = TODO("Wasm stdlib: Random") -internal actual fun doubleFromParts(hi26: Int, low27: Int): Double = TODO("Wasm stdlib: Random") +@JsFun("() => ((Math.random() * Math.pow(2, 32)) | 0)") +private external fun initialSeed(): Int + +internal actual fun defaultPlatformRandom(): Random = + Random(initialSeed()) + +internal actual fun doubleFromParts(hi26: Int, low27: Int): Double = + (hi26.toLong().shl(27) + low27) / (1L shl 53).toDouble()