[JS] Use kotlin-stdlib-js.klib instead of *.jar

This commit is contained in:
Ilya Goncharov
2023-10-10 14:44:49 +02:00
committed by Space Team
parent a79324037d
commit e9cc2931cc
3 changed files with 7 additions and 9 deletions
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtLibraryMod
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSdkModule
import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSourceModule
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
@@ -32,7 +31,6 @@ import org.jetbrains.kotlin.platform.js.JsPlatforms
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtTypeReference
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
import org.jetbrains.kotlin.utils.PathUtil
import org.junit.jupiter.api.Assertions
@@ -91,14 +89,14 @@ class StandaloneSessionBuilderTest {
@Test
fun testKotlinStdLibJs() {
doTestKotlinStdLibResolve(JsPlatforms.defaultJsPlatform, PathUtil.kotlinPathsForDistDirectory.jsStdLibJarPath.toPath())
doTestKotlinStdLibResolve(JsPlatforms.defaultJsPlatform, PathUtil.kotlinPathsForDistDirectory.jsStdLibKlibPath.toPath())
}
@Test
fun testKotlinStdLibJsWithInvalidKlib() {
doTestKotlinStdLibResolve(
JsPlatforms.defaultJsPlatform,
PathUtil.kotlinPathsForDistDirectory.jsStdLibJarPath.toPath(),
PathUtil.kotlinPathsForDistDirectory.jsStdLibKlibPath.toPath(),
additionalStdlibRoots = listOf(
Paths.get(System.getProperty("java.home")), // directory which exists and does not contain KLibs inside
PathUtil.kotlinPathsForDistDirectory.stdlibPath.toPath(), // file which exists and not a KLib
@@ -82,7 +82,7 @@ public class ForTestCompileRuntime {
@NotNull
public static File stdlibJsForTests() {
return assertExists(new File("dist/kotlinc/lib/kotlin-stdlib-js.jar"));
return assertExists(new File("dist/kotlinc/lib/kotlin-stdlib-js.klib"));
}
@NotNull
@@ -73,7 +73,7 @@ abstract class KotlinStandardLibrariesPathProvider : TestService {
abstract fun getAnnotationsJar(): File
/**
* kotlin-stdlib-js.jar
* kotlin-stdlib-js.klib
*/
abstract fun fullJsStdlib(): File
@@ -124,9 +124,9 @@ object StandardLibrariesPathProviderForKotlinProject : KotlinStandardLibrariesPa
override fun jvmAnnotationsForTests(): File = ForTestCompileRuntime.jvmAnnotationsForTests()
override fun getAnnotationsJar(): File = KtTestUtil.getAnnotationsJar()
override fun fullJsStdlib(): File = extractFromPropertyFirst("kotlin.js.full.stdlib.path") { "kotlin-stdlib-js.jar".dist() }
override fun defaultJsStdlib(): File = extractFromPropertyFirst("kotlin.js.reduced.stdlib.path") { "kotlin-stdlib-js.jar".dist() }
override fun kotlinTestJsKLib(): File = extractFromPropertyFirst("kotlin.js.kotlin.test.path") { "kotlin-test-js.jar".dist() }
override fun fullJsStdlib(): File = extractFromPropertyFirst("kotlin.js.full.stdlib.path") { "kotlin-stdlib-js.klib".dist() }
override fun defaultJsStdlib(): File = extractFromPropertyFirst("kotlin.js.reduced.stdlib.path") { "kotlin-stdlib-js.klib".dist() }
override fun kotlinTestJsKLib(): File = extractFromPropertyFirst("kotlin.js.kotlin.test.path") { "kotlin-test-js.klib".dist() }
private inline fun extractFromPropertyFirst(prop: String, onMissingProperty: () -> String): File {
val path = System.getProperty(prop, null) ?: onMissingProperty()