diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt index d801d7e9fb7..af92419ae06 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt @@ -70,8 +70,6 @@ class WasmSymbols( get() = TODO() val wasmUnreachable = getInternalFunction("wasm_unreachable") - val wasmFloatNaN = getInternalFunction("wasm_float_nan") - val wasmDoubleNaN = getInternalFunction("wasm_double_nan") val equalityFunctions = mapOf( context.irBuiltIns.booleanType to getInternalFunction("wasm_i32_eq"), diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt index d4ff3e47be0..003f23c6576 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt @@ -284,13 +284,6 @@ class BodyGenerator(val context: WasmFunctionCodegenContext) : IrElementVisitorV body.buildRefCast() } - wasmSymbols.wasmFloatNaN -> { - body.buildConstF32(Float.NaN) - } - wasmSymbols.wasmDoubleNaN -> { - body.buildConstF64(Double.NaN) - } - wasmSymbols.unboxIntrinsic -> { val fromType = call.getTypeArgument(0)!! diff --git a/libraries/stdlib/wasm/builtins/kotlin/Primitives.kt b/libraries/stdlib/wasm/builtins/kotlin/Primitives.kt index 436df5dce3e..39ca9154f50 100644 --- a/libraries/stdlib/wasm/builtins/kotlin/Primitives.kt +++ b/libraries/stdlib/wasm/builtins/kotlin/Primitives.kt @@ -1491,9 +1491,8 @@ public class Float private constructor(public val value: Float) : Number(), Comp /** * A constant holding the "not a number" value of Float. */ - public val NaN: Float - get() = - wasm_float_nan() + @Suppress("DIVISION_BY_ZERO") + public val NaN: Float = 0.0f / 0.0f } /** @@ -1800,10 +1799,8 @@ public class Double private constructor(public val value: Double) : Number(), Co /** * A constant holding the "not a number" value of Double. */ - public val NaN: Double - get() = - wasm_double_nan() - + @Suppress("DIVISION_BY_ZERO") + public val NaN: Double = 0.0 / 0.0 } /** diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt index d405f30c9b3..b61109c9266 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt @@ -13,12 +13,6 @@ package kotlin.wasm.internal internal fun wasm_unreachable(): Nothing = implementedAsIntrinsic -internal fun wasm_float_nan(): Float = - implementedAsIntrinsic - -internal fun wasm_double_nan(): Double = - implementedAsIntrinsic - internal fun wasm_ref_cast(a: Any?): To = implementedAsIntrinsic