[K/JS] Fix nameBindings for ES-modules after the ES-modules external declarations optimization
This commit is contained in:
+1
@@ -90,6 +90,7 @@ class JsNameLinkingNamer(
|
||||
else -> JsImport.Target.Default(nameRef)
|
||||
}
|
||||
imports[this] = JsImport(jsModule, importSubject)
|
||||
nameMap[this] = name
|
||||
} else {
|
||||
importedModules += JsImportedModule(jsModule, name, nameRef)
|
||||
}
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@ private class JsIrAstSerializer {
|
||||
}
|
||||
|
||||
fun append(fragment: JsIrProgramFragment): JsIrAstSerializer {
|
||||
importedNames += fragment.imports.map { fragment.nameBindings[it.key]!! }
|
||||
importedNames += fragment.imports.map { fragment.nameBindings[it.key] ?: error("No binding for tag ${it.key}") }
|
||||
fragmentSerializer.writeFragment(fragment)
|
||||
return this
|
||||
}
|
||||
|
||||
Generated
+6
@@ -325,6 +325,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
Generated
+6
@@ -325,6 +325,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
Generated
+6
@@ -325,6 +325,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
+6
@@ -325,6 +325,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
Generated
+6
@@ -325,6 +325,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
Generated
+6
@@ -325,6 +325,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotation/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jsModuleAnnotationOnObjectWithUsage")
|
||||
public void testJsModuleAnnotationOnObjectWithUsage() throws Exception {
|
||||
runTest("js/js.translator/testData/incremental/invalidation/jsModuleAnnotationOnObjectWithUsage/");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("languageVersionSettings")
|
||||
public void testLanguageVersionSettings() throws Exception {
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
external object ObjectB {
|
||||
fun getResult(): String
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
@JsNonModule
|
||||
@JsModule("../third-party-lib.mjs")
|
||||
external object ObjectB {
|
||||
fun getResult(): String
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
STEP 0:
|
||||
modifications:
|
||||
U : ObjectB.0.kt -> ObjectB.kt
|
||||
added file: ObjectB.kt
|
||||
STEP 1:
|
||||
modifications:
|
||||
U : ObjectB.1.kt -> ObjectB.kt
|
||||
modified ir: ObjectB.kt
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
@OptIn(kotlin.ExperimentalStdlibApi::class)
|
||||
@EagerInitialization
|
||||
val initJsObject = js("""
|
||||
globalThis.ObjectB = { getResult: function() { return "OK" } }
|
||||
""")
|
||||
|
||||
fun box(stepId: Int): String {
|
||||
return ObjectB.getResult()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: lib1
|
||||
added file: m.kt
|
||||
STEP 1:
|
||||
dependencies: lib1
|
||||
updated imports: m.kt
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
MODULES: lib1, main
|
||||
MODULE_KIND: es
|
||||
IGNORE_PER_MODULE: true
|
||||
|
||||
STEP 0:
|
||||
libs: lib1, main
|
||||
dirty js modules: lib1, main
|
||||
dirty js files: lib1/ObjectB, main/m, main/m.export, main
|
||||
STEP 1:
|
||||
libs: lib1, main
|
||||
dirty js modules: lib1, main
|
||||
dirty js files: lib1/ObjectB, main/m
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export function getResult() {
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user