diff --git a/compiler/build.gradle.kts b/compiler/build.gradle.kts index f2a35655bc5..c3d05833f41 100644 --- a/compiler/build.gradle.kts +++ b/compiler/build.gradle.kts @@ -56,6 +56,7 @@ projectTest( defineJDKEnvVariables = listOf(JdkMajorVersion.JDK_1_8, JdkMajorVersion.JDK_11_0, JdkMajorVersion.JDK_17_0) ) { dependsOn(":dist") + useJsIrBoxTests(version = version, buildDir = "$buildDir/") workingDir = rootDir systemProperty("kotlin.test.script.classpath", testSourceSet.output.classesDirs.joinToString(File.pathSeparator)) diff --git a/compiler/fir/analysis-tests/build.gradle.kts b/compiler/fir/analysis-tests/build.gradle.kts index fcacaf1ddf1..aad11fc42df 100644 --- a/compiler/fir/analysis-tests/build.gradle.kts +++ b/compiler/fir/analysis-tests/build.gradle.kts @@ -66,6 +66,7 @@ projectTest( dependsOn(":dist") workingDir = rootDir useJUnitPlatform() + useJsIrBoxTests(version = version, buildDir = "$buildDir/") } testsJar() diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJsSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJsSessionFactory.kt index 40a96d0573e..b2fa1d57057 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJsSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJsSessionFactory.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory -import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider +import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider import org.jetbrains.kotlin.fir.resolve.providers.impl.FirExtensionSyntheticFunctionInterfaceProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper @@ -95,10 +95,7 @@ object FirJsSessionFactory : FirAbstractSessionFactory() { createProviders = { session, builtinsModuleData, kotlinScopeProvider -> listOfNotNull( KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, resolvedLibraries), - // (Most) builtins should be taken from the dependencies in JS compilation, therefore builtins provider is the last one - // TODO: consider using "poisoning" provider for builtins to ensure that proper ones are taken from dependencies - // NOTE: it requires precise filtering for true builtins, like Function* - FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider), + FirBuiltinSyntheticFunctionInterfaceProvider(session, builtinsModuleData, kotlinScopeProvider), FirExtensionSyntheticFunctionInterfaceProvider.createIfNeeded(session, builtinsModuleData, kotlinScopeProvider), ) } diff --git a/compiler/incremental-compilation-impl/build.gradle.kts b/compiler/incremental-compilation-impl/build.gradle.kts index 332ffe0e4ba..7e2ea6ec437 100644 --- a/compiler/incremental-compilation-impl/build.gradle.kts +++ b/compiler/incremental-compilation-impl/build.gradle.kts @@ -43,10 +43,12 @@ sourceSets { projectTest(parallel = true) { workingDir = rootDir dependsOn(":kotlin-stdlib-js-ir:packFullRuntimeKLib") + useJsIrBoxTests(version = version, buildDir = "$buildDir/") } projectTest("testJvmICWithJdk11", parallel = true) { workingDir = rootDir + useJsIrBoxTests(version = version, buildDir = "$buildDir/") filter { includeTestsMatching("org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunnerTestGenerated*") } diff --git a/compiler/testData/cli/js/fir.args b/compiler/testData/cli/js/fir.args index 4d1e8697624..1ebd6d9b7b2 100644 --- a/compiler/testData/cli/js/fir.args +++ b/compiler/testData/cli/js/fir.args @@ -5,3 +5,5 @@ $TESTDATA_DIR$/fir.kt $TEMP_DIR$ -ir-output-name fir +-libraries +libraries/stdlib/js-ir/build/classes/kotlin/js/main diff --git a/compiler/testData/cli/js/firMpp.args b/compiler/testData/cli/js/firMpp.args index a0cdcf66ddc..9b0825493a4 100644 --- a/compiler/testData/cli/js/firMpp.args +++ b/compiler/testData/cli/js/firMpp.args @@ -8,3 +8,5 @@ $TEMP_DIR$ -ir-output-name firMpp -XXLanguage\:+MultiPlatformProjects +-libraries +libraries/stdlib/js-ir/build/classes/kotlin/js/main diff --git a/compiler/testData/cli/js/firMppWithKlib.args b/compiler/testData/cli/js/firMppWithKlib.args index b3457dcc89e..04d50a2ee19 100644 --- a/compiler/testData/cli/js/firMppWithKlib.args +++ b/compiler/testData/cli/js/firMppWithKlib.args @@ -9,3 +9,5 @@ $TEMP_DIR$ firMppWithKlib -XXLanguage\:+MultiPlatformProjects -Xir-produce-klib-file=true +-libraries +libraries/stdlib/js-ir/build/classes/kotlin/js/main diff --git a/compiler/testData/cli/js/successfulHmpp.args b/compiler/testData/cli/js/successfulHmpp.args index 0ff0034ea2e..a84787b3f82 100644 --- a/compiler/testData/cli/js/successfulHmpp.args +++ b/compiler/testData/cli/js/successfulHmpp.args @@ -14,3 +14,5 @@ fir-hmpp -Xfragment-sources=c\:$TESTDATA_DIR$/../jvm/hmpp/src/c.kt -Xfragment-refines=b\:a -Xfragment-refines=c\:b +-libraries +libraries/stdlib/js-ir/build/classes/kotlin/js/main diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/jvmDeclarations/cloneable.fir.kt b/compiler/testData/diagnostics/testsWithJsStdLib/jvmDeclarations/cloneable.fir.kt index 412daba8218..ae43c66627d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/jvmDeclarations/cloneable.fir.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/jvmDeclarations/cloneable.fir.kt @@ -1,3 +1,3 @@ -import kotlin.Cloneable +import kotlin.Cloneable -fun cloneable(): Cloneable = intArrayOf(42) +fun cloneable(): Cloneable = intArrayOf(42) diff --git a/compiler/testData/ir/irText/classes/cloneable.kt b/compiler/testData/ir/irText/classes/cloneable.kt index b4a7fd88722..cbb738c02dc 100644 --- a/compiler/testData/ir/irText/classes/cloneable.kt +++ b/compiler/testData/ir/irText/classes/cloneable.kt @@ -2,6 +2,9 @@ // SKIP_KLIB_TEST // IGNORE_BACKEND_K1: JS_IR // IGNORE_BACKEND_K1: JS_IR_ES6 +// IGNORE_BACKEND_K2: JS_IR +// IGNORE_BACKEND_K2: JS_IR_ES6 +// STATUS: This should not work in JS, Cloneable is JVM-specific API class A : Cloneable diff --git a/js/js.translator/testData/box/number/kt26706.kt b/js/js.translator/testData/box/number/kt26706.kt index 2a75ea4d066..3f55a5cdaf7 100644 --- a/js/js.translator/testData/box/number/kt26706.kt +++ b/js/js.translator/testData/box/number/kt26706.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_K2: JS_IR // KJS_WITH_FULL_RUNTIME // EXPECTED_REACHABLE_NODES: 1378 package foo