diff --git a/.space/CODEOWNERS b/.space/CODEOWNERS index 8eb446b239b..b8dfd243abd 100644 --- a/.space/CODEOWNERS +++ b/.space/CODEOWNERS @@ -216,6 +216,7 @@ /core/compiler.common.jvm/ "Kotlin Compiler Core" /core/compiler.common.js/ "Kotlin Compiler Core" /core/compiler.common.native/ "Kotlin Compiler Core" +/core/compiler.common.wasm/ "Kotlin Compiler Core" /core/descriptors/ "Kotlin Compiler Core" /core/descriptors.jvm/ "Kotlin Compiler Core" /core/descriptors.runtime/ "Kotlin Libraries" diff --git a/build.gradle.kts b/build.gradle.kts index 31296ef45b7..4b2660c7ca3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -133,6 +133,7 @@ val commonCompilerModules = arrayOf( ":core:compiler.common.jvm", ":core:compiler.common.js", ":core:compiler.common.native", + ":core:compiler.common.wasm", ":core:util.runtime", ":compiler:frontend.common.jvm", ":compiler:frontend.java", // TODO this is fe10 module but some utils used in fir ide now @@ -243,6 +244,7 @@ extra["kotlinJpsPluginEmbeddedDependencies"] = listOf( ":core:compiler.common.jvm", ":core:compiler.common.js", ":core:compiler.common.native", + ":core:compiler.common.wasm", ":core:descriptors", ":core:descriptors.jvm", ":compiler:backend.common.jvm", diff --git a/core/compiler.common.wasm/build.gradle.kts b/core/compiler.common.wasm/build.gradle.kts new file mode 100644 index 00000000000..636b5c3c31b --- /dev/null +++ b/core/compiler.common.wasm/build.gradle.kts @@ -0,0 +1,15 @@ +plugins { + kotlin("jvm") + id("jps-compatible") +} + +project.configureJvmToolchain(JdkMajorVersion.JDK_1_8) + +dependencies { + api(project(":core:compiler.common")) +} + +sourceSets { + "main" { projectDefault() } + "test" {} +} diff --git a/core/compiler.common.wasm/src/org/jetbrains/kotlin/name/WasmStandardClassIds.kt b/core/compiler.common.wasm/src/org/jetbrains/kotlin/name/WasmStandardClassIds.kt new file mode 100644 index 00000000000..41e4c2593f8 --- /dev/null +++ b/core/compiler.common.wasm/src/org/jetbrains/kotlin/name/WasmStandardClassIds.kt @@ -0,0 +1,35 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.name + +import org.jetbrains.kotlin.name.StandardClassIds.BASE_KOTLIN_PACKAGE + +object WasmStandardClassIds { + val BASE_JS_PACKAGE = BASE_KOTLIN_PACKAGE.child(Name.identifier("js")) + + object Annotations { + @JvmField + val JsQualifier = "JsQualifier".jsId() + + @JvmField + val JsModule = "JsModule".jsId() + + @JvmField + val JsName = "JsName".jsId() + + @JvmField + val JsExport = "JsExport".jsId() + } + + object Callables { + @JvmField + val JsDefinedExternally = "definedExternally".callableId(BASE_JS_PACKAGE) + } +} + +private fun String.jsId() = ClassId(WasmStandardClassIds.BASE_JS_PACKAGE, Name.identifier(this)) + +private fun String.callableId(packageName: FqName) = CallableId(packageName, Name.identifier(this)) diff --git a/settings.gradle b/settings.gradle index da8b9f905ee..1e2f4c615a1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -113,6 +113,7 @@ include ":benchmarks", ":core:compiler.common.jvm", ":core:compiler.common.js", ":core:compiler.common.native", + ":core:compiler.common.wasm", ":compiler:backend.common.jvm", ":core:descriptors", ":core:descriptors.jvm",