diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt index 6452a8f6720..06590d76481 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.gradle import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.util.modify import org.junit.jupiter.api.DisplayName @@ -147,7 +148,7 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() { project("new-mpp-wasm-js", gradleVersion) { buildGradleKts.modify(::transformBuildScriptWithPluginsDsl) buildGradleKts.modify { - it.replace("wasmJs {", "wasmJs {\napplyBinaryen()") + it.replace("", "d8") } build("assemble") { @@ -164,4 +165,25 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() { } } } + + @DisplayName("Check js target with browser") + @GradleTest + fun jsTargetWithBrowser(gradleVersion: GradleVersion) { + project("new-mpp-wasm-js", gradleVersion) { + buildGradleKts.modify(::transformBuildScriptWithPluginsDsl) + buildGradleKts.modify { + it.replace("", "browser") + } + + build("assemble") { + assertTasksExecuted(":compileProductionExecutableKotlinWasmJs") + assertTasksExecuted(":compileProductionExecutableKotlinWasmJsOptimize") + assertTasksExecuted(":wasmJsBrowserDistribution") + + assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/redefined-wasm-module-name.wasm") + assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/new-mpp-wasm-js.js") + assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/new-mpp-wasm-js.js.map") + } + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 8bebfe0b773..1326af65a41 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -1653,6 +1653,9 @@ open class NewMultiplatformIT : BaseGradleIT() { ) { setupWorkingDir() gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + gradleBuildScript().modify { + it.replace("", "d8") + } build("build") { assertSuccessful() assertTasksExecuted(":compileKotlinJs") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-js/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-js/build.gradle.kts index 35355ec7d5a..1c0185fef15 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-js/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-js/build.gradle.kts @@ -10,7 +10,7 @@ repositories { kotlin { wasmJs { moduleName = "redefined-wasm-module-name" - d8 { + { } binaries.executable() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt index 1be2daf35ad..857efc5e5ed 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt @@ -233,9 +233,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : binary.linkSyncTask.zip(binary.linkTask) { linkSyncTask, linkTask -> val moduleNameProvider = linkTask.compilerOptions.moduleName linkSyncTask.destinationDirectory.zip(moduleNameProvider) { destDir, moduleName -> - moduleName.map { - destDir.resolve("$it.wasm") - } + destDir.resolve("$moduleName.wasm") } } )