diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt index 242db717202..2f7c7208399 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt @@ -695,8 +695,9 @@ fun serializeModuleIntoKlib( if (jsOutputName != null) { p.setProperty(KLIB_PROPERTY_JS_OUTPUT_NAME, jsOutputName) } - wasmTarget?.let { - p.setProperty(KLIB_PROPERTY_WASM_TARGET, it.name.toLowerCaseAsciiOnly()) + val wasmTargets = listOfNotNull(/* in the future there might be multiple WASM targets */ wasmTarget) + if (wasmTargets.isNotEmpty()) { + p.setProperty(KLIB_PROPERTY_WASM_TARGETS, wasmTargets.joinToString(" ") { it.alias }) } if (containsErrorCode) { p.setProperty(KLIB_PROPERTY_CONTAINS_ERROR_CODE, "true") diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt index 7da6ca1a257..4278f732437 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt @@ -39,7 +39,7 @@ const val KLIB_PROPERTY_IR_PROVIDER = "ir_provider" * Copy-pasted to `kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt` */ const val KLIB_PROPERTY_NATIVE_TARGETS = "native_targets" -const val KLIB_PROPERTY_WASM_TARGET = "wasm_target" +const val KLIB_PROPERTY_WASM_TARGETS = "wasm_targets" // Commonizer-specific: /** @@ -141,8 +141,8 @@ val BaseKotlinLibrary.irProviderName: String? val BaseKotlinLibrary.nativeTargets: List get() = manifestProperties.propertyList(KLIB_PROPERTY_NATIVE_TARGETS) -val BaseKotlinLibrary.wasmTarget: String? - get() = manifestProperties.getProperty(KLIB_PROPERTY_WASM_TARGET) +val BaseKotlinLibrary.wasmTargets: List + get() = manifestProperties.propertyList(KLIB_PROPERTY_WASM_TARGETS) val KotlinLibrary.containsErrorCode: Boolean get() = manifestProperties.getProperty(KLIB_PROPERTY_CONTAINS_ERROR_CODE) == "true" diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/WasmTarget.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/config/WasmTarget.kt index e5f1adbda7e..289729f2dfc 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/WasmTarget.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/WasmTarget.kt @@ -7,16 +7,12 @@ package org.jetbrains.kotlin.js.config import org.jetbrains.kotlin.config.CompilerConfiguration -enum class WasmTarget { - JS, - WASI; +enum class WasmTarget(val alias: String) { + JS("wasm-js"), + WASI("wasm-wasi"); companion object { - fun fromName(name: String): WasmTarget? = when (name) { - "wasm-js" -> JS - "wasm-wasi" -> WASI - else -> null - } + fun fromName(name: String): WasmTarget? = WasmTarget.entries.firstOrNull { it.alias == name } } }