diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt
index 6c4788d..f1cef92 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt
@@ -604,11 +604,11 @@
         // TODO: consider skip deserializing explicitly exported declarations for libraries.
         // Now it's not valid because of all dependencies that must be computed.
         val deserializationStrategy =
-            if (exportedDependencies.contains(moduleDescriptor)) {
+//            if (exportedDependencies.contains(moduleDescriptor)) {
                 DeserializationStrategy.ALL
-            } else {
-                DeserializationStrategy.EXPLICITLY_EXPORTED
-            }
+//            } else {
+//                DeserializationStrategy.EXPLICITLY_EXPORTED
+//            }
         return deserializeIrModuleHeader(moduleDescriptor, deserializationStrategy)
     }
 
diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts
index eddc439..6387edc 100644
--- a/js/js.tests/build.gradle.kts
+++ b/js/js.tests/build.gradle.kts
@@ -113,7 +113,7 @@
     setUpJsBoxTests(jsEnabled = true, jsIrEnabled = false)
 }
 
-projectTest("jsIrTest", true) {
+projectTest("jsIrTest", false) {
     setUpJsBoxTests(jsEnabled = false, jsIrEnabled = true)
 }
 
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 dc5e0f7..220bc8f 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
@@ -50,8 +50,10 @@
     private val compilationCache = mutableMapOf<String, String>()
 
     override fun doTest(filePath: String, expectedResult: String, mainCallParameters: MainCallParameters, coroutinesPackage: String) {
+        val start = System.currentTimeMillis()
         compilationCache.clear()
         super.doTest(filePath, expectedResult, mainCallParameters, coroutinesPackage)
+        println("$filePath: ${System.currentTimeMillis() - start}ms")
     }
 
     override val testChecker get() = if (runTestInNashorn) NashornIrJsTestChecker() else V8IrJsTestChecker
@@ -76,7 +78,7 @@
             // TODO: split input files to some parts (global common, local common, test)
             .filterNot { it.virtualFilePath.contains(COMMON_FILES_DIR_PATH) }
 
-        val runtimeKlibs = if (needsFullIrRuntime) listOf(fullRuntimeKlib, kotlinTestKLib) else listOf(defaultRuntimeKlib)
+        val runtimeKlibs = if (needsFullIrRuntime) listOf(fullRuntimeKlib, kotlinTestKLib) else listOf(fullRuntimeKlib)
 
         val transitiveLibraries = config.configuration[JSConfigurationKeys.TRANSITIVE_LIBRARIES]!!.map { File(it).name }
 
