diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt index bb331e924be..f3bdec55bc2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt @@ -42,10 +42,8 @@ constructor( private fun configureBinaryen(binary: JsIrBinary, binaryenDsl: BinaryenExec.() -> Unit) { val linkTask = binary.linkTask - val compiledMjsFile = linkTask.flatMap { it.outputFileProperty } - - val compiledWasmFile = compiledMjsFile.map { - it.parentFile.resolve("${it.nameWithoutExtension}.wasm") + val compiledWasmFile = linkTask.map { link -> + link.destinationDirectory.asFile.get().resolve(link.outputName.get() + ".wasm") } //TODO This is temporary solution that overrides compiled files that triggers recompile and reoptimize wasm every time (when binaryen is enabled) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt index 7b7d03f2083..897c17a2d17 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt @@ -60,7 +60,8 @@ abstract class KotlinJsIrLink @Inject constructor( @get:Internal internal lateinit var compilation: KotlinCompilationData<*> - private val platformType by project.provider { + @get:Internal + val platformType by project.provider { compilation.platformType } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt index 1229ac32588..0b6fcccae1d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrSubTarget.kt @@ -124,8 +124,20 @@ abstract class KotlinJsIrSubTarget( testJs.inputFileProperty.set( project.layout.file( binary.linkSyncTask.map { + val linkTask = binary.linkTask.get() + val extension = when (linkTask.platformType) { + KotlinPlatformType.wasm -> { + ".mjs" + } + + KotlinPlatformType.js -> { + ".js" + } + + else -> error("Only JS and WASM supported for KotlinJsTest") + } it.destinationDir - .resolve(binary.linkTask.get().outputName.get() + ".js") + .resolve(linkTask.outputName.get() + extension) } ) )