diff --git a/.gitignore b/.gitignore
index 076d0870fa3..176f34959a5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,6 +50,9 @@ build/
.idea/artifacts/kotlin_main_kts_jar.xml
.idea/artifacts/kotlin_compiler_client_embeddable_jar.xml
.idea/artifacts/kotlin_reflect_jar.xml
+.idea/artifacts/kotlin_stdlib_js_ir_*
+.idea/artifacts/kotlin_test_js_ir_*
+.idea/artifacts/kotlin_stdlib_wasm_*
.idea/jarRepositories.xml
kotlin-ultimate/
node_modules/
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 32521f39d50..49b192df7a8 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -66,7 +66,7 @@
http://www.w3.org/1999/xhtml
-
+
diff --git a/build.gradle.kts b/build.gradle.kts
index ec11310af96..fc158934a40 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,7 @@ if (kotlinBuildProperties.buildScanServer != null) {
}
plugins {
+ base
idea
id("jps-compatible")
id("org.jetbrains.gradle.plugin.idea-ext")
@@ -53,7 +54,6 @@ pill {
}
val isTeamcityBuild = project.kotlinBuildProperties.isTeamcityBuild
-val includeStdlibJsIr by extra(project.kotlinBuildProperties.includeStdlibJsIr)
val configuredJdks: List =
getConfiguredJdks().also {
@@ -280,9 +280,7 @@ val coreLibProjects = listOfNotNull(
":kotlin-stdlib",
":kotlin-stdlib-common",
":kotlin-stdlib-js",
- // Exclude JS IR from core libs because it depends on local compiler build, which
- // in turn depends on local JVM stdlib. It slows down library testing.
- ":kotlin-stdlib-js-ir".takeIf { includeStdlibJsIr },
+ ":kotlin-stdlib-js-ir",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-test:kotlin-test-annotations-common",
@@ -292,6 +290,7 @@ val coreLibProjects = listOfNotNull(
":kotlin-test:kotlin-test-junit5",
":kotlin-test:kotlin-test-testng",
":kotlin-test:kotlin-test-js".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync },
+ ":kotlin-test:kotlin-test-js-ir".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync },
":kotlin-reflect",
":kotlin-coroutines-experimental-compat"
)
@@ -497,7 +496,7 @@ val ideaPlugin by task {
}
tasks {
- register("clean") {
+ named("clean") {
doLast {
delete("$buildDir/repo")
delete(distDir)
@@ -751,7 +750,7 @@ tasks {
}
}
- register("check") {
+ named("check") {
dependsOn("test")
}
diff --git a/buildSrc/src/main/kotlin/BuildPropertiesExt.kt b/buildSrc/src/main/kotlin/BuildPropertiesExt.kt
index 9fe0a600bb9..ffaf6d2db72 100644
--- a/buildSrc/src/main/kotlin/BuildPropertiesExt.kt
+++ b/buildSrc/src/main/kotlin/BuildPropertiesExt.kt
@@ -18,5 +18,3 @@ val KotlinBuildProperties.proguard: Boolean get() = postProcessing && getBoolean
val KotlinBuildProperties.jarCompression: Boolean get() = getBoolean("kotlin.build.jar.compression", isTeamcityBuild)
val KotlinBuildProperties.ignoreTestFailures: Boolean get() = getBoolean("ignoreTestFailures", isTeamcityBuild)
-
-val KotlinBuildProperties.includeStdlibJsIr: Boolean get() = getBoolean("include.stdlib.js.ir", isTeamcityBuild)
\ No newline at end of file
diff --git a/compiler/tests-against-klib/build.gradle.kts b/compiler/tests-against-klib/build.gradle.kts
index d7c5b15cbd9..d3c77c1837e 100644
--- a/compiler/tests-against-klib/build.gradle.kts
+++ b/compiler/tests-against-klib/build.gradle.kts
@@ -21,8 +21,7 @@ testsJar {}
projectTest(parallel = true) {
dependsOn(":dist")
- dependsOn(":kotlin-stdlib-js-ir:generateFullRuntimeKLib")
-
+ dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
workingDir = rootDir
systemProperty("kotlin.test.script.classpath", testSourceSet.output.classesDirs.joinToString(File.pathSeparator))
}
diff --git a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt
index 098bac21871..b7c1280e729 100644
--- a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt
+++ b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt
@@ -79,7 +79,7 @@ abstract class AbstractCompileKotlinAgainstKlibTest : AbstractBlackBoxCodegenTes
listOf(
"-output", klibName,
"-Xir-produce-klib-file",
- "-libraries", "libraries/stdlib/js-ir/build/fullRuntime/klib/"
+ "-libraries", "libraries/stdlib/js-ir/build/classes/kotlin/js/main/"
) + sourceFiles
)
if (exitCode != ExitCode.OK) {
diff --git a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt
index 538f93780f4..03ac659ff42 100644
--- a/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt
+++ b/compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt
@@ -29,6 +29,7 @@ class CodeConformanceTest : TestCase() {
private val SOURCES_BUNCH_FILE_PATTERN = Pattern.compile("(.+\\.java|.+\\.kt|.+\\.js)(\\.\\w+)?")
private const val MAX_STEPS_COUNT = 100
private val EXCLUDED_FILES_AND_DIRS = listOf(
+ "build/js",
"buildSrc",
"compiler/fir/lightTree/testData",
"compiler/testData/psi/kdoc",
@@ -48,6 +49,8 @@ class CodeConformanceTest : TestCase() {
"libraries/reflect/build",
"libraries/stdlib/js-ir/.gradle",
"libraries/stdlib/js-ir/build",
+ "libraries/stdlib/js-ir-minimal-for-test/.gradle",
+ "libraries/stdlib/js-ir-minimal-for-test/build",
"libraries/stdlib/js-v1/.gradle",
"libraries/stdlib/js-v1/build",
"libraries/tools/binary-compatibility-validator/src/main/kotlin/org.jetbrains.kotlin.tools",
@@ -67,6 +70,7 @@ class CodeConformanceTest : TestCase() {
).map(::File)
private val COPYRIGHT_EXCLUDED_FILES_AND_DIRS = listOf(
+ "build",
"buildSrc/prepare-deps/build",
"compiler/tests/org/jetbrains/kotlin/code/CodeConformanceTest.kt",
"dependencies",
@@ -83,6 +87,8 @@ class CodeConformanceTest : TestCase() {
"libraries/stdlib/js-ir/build",
"libraries/stdlib/js-ir/build/",
"libraries/stdlib/js-ir/runtime/longjs.kt",
+ "libraries/stdlib/js-ir-minimal-for-test/.gradle",
+ "libraries/stdlib/js-ir-minimal-for-test/build",
"libraries/stdlib/js-v1/.gradle",
"libraries/stdlib/js-v1/build",
"libraries/stdlib/js-v1/node_modules",
diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts
index 3ae967ac116..5f410e04db9 100644
--- a/js/js.tests/build.gradle.kts
+++ b/js/js.tests/build.gradle.kts
@@ -39,7 +39,6 @@ dependencies {
testCompileOnly(intellijDep()) { includeJars("idea", "idea_rt", "util") }
testCompile(project(":compiler:backend.js"))
testCompile(project(":compiler:backend.wasm"))
- testCompile(project(":kotlin-stdlib-js-ir"))
testCompile(project(":js:js.translator"))
testCompile(project(":js:js.serializer"))
testCompile(project(":js:js.dce"))
@@ -103,9 +102,12 @@ fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean) {
dependsOn(":dist")
if (jsEnabled) dependsOn(testJsRuntime)
if (jsIrEnabled) {
- dependsOn(":kotlin-stdlib-js-ir:generateFullRuntimeKLib")
- dependsOn(":kotlin-stdlib-js-ir:generateReducedRuntimeKLib")
- dependsOn(":kotlin-stdlib-js-ir:generateKotlinTestKLib")
+ dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
+ systemProperty("kotlin.js.full.stdlib.path", "libraries/stdlib/js-ir/build/classes/kotlin/js/main")
+ dependsOn(":kotlin-stdlib-js-ir-minimal-for-test:compileKotlinJs")
+ systemProperty("kotlin.js.reduced.stdlib.path", "libraries/stdlib/js-ir-minimal-for-test/build/classes/kotlin/js/main")
+ dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
+ systemProperty("kotlin.js.kotlin.test.path", "libraries/kotlin.test/js-ir/build/classes/kotlin/js/main")
}
exclude("org/jetbrains/kotlin/js/test/wasm/semantics/*")
@@ -228,9 +230,12 @@ val unzipJsShell by task {
projectTest("wasmTest", true) {
dependsOn(unzipJsShell)
- dependsOn(":kotlin-stdlib-js-ir:generateWasmRuntimeKLib")
include("org/jetbrains/kotlin/js/test/wasm/semantics/*")
val jsShellExecutablePath = File(unzipJsShell.get().destinationDir, "js").absolutePath
systemProperty("javascript.engine.path.SpiderMonkey", jsShellExecutablePath)
+
+ dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
+ systemProperty("kotlin.wasm.stdlib.path", "libraries/stdlib/wasm/build/classes/kotlin/js/main")
+
setUpBoxTests()
}
diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt
index 55b7fab8e96..70f80bd19fd 100644
--- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt
+++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt
@@ -21,9 +21,9 @@ import org.jetbrains.kotlin.utils.fileUtils.withReplacedExtensionOrNull
import java.io.File
import java.lang.Boolean.getBoolean
-private val fullRuntimeKlib = "libraries/stdlib/js-ir/build/fullRuntime/klib"
-private val defaultRuntimeKlib = "libraries/stdlib/js-ir/build/reducedRuntime/klib"
-private val kotlinTestKLib = "libraries/stdlib/js-ir/build/kotlin.test/klib"
+private val fullRuntimeKlib: String = System.getProperty("kotlin.js.full.stdlib.path")
+private val defaultRuntimeKlib = System.getProperty("kotlin.js.reduced.stdlib.path")
+private val kotlinTestKLib = System.getProperty("kotlin.js.kotlin.test.path")
abstract class BasicIrBoxTest(
pathToTestDir: String,
diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt
index af3ddc1891e..5258988720c 100644
--- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt
+++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicWasmBoxTest.kt
@@ -37,7 +37,7 @@ import java.io.File
import java.lang.Boolean.getBoolean
private val wasmRuntimeKlib =
- loadKlib("libraries/stdlib/js-ir/build/wasmRuntime/klib")
+ loadKlib(System.getProperty("kotlin.wasm.stdlib.path"))
abstract class BasicWasmBoxTest(
private val pathToTestDir: String,
diff --git a/libraries/kotlin.test/js-ir/build.gradle.kts b/libraries/kotlin.test/js-ir/build.gradle.kts
new file mode 100644
index 00000000000..7dc65a5b420
--- /dev/null
+++ b/libraries/kotlin.test/js-ir/build.gradle.kts
@@ -0,0 +1,57 @@
+import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+
+plugins {
+ kotlin("multiplatform")
+}
+
+val commonMainSources by task {
+ from(
+ "$rootDir/libraries/kotlin.test/common",
+ "$rootDir/libraries/kotlin.test/annotations-common"
+ )
+ into("$buildDir/commonMainSources")
+}
+
+val jsMainSources by task {
+ from("$rootDir/libraries/kotlin.test/js/src")
+ into("$buildDir/jsMainSources")
+}
+
+kotlin {
+ js(IR) {
+ nodejs()
+ }
+
+ sourceSets {
+ val commonMain by getting {
+ dependencies {
+ api(project(":kotlin-stdlib-js-ir"))
+ }
+ kotlin.srcDir(commonMainSources.get().destinationDir)
+ }
+ val jsMain by getting {
+ dependencies {
+ api(project(":kotlin-stdlib-js-ir"))
+ }
+ kotlin.srcDir(jsMainSources.get().destinationDir)
+ }
+ }
+}
+
+tasks.withType>().configureEach {
+ kotlinOptions.freeCompilerArgs += listOf(
+ "-Xallow-kotlin-package",
+ "-Xallow-result-return-type",
+ "-Xuse-experimental=kotlin.Experimental",
+ "-Xuse-experimental=kotlin.ExperimentalMultiplatform",
+ "-Xuse-experimental=kotlin.contracts.ExperimentalContracts",
+ "-Xinline-classes"
+ )
+}
+
+tasks.named("compileKotlinJs") {
+ (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin-test"
+ dependsOn(commonMainSources)
+ dependsOn(jsMainSources)
+}
+
diff --git a/libraries/kotlin.test/js/build.gradle b/libraries/kotlin.test/js/build.gradle
index eaf07572b71..035a2f64cc0 100644
--- a/libraries/kotlin.test/js/build.gradle
+++ b/libraries/kotlin.test/js/build.gradle
@@ -59,10 +59,11 @@ task libraryJarWithIr(type: Zip, dependsOn: libraryJarWithoutIr) {
duplicatesStrategy DuplicatesStrategy.FAIL
from zipTree(libraryJarWithoutIr.archiveFile)
- if (rootProject.includeStdlibJsIr) {
- def irKlib = tasks.getByPath(":kotlin-stdlib-js-ir:generateKotlinTestKLib")
- dependsOn(irKlib)
- from fileTree(irKlib.outputs.files.singleFile.path)
+
+ dependsOn(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
+ from {
+ def irKlib = tasks.getByPath(":kotlin-test:kotlin-test-js-ir:compileKotlinJs")
+ fileTree(irKlib.outputs.files.first().path)
}
}
@@ -76,7 +77,7 @@ task sourcesJar(type: Jar, dependsOn: classes) {
artifacts {
runtime libraryJarWithIr
archives libraryJarWithIr
- distLibrary libraryJarWithoutIr
+ distLibrary libraryJarWithIr
archives sourcesJar
sources sourcesJar
distJs(file(compileKotlin2Js.kotlinOptions.outputFile)) {
diff --git a/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/AbstractJsReplTest.kt b/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/AbstractJsReplTest.kt
index 9213a955bed..2453f2b0eee 100644
--- a/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/AbstractJsReplTest.kt
+++ b/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/AbstractJsReplTest.kt
@@ -65,7 +65,7 @@ abstract class AbstractJsReplTest : Closeable {
configuration.put(CommonConfigurationKeys.MODULE_NAME, "repl.kts")
val scriptConfiguration = ScriptCompilationConfiguration {
baseClass("kotlin.Any")
- dependencies.append(JsDependency("libraries/stdlib/js-ir/build/fullRuntime/klib"))
+ dependencies.append(JsDependency("libraries/stdlib/js-ir/build/classes/kotlin/js/main/"))
platform.put("JS")
}
configuration.add(
diff --git a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts
new file mode 100644
index 00000000000..e8fac353053
--- /dev/null
+++ b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts
@@ -0,0 +1,123 @@
+import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+
+plugins {
+ kotlin("multiplatform")
+}
+
+kotlin {
+ js(IR) {
+ nodejs()
+ }
+}
+
+val commonMainSources by task {
+ dependsOn(":kotlin-stdlib-js-ir:commonMainSources")
+ from {
+ val fullCommonMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:commonMainSources")
+ exclude(
+ listOf(
+ "libraries/stdlib/unsigned/**",
+ "libraries/stdlib/common/src/generated/_Arrays.kt",
+ "libraries/stdlib/common/src/generated/_Collections.kt",
+ "libraries/stdlib/common/src/generated/_Comparisons.kt",
+ "libraries/stdlib/common/src/generated/_Maps.kt",
+ "libraries/stdlib/common/src/generated/_Sequences.kt",
+ "libraries/stdlib/common/src/generated/_Sets.kt",
+ "libraries/stdlib/common/src/generated/_Strings.kt",
+ "libraries/stdlib/common/src/generated/_UArrays.kt",
+ "libraries/stdlib/common/src/generated/_URanges.kt",
+ "libraries/stdlib/common/src/generated/_UCollections.kt",
+ "libraries/stdlib/common/src/generated/_UComparisons.kt",
+ "libraries/stdlib/common/src/generated/_USequences.kt",
+ "libraries/stdlib/common/src/kotlin/SequencesH.kt",
+ "libraries/stdlib/common/src/kotlin/TextH.kt",
+ "libraries/stdlib/common/src/kotlin/UMath.kt",
+ "libraries/stdlib/common/src/kotlin/collections/**",
+ "libraries/stdlib/common/src/kotlin/ioH.kt",
+ "libraries/stdlib/src/kotlin/collections/**",
+ "libraries/stdlib/src/kotlin/experimental/bitwiseOperations.kt",
+ "libraries/stdlib/src/kotlin/properties/Delegates.kt",
+ "libraries/stdlib/src/kotlin/random/URandom.kt",
+ "libraries/stdlib/src/kotlin/text/**",
+ "libraries/stdlib/src/kotlin/time/**",
+ "libraries/stdlib/src/kotlin/util/KotlinVersion.kt",
+ "libraries/stdlib/src/kotlin/util/Tuples.kt"
+ )
+ )
+ fullCommonMainSources.outputs.files.singleFile
+ }
+
+ into("$buildDir/commonMainSources")
+}
+
+val jsMainSources by task {
+ dependsOn(":kotlin-stdlib-js-ir:jsMainSources")
+
+ from {
+ val fullJsMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:jsMainSources")
+ exclude(
+ listOf(
+ "libraries/stdlib/js-ir/runtime/collectionsHacks.kt",
+ "libraries/stdlib/js-ir/src/generated/**",
+ "libraries/stdlib/js-ir/src/kotlin/text/**",
+ "libraries/stdlib/js/src/jquery/**",
+ "libraries/stdlib/js/src/org.w3c/**",
+ "libraries/stdlib/js/src/kotlin/char.kt",
+ "libraries/stdlib/js/src/kotlin/collections.kt",
+ "libraries/stdlib/js/src/kotlin/collections/**",
+ "libraries/stdlib/js/src/kotlin/time/**",
+ "libraries/stdlib/js/src/kotlin/console.kt",
+ "libraries/stdlib/js/src/kotlin/coreDeprecated.kt",
+ "libraries/stdlib/js/src/kotlin/date.kt",
+ "libraries/stdlib/js/src/kotlin/debug.kt",
+ "libraries/stdlib/js/src/kotlin/grouping.kt",
+ "libraries/stdlib/js/src/kotlin/json.kt",
+ "libraries/stdlib/js/src/kotlin/promise.kt",
+ "libraries/stdlib/js/src/kotlin/regexp.kt",
+ "libraries/stdlib/js/src/kotlin/sequence.kt",
+ "libraries/stdlib/js/src/kotlin/throwableExtensions.kt",
+ "libraries/stdlib/js/src/kotlin/text/**",
+ "libraries/stdlib/js/src/kotlin/reflect/KTypeHelpers.kt",
+ "libraries/stdlib/js/src/kotlin/reflect/KTypeParameterImpl.kt",
+ "libraries/stdlib/js/src/kotlin/reflect/KTypeImpl.kt",
+ "libraries/stdlib/js/src/kotlin/dom/**",
+ "libraries/stdlib/js/src/kotlin/browser/**"
+ )
+ )
+ fullJsMainSources.outputs.files.singleFile
+ }
+
+ from("$rootDir/libraries/stdlib/js-ir-minimal-for-test/src")
+ into("$buildDir/jsMainSources")
+}
+
+kotlin {
+ sourceSets {
+ val commonMain by getting {
+ kotlin.srcDir(commonMainSources.get().destinationDir)
+ }
+ val jsMain by getting {
+ kotlin.srcDir(jsMainSources.get().destinationDir)
+ }
+ }
+}
+
+tasks.withType>().configureEach {
+ kotlinOptions.freeCompilerArgs += listOf(
+ "-Xallow-kotlin-package",
+ "-Xallow-result-return-type",
+ "-Xuse-experimental=kotlin.Experimental",
+ "-Xuse-experimental=kotlin.ExperimentalMultiplatform",
+ "-Xuse-experimental=kotlin.contracts.ExperimentalContracts",
+ "-Xinline-classes",
+ "-Xopt-in=kotlin.RequiresOptIn",
+ "-Xopt-in=kotlin.ExperimentalUnsignedTypes",
+ "-Xopt-in=kotlin.ExperimentalStdlibApi"
+ )
+}
+
+tasks.named("compileKotlinJs") {
+ (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
+ dependsOn(commonMainSources)
+ dependsOn(jsMainSources)
+}
diff --git a/libraries/stdlib/js-ir/smallRuntime/smallRuntimeMissingDeclarations.kt b/libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt
similarity index 100%
rename from libraries/stdlib/js-ir/smallRuntime/smallRuntimeMissingDeclarations.kt
rename to libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt
diff --git a/libraries/stdlib/js-ir/smallRuntime/tests.kt b/libraries/stdlib/js-ir-minimal-for-test/src/tests.kt
similarity index 100%
rename from libraries/stdlib/js-ir/smallRuntime/tests.kt
rename to libraries/stdlib/js-ir-minimal-for-test/src/tests.kt
diff --git a/libraries/stdlib/js-ir/build.gradle.kts b/libraries/stdlib/js-ir/build.gradle.kts
index 703ca701f6f..21399deb4d9 100644
--- a/libraries/stdlib/js-ir/build.gradle.kts
+++ b/libraries/stdlib/js-ir/build.gradle.kts
@@ -1,49 +1,19 @@
-import com.moowork.gradle.node.npm.NpmTask
-import com.moowork.gradle.node.task.NodeTask
+import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType.IR
plugins {
- base
- id("com.github.node-gradle.node") version "2.2.0"
+ kotlin("multiplatform")
}
-// A simple CLI for creating JS IR klibs.
-// Does not depend on backend lowerings and JS codegen.
-val jsIrKlibCli: Configuration by configurations.creating
-
-// Full JS IR compiler CLI
-val fullJsIrCli: Configuration by configurations.creating
-
-dependencies {
- jsIrKlibCli(project(":compiler:cli-js-klib"))
-
- fullJsIrCli(project(":compiler:cli-js"))
- fullJsIrCli(project(":compiler:util"))
- fullJsIrCli(project(":compiler:cli-common"))
- fullJsIrCli(project(":compiler:cli"))
- fullJsIrCli(project(":compiler:frontend"))
- fullJsIrCli(project(":compiler:backend-common"))
- fullJsIrCli(project(":compiler:backend"))
- fullJsIrCli(project(":compiler:ir.backend.common"))
- fullJsIrCli(project(":compiler:ir.serialization.js"))
- fullJsIrCli(project(":compiler:backend.js"))
- fullJsIrCli(project(":js:js.translator"))
- fullJsIrCli(project(":js:js.serializer"))
- fullJsIrCli(project(":js:js.dce"))
- fullJsIrCli(project(":kotlin-reflect"))
- fullJsIrCli(intellijCoreDep()) { includeJars("intellij-core") }
- if (Platform[193].orLower()) {
- fullJsIrCli(intellijDep()) {
- includeJars("picocontainer", rootProject = rootProject)
- }
- }
- fullJsIrCli(intellijDep()) {
- includeJars("trove4j", "guava", "jdom", "asm-all", rootProject = rootProject)
+kotlin {
+ js(IR) {
+ nodejs()
}
}
val unimplementedNativeBuiltIns =
- (file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/js-ir/builtins/").list())
- .map { "core/builtins/native/kotlin/$it" }
+ (file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/js-ir/builtins/").list())
+ .map { "core/builtins/native/kotlin/$it" }
// Required to compile native builtins with the rest of runtime
val builtInsHeader = """@file:Suppress(
@@ -55,13 +25,25 @@ val builtInsHeader = """@file:Suppress(
)
"""
-val fullRuntimeSources by task {
-
+val commonMainSources by task {
val sources = listOf(
- "core/builtins/src/kotlin/",
"libraries/stdlib/common/src/",
"libraries/stdlib/src/kotlin/",
- "libraries/stdlib/unsigned/",
+ "libraries/stdlib/unsigned/"
+ )
+
+ sources.forEach { path ->
+ from("$rootDir/$path") {
+ into(path.dropLastWhile { it != '/' })
+ }
+ }
+
+ into("$buildDir/commonMainSources")
+}
+
+val jsMainSources by task {
+ val sources = listOf(
+ "core/builtins/src/kotlin/",
"libraries/stdlib/js/src/",
"libraries/stdlib/js/runtime/",
"libraries/stdlib/js-ir/builtins/",
@@ -89,276 +71,88 @@ val fullRuntimeSources by task {
}
}
- into("$buildDir/fullRuntime/src")
+ into("$buildDir/jsMainSources")
doLast {
unimplementedNativeBuiltIns.forEach { path ->
- val file = File("$buildDir/fullRuntime/src/$path")
+ val file = File("$buildDir/jsMainSources/$path")
val sourceCode = builtInsHeader + file.readText()
file.writeText(sourceCode)
}
}
}
-val reducedRuntimeSources by task {
- dependsOn(fullRuntimeSources)
-
- from(fullRuntimeSources.get().outputs.files.singleFile) {
- exclude(
- listOf(
- "libraries/stdlib/unsigned/**",
- "libraries/stdlib/common/src/generated/_Arrays.kt",
- "libraries/stdlib/common/src/generated/_Collections.kt",
- "libraries/stdlib/common/src/generated/_Comparisons.kt",
- "libraries/stdlib/common/src/generated/_Maps.kt",
- "libraries/stdlib/common/src/generated/_Sequences.kt",
- "libraries/stdlib/common/src/generated/_Sets.kt",
- "libraries/stdlib/common/src/generated/_Strings.kt",
- "libraries/stdlib/common/src/generated/_UArrays.kt",
- "libraries/stdlib/common/src/generated/_URanges.kt",
- "libraries/stdlib/common/src/generated/_UCollections.kt",
- "libraries/stdlib/common/src/generated/_UComparisons.kt",
- "libraries/stdlib/common/src/generated/_USequences.kt",
- "libraries/stdlib/common/src/kotlin/SequencesH.kt",
- "libraries/stdlib/common/src/kotlin/TextH.kt",
- "libraries/stdlib/common/src/kotlin/UMath.kt",
- "libraries/stdlib/common/src/kotlin/collections/**",
- "libraries/stdlib/common/src/kotlin/ioH.kt",
- "libraries/stdlib/js-ir/runtime/collectionsHacks.kt",
- "libraries/stdlib/js-ir/src/generated/**",
- "libraries/stdlib/js-ir/src/kotlin/text/**",
- "libraries/stdlib/js/src/jquery/**",
- "libraries/stdlib/js/src/org.w3c/**",
- "libraries/stdlib/js/src/kotlin/char.kt",
- "libraries/stdlib/js/src/kotlin/collections.kt",
- "libraries/stdlib/js/src/kotlin/collections/**",
- "libraries/stdlib/js/src/kotlin/time/**",
- "libraries/stdlib/js/src/kotlin/console.kt",
- "libraries/stdlib/js/src/kotlin/coreDeprecated.kt",
- "libraries/stdlib/js/src/kotlin/date.kt",
- "libraries/stdlib/js/src/kotlin/debug.kt",
- "libraries/stdlib/js/src/kotlin/grouping.kt",
- "libraries/stdlib/js/src/kotlin/json.kt",
- "libraries/stdlib/js/src/kotlin/promise.kt",
- "libraries/stdlib/js/src/kotlin/regexp.kt",
- "libraries/stdlib/js/src/kotlin/sequence.kt",
- "libraries/stdlib/js/src/kotlin/throwableExtensions.kt",
- "libraries/stdlib/js/src/kotlin/text/**",
- "libraries/stdlib/js/src/kotlin/reflect/KTypeHelpers.kt",
- "libraries/stdlib/js/src/kotlin/reflect/KTypeParameterImpl.kt",
- "libraries/stdlib/js/src/kotlin/reflect/KTypeImpl.kt",
- "libraries/stdlib/src/kotlin/collections/**",
- "libraries/stdlib/src/kotlin/experimental/bitwiseOperations.kt",
- "libraries/stdlib/src/kotlin/properties/Delegates.kt",
- "libraries/stdlib/src/kotlin/random/URandom.kt",
- "libraries/stdlib/src/kotlin/text/**",
- "libraries/stdlib/src/kotlin/time/**",
- "libraries/stdlib/src/kotlin/util/KotlinVersion.kt",
- "libraries/stdlib/src/kotlin/util/Tuples.kt",
- "libraries/stdlib/js/src/kotlin/dom/**",
- "libraries/stdlib/js/src/kotlin/browser/**"
- )
- )
- }
-
- from("$rootDir/libraries/stdlib/js-ir/smallRuntime") {
- into("libraries/stdlib/js-ir/runtime/")
- }
-
- into("$buildDir/reducedRuntime/src")
-}
-
-fun JavaExec.buildKLib(
- moduleName: String,
- sources: List,
- dependencies: List,
- outDir: File,
- commonSources: List
-) {
- inputs.files(sources)
- .withPathSensitivity(PathSensitivity.RELATIVE)
-
- outputs.dir(file(outDir))
- outputs.cacheIf { true }
-
- classpath = jsIrKlibCli
- main = "org.jetbrains.kotlin.ir.backend.js.GenerateJsIrKlibKt"
- workingDir = rootDir
- args = sources.map(::pathRelativeToWorkingDir) +
- listOf("-n", moduleName, "-o", pathRelativeToWorkingDir(outDir)) +
- dependencies.flatMap { listOf("-d", pathRelativeToWorkingDir(it)) } +
- commonSources.flatMap { listOf("-c", pathRelativeToWorkingDir(it)) }
-
- dependsOn(":compiler:cli-js-klib:jar")
- passClasspathInJar()
-}
-
-val fullRuntimeDir = buildDir.resolve("fullRuntime/klib")
-
-val generateFullRuntimeKLib by eagerTask {
- dependsOn(fullRuntimeSources)
-
- buildKLib(moduleName = "kotlin",
- sources = listOf(fullRuntimeSources.get().outputs.files.singleFile),
- dependencies = emptyList(),
- outDir = fullRuntimeDir,
- commonSources = listOf("common", "src", "unsigned").map { file("$buildDir/fullRuntime/src/libraries/stdlib/$it") }
+val commonTestSources by task {
+ val sources = listOf(
+ "libraries/stdlib/test/",
+ "libraries/stdlib/common/test/"
)
+
+ sources.forEach { path ->
+ from("$rootDir/$path") {
+ into(path.dropLastWhile { it != '/' })
+ }
+ }
+
+ into("$buildDir/commonTestSources")
+}
+
+val jsTestSources by task {
+ from("$rootDir/libraries/stdlib/js/test/")
+ into("$buildDir/jsTestSources")
+}
+
+kotlin {
+ sourceSets {
+ val commonMain by getting {
+ kotlin.srcDir(commonMainSources.get().destinationDir)
+ }
+ val jsMain by getting {
+ kotlin.srcDir(jsMainSources.get().destinationDir)
+ }
+ val commonTest by getting {
+ dependencies {
+ api(project(":kotlin-test:kotlin-test-js-ir"))
+ }
+ kotlin.srcDir(commonTestSources.get().destinationDir)
+ }
+ val jsTest by getting {
+ dependencies {
+ api(project(":kotlin-test:kotlin-test-js-ir"))
+ }
+ kotlin.srcDir(jsTestSources.get().destinationDir)
+ }
+ }
+}
+
+tasks.withType>().configureEach {
+ kotlinOptions.freeCompilerArgs += listOf(
+ "-Xallow-kotlin-package",
+ "-Xallow-result-return-type",
+ "-Xuse-experimental=kotlin.Experimental",
+ "-Xuse-experimental=kotlin.ExperimentalMultiplatform",
+ "-Xuse-experimental=kotlin.contracts.ExperimentalContracts",
+ "-Xinline-classes",
+ "-Xopt-in=kotlin.RequiresOptIn",
+ "-Xopt-in=kotlin.ExperimentalUnsignedTypes",
+ "-Xopt-in=kotlin.ExperimentalStdlibApi"
+ )
+}
+
+tasks.named("compileKotlinJs") {
+ (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
+ dependsOn(commonMainSources)
+ dependsOn(jsMainSources)
+}
+
+tasks.named("compileTestKotlinJs") {
+ dependsOn(commonTestSources)
+ dependsOn(jsTestSources)
}
val packFullRuntimeKLib by tasks.registering(Jar::class) {
- dependsOn(generateFullRuntimeKLib)
- from(fullRuntimeDir)
+ dependsOn(tasks.named("compileKotlinJs"))
+ from(buildDir.resolve("classes/kotlin/js/main"))
destinationDirectory.set(rootProject.buildDir.resolve("js-ir-runtime"))
archiveFileName.set("full-runtime.klib")
-}
-
-val generateReducedRuntimeKLib by eagerTask {
- dependsOn(reducedRuntimeSources)
-
- buildKLib(moduleName = "kotlin",
- sources = listOf(reducedRuntimeSources.get().outputs.files.singleFile),
- dependencies = emptyList(),
- outDir = buildDir.resolve("reducedRuntime/klib"),
- commonSources = listOf("common", "src", "unsigned").map { file("$buildDir/reducedRuntime/src/libraries/stdlib/$it") }
- )
-}
-
-val generateWasmRuntimeKLib by eagerTask {
- buildKLib(moduleName = "kotlin",
- sources = listOf(file("$rootDir/libraries/stdlib/wasm")),
- dependencies = emptyList(),
- outDir = file("$buildDir/wasmRuntime/klib"),
- commonSources = emptyList()
- )
-}
-
-val kotlinTestCommonSources = listOf(
- "$rootDir/libraries/kotlin.test/annotations-common/src/main",
- "$rootDir/libraries/kotlin.test/common/src/main"
-)
-
-val generateKotlinTestKLib by eagerTask {
- dependsOn(generateFullRuntimeKLib)
-
- buildKLib(
- moduleName = "kotlin-test",
- sources = (listOf("$rootDir/libraries/kotlin.test/js/src/main") + kotlinTestCommonSources).map(::file),
- dependencies = listOf(generateFullRuntimeKLib.outputs.files.singleFile),
- outDir = file("$buildDir/kotlin.test/klib"),
- commonSources = kotlinTestCommonSources.map(::file)
- )
-}
-
-val jsTestDir = "${buildDir}/testSrc"
-
-val prepareStdlibTestSources by task {
- from("$rootDir/libraries/stdlib/test") {
- exclude("src/generated/**")
- into("test")
- }
- from("$rootDir/libraries/stdlib/common/test") {
- exclude("src/generated/**")
- into("common")
- }
- from("$rootDir/libraries/stdlib/js/test") {
- into("js")
- }
- into(jsTestDir)
-}
-
-fun JavaExec.buildJs(sources: List, dependencies: List, outPath: String, commonSources: List) {
- inputs.files(sources)
- outputs.dir(file(outPath).parent)
- classpath = fullJsIrCli
- main = "org.jetbrains.kotlin.cli.js.K2JsIrCompiler"
- workingDir = rootDir
-
- val libraryString: String = dependencies.joinToString(File.pathSeparator)
- val libraryArgs: List = if (libraryString.isEmpty()) emptyList() else listOf("-libraries", libraryString, "-Xfriend-modules=$libraryString")
- val allArgs =
- sources.toList() + listOf("-output", outPath) + libraryArgs + listOf(
- "-Xir-produce-js",
- "-Xmulti-platform",
- "-Xopt-in=kotlin.RequiresOptIn",
- "-Xopt-in=kotlin.contracts.ExperimentalContracts",
- "-Xopt-in=kotlin.ExperimentalMultiplatform",
- "-Xopt-in=kotlin.ExperimentalStdlibApi",
- "-Xopt-in=kotlin.ExperimentalUnsignedTypes"
- )
- args = allArgs
-
- dependsOn(":compiler:cli-js:jar")
- passClasspathInJar()
-}
-
-val testOutputFile = "$buildDir/kotlin-stdlib-js-ir_test.js"
-
-val tryRunFullCli by eagerTask {
- dependsOn(prepareStdlibTestSources)
- dependsOn(generateFullRuntimeKLib)
- dependsOn(generateKotlinTestKLib)
-
- buildJs(
- sources = listOf(jsTestDir),
- dependencies = listOf(
- generateFullRuntimeKLib.outputs.files.singleFile.path,
- generateKotlinTestKLib.outputs.files.singleFile.path
- ),
- outPath = testOutputFile,
- commonSources = emptyList()
- )
-}
-
-node {
- download = true
- version = "10.16.2"
- nodeModulesDir = buildDir
-}
-
-val installMocha by task {
- setArgs(listOf("install", "mocha"))
-}
-
-val installTeamcityReporter by task {
- setArgs(listOf("install", "mocha-teamcity-reporter"))
-}
-
-// TODO: TEST OUTPUT FILE
-// val kotlinTestTestOutputFile = "${project(':kotlin-test:kotlin-test-js').buildDir}/classes/kotlin/test/kotlin-test-js-ir_test.js"
-
-val runMocha by task {
- dependsOn(installMocha)
- dependsOn(tryRunFullCli)
-
- script = file("${buildDir}/node_modules/mocha/bin/mocha")
-
- if (project.hasProperty("teamcity")) {
- dependsOn(installTeamcityReporter)
- setArgs(
- listOf(
- "--reporter",
- "mocha-teamcity-reporter",
- "--reporter-options",
- "topLevelSuite=stdlib-js-ir"
- )
- )
- }
- else {
- setArgs(listOf("--reporter", "min"))
- }
-
- val allArgs = getArgs().toList() + listOf(testOutputFile/*, kotlinTestTestOutputFile*/)
- setArgs(allArgs)
-
- setIgnoreExitValue(kotlinBuildProperties.ignoreTestFailures)
- setWorkingDir(buildDir)
-}
-
-tasks {
- val test by registering { dependsOn(runMocha) }
- val check by existing { dependsOn(test) }
-
- // dummy task to make coreLibsInstall aggregate task not fail
- val install by registering
}
\ No newline at end of file
diff --git a/libraries/stdlib/js-v1/build.gradle b/libraries/stdlib/js-v1/build.gradle
index f51903e060c..496f9c62398 100644
--- a/libraries/stdlib/js-v1/build.gradle
+++ b/libraries/stdlib/js-v1/build.gradle
@@ -258,17 +258,16 @@ task libraryJarWithoutIr(type: Jar, dependsOn: compileJs) {
}
task libraryJarWithIr(type: Zip, dependsOn: libraryJarWithoutIr) {
-
archiveExtension = "jar"
destinationDirectory = file("$buildDir/libs")
duplicatesStrategy DuplicatesStrategy.FAIL
from zipTree(libraryJarWithoutIr.archiveFile)
- if (rootProject.includeStdlibJsIr) {
- def irKlib = tasks.getByPath(":kotlin-stdlib-js-ir:generateFullRuntimeKLib")
- dependsOn(irKlib)
- from fileTree(irKlib.outputs.files.singleFile.path)
+ dependsOn(":kotlin-stdlib-js-ir:compileKotlinJs")
+ from {
+ def irKlib = tasks.getByPath(":kotlin-stdlib-js-ir:compileKotlinJs")
+ fileTree(irKlib.outputs.files.first().path)
}
}
diff --git a/libraries/stdlib/wasm/build.gradle.kts b/libraries/stdlib/wasm/build.gradle.kts
new file mode 100644
index 00000000000..3c05bd98dc4
--- /dev/null
+++ b/libraries/stdlib/wasm/build.gradle.kts
@@ -0,0 +1,37 @@
+import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType.IR
+import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
+import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
+
+plugins {
+ kotlin("multiplatform")
+}
+
+kotlin {
+ js(IR) {
+ nodejs()
+ }
+ sourceSets {
+ val jsMain by getting {
+ kotlin.srcDirs("builtins", "internal", "runtime")
+ }
+ }
+}
+
+tasks.withType>().configureEach {
+ kotlinOptions.freeCompilerArgs += listOf(
+ "-Xallow-kotlin-package",
+ "-Xallow-result-return-type",
+ "-Xuse-experimental=kotlin.Experimental",
+ "-Xuse-experimental=kotlin.ExperimentalMultiplatform",
+ "-Xuse-experimental=kotlin.contracts.ExperimentalContracts",
+ "-Xinline-classes",
+ "-Xopt-in=kotlin.RequiresOptIn",
+ "-Xopt-in=kotlin.ExperimentalUnsignedTypes",
+ "-Xopt-in=kotlin.ExperimentalStdlibApi"
+ )
+}
+
+tasks.named("compileKotlinJs") {
+ (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
+}
\ No newline at end of file
diff --git a/libraries/stdlib/wasm/runtime/stubsKotlinRanges.kt b/libraries/stdlib/wasm/runtime/stubsKotlinRanges.kt
new file mode 100644
index 00000000000..e952b6893eb
--- /dev/null
+++ b/libraries/stdlib/wasm/runtime/stubsKotlinRanges.kt
@@ -0,0 +1,14 @@
+/*
+ * Copyright 2010-2020 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.
+ */
+
+@file:kotlin.wasm.internal.ExcludedFromCodegen
+
+package kotlin.ranges
+
+// Stubs for unimplemented classes used by CommonBackendContext
+
+class CharProgression
+class IntProgression
+class LongProgression
\ No newline at end of file
diff --git a/libraries/stdlib/wasm/testHelpers.kt b/libraries/stdlib/wasm/runtime/testHelpers.kt
similarity index 95%
rename from libraries/stdlib/wasm/testHelpers.kt
rename to libraries/stdlib/wasm/runtime/testHelpers.kt
index 1f47007a791..fa2d30a86d8 100644
--- a/libraries/stdlib/wasm/testHelpers.kt
+++ b/libraries/stdlib/wasm/runtime/testHelpers.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Copyright 2010-2020 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.
*/
diff --git a/libraries/stdlib/wasm/wasmAnnotations.kt b/libraries/stdlib/wasm/runtime/wasmAnnotations.kt
similarity index 99%
rename from libraries/stdlib/wasm/wasmAnnotations.kt
rename to libraries/stdlib/wasm/runtime/wasmAnnotations.kt
index c8f88a2851a..6ec72a60151 100644
--- a/libraries/stdlib/wasm/wasmAnnotations.kt
+++ b/libraries/stdlib/wasm/runtime/wasmAnnotations.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Copyright 2010-2020 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.
*/
diff --git a/libraries/stdlib/wasm/stubsKotlinRanges.kt b/libraries/stdlib/wasm/stubsKotlinRanges.kt
deleted file mode 100644
index f7d0dc85568..00000000000
--- a/libraries/stdlib/wasm/stubsKotlinRanges.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-@file:kotlin.wasm.internal.ExcludedFromCodegen
-
-package kotlin.ranges
-
-// Stubs for unimplemented classes used by CommonBackendContext
-
-class CharProgression
-class IntProgression
-class LongProgression
\ No newline at end of file
diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JsScriptEvaluationExtension.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JsScriptEvaluationExtension.kt
index 873abecc202..1242d51607b 100644
--- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JsScriptEvaluationExtension.kt
+++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/JsScriptEvaluationExtension.kt
@@ -31,7 +31,7 @@ import kotlin.script.experimental.jvm.JsDependency
fun loadScriptConfiguration(configuration: CompilerConfiguration) {
val scriptConfiguration = ScriptCompilationConfiguration {
baseClass("kotlin.Any")
- dependencies.append(JsDependency("libraries/stdlib/js-ir/build/fullRuntime/klib"))
+ dependencies.append(JsDependency("libraries/stdlib/js-ir/build/classes/kotlin/js/main/"))
platform.put("JS")
}
configuration.add(
diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt
index 37604efead2..832994859a3 100644
--- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt
+++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt
@@ -149,7 +149,7 @@ fun createCompileResult(lineId: LineId, code: String): ReplCompileResult.Compile
class DependencyLoader {
// TODO: this should be taken from CompilerConfiguration
- private val commonPath = "libraries/stdlib/js-ir/build/fullRuntime/klib"
+ private val commonPath = "libraries/stdlib/js-ir/build/classes/kotlin/js/main/"
private val mappedNamesPath = "$commonPath/mappedNames.txt"
private val scriptDependencyBinaryPath = "$commonPath/scriptDependencyBinary.js"
diff --git a/settings.gradle b/settings.gradle
index 9e774fa603a..2c69605fde3 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -108,7 +108,6 @@ include ":kotlin-build-common",
":compiler:ir.serialization.common",
":compiler:ir.serialization.jvm",
":compiler:ir.serialization.js",
- ":kotlin-stdlib-js-ir",
":compiler:backend.js",
":compiler:backend.wasm",
":compiler:backend.jvm",
@@ -349,6 +348,9 @@ if (buildProperties.inJpsBuildIdeaSync) {
":kotlin-stdlib-common",
":kotlin-stdlib",
":kotlin-stdlib-js",
+ ":kotlin-stdlib-js-ir",
+ ":kotlin-stdlib-js-ir-minimal-for-test",
+ ":kotlin-stdlib-wasm",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-stdlib:samples",
@@ -359,11 +361,15 @@ if (buildProperties.inJpsBuildIdeaSync) {
":include:kotlin-stdlib-common-sources",
":kotlin-test:kotlin-test-js",
+ ":kotlin-test:kotlin-test-js-ir",
":kotlin-test:kotlin-test-js:kotlin-test-js-it"
project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File
project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib/jvm" as File
project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File
+ project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
+ project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File
+ project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File
project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File
project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File
project(':kotlin-stdlib:samples').projectDir = "$rootDir/libraries/stdlib/samples" as File
@@ -373,6 +379,7 @@ if (buildProperties.inJpsBuildIdeaSync) {
project(':tools:kotlin-stdlib-gen').projectDir = "$rootDir/libraries/tools/kotlin-stdlib-gen" as File
project(':kotlin-test:kotlin-test-js').projectDir = "$rootDir/libraries/kotlin.test/js" as File
+ project(':kotlin-test:kotlin-test-js-ir').projectDir = "$rootDir/libraries/kotlin.test/js-ir" as File
project(':kotlin-test:kotlin-test-js:kotlin-test-js-it').projectDir = "$rootDir/libraries/kotlin.test/js/it" as File
}
@@ -421,7 +428,6 @@ project(':compiler:backend.jvm').projectDir = "$rootDir/compiler/ir/backend.jvm"
project(':compiler:ir.serialization.common').projectDir = "$rootDir/compiler/ir/serialization.common" as File
project(':compiler:ir.serialization.jvm').projectDir = "$rootDir/compiler/ir/serialization.jvm" as File
project(':compiler:ir.serialization.js').projectDir = "$rootDir/compiler/ir/serialization.js" as File
-project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
project(':kotlin-util-io').projectDir = "$rootDir/compiler/util-io" as File
project(':kotlin-util-klib').projectDir = "$rootDir/compiler/util-klib" as File
project(':kotlin-util-klib-metadata').projectDir = "$rootDir/compiler/util-klib-metadata" as File