diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt index db8df479840..025b6828108 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt @@ -44,6 +44,7 @@ interface JSConfigurator : ModuleConfiguratorWithModuleType, ModuleConfiguratorW GradlePlugin.gradleProperties .addValues( "kotlin.js.generate.executable.default" to "false", + "kotlin.js.compiler" to JsCompiler.IR.text.toLowerCase() ) override fun getConfiguratorSettings(): List> = @@ -154,7 +155,11 @@ abstract class JsSinglePlatformModuleConfigurator : module: Module ): List = irsList { "kotlin" { - "js(${reader.settingsValue(module, JSConfigurator.compiler).text})" { + val compiler = reader.settingsValue(module, JSConfigurator.compiler) + val param = if (compiler != JsCompiler.IR) { + "(${compiler.text})" + } else "" + "js${param}" { subTarget(module, reader) } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt index 4a902a1cdc3..4ae171751f1 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatf import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.browserSubTarget import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsBrowserBasedConfigurator.Companion.cssSupport import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeBasedConfigurator.Companion.nodejsSubTarget +import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.JsNodeTargetConfigurator.createTargetIrs import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle @@ -78,6 +79,16 @@ internal fun Module.createTargetAccessIr( interface JsTargetConfigurator : JSConfigurator, TargetConfigurator, SingleCoexistenceTargetConfigurator, ModuleConfiguratorWithSettings +internal fun JsTargetConfigurator.jsCompilerParam( + reader: Reader, + module: Module +) = + reader.settingValue(module, JSConfigurator.compiler)?.let { + if (it != JsCompiler.IR) { + listOf(it.text) + } else emptyList() + } ?: emptyList() + enum class JsTargetKind(override val text: String) : DisplayableSettingItem { LIBRARY(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.library")), APPLICATION(KotlinNewProjectWizardBundle.message("module.configurator.js.target.settings.kind.application")) @@ -108,7 +119,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWit +DefaultTargetConfigurationIR( module.createTargetAccessIr( ModuleSubType.js, - listOf(settingValue(module, JSConfigurator.compiler)?.text) + jsCompilerParam(this@createTargetIrs, module) ) ) { browserSubTarget(module, this@createTargetIrs) @@ -128,7 +139,7 @@ object JsNodeTargetConfigurator : JsTargetConfigurator { +DefaultTargetConfigurationIR( module.createTargetAccessIr( ModuleSubType.js, - listOf(settingValue(module, JSConfigurator.compiler)?.text) + jsCompilerParam(this@createTargetIrs, module) ) ) { nodejsSubTarget(module, this@createTargetIrs)