fixup! [Wasm] make top-level function and property declarations with JsModule and JsQualifier resolve according to qualifier without
diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/ComplexExternalDeclarationsToTopLevelFunctionsLowering.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/ComplexExternalDeclarationsToTopLevelFunctionsLowering.kt
index 024dbc1..cb54c9da 100644
--- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/ComplexExternalDeclarationsToTopLevelFunctionsLowering.kt
+++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/ComplexExternalDeclarationsToTopLevelFunctionsLowering.kt
@@ -449,8 +449,8 @@
         val module = currentFile.getJsModule()
             ?: declaration.getJsModule()?.also {
                 name = when {
-                    declaration is IrClass && declaration.isObject -> null
                     qualifier != null -> name
+                    declaration is IrClass && declaration.isObject -> null
                     else -> "default"
                 }
             }
diff --git a/compiler/testData/codegen/boxWasmJsInterop/jsModuleWithQualifierOnVariable.kt b/compiler/testData/codegen/boxWasmJsInterop/jsModuleWithQualifierOnVariable.kt
index c06fcfa..d4f3c65 100644
--- a/compiler/testData/codegen/boxWasmJsInterop/jsModuleWithQualifierOnVariable.kt
+++ b/compiler/testData/codegen/boxWasmJsInterop/jsModuleWithQualifierOnVariable.kt
@@ -27,6 +27,11 @@
 @JsQualifier("a.b")
 external val y: Int
 
+@JsModule("./jsModuleWithQualifierOnVariable.mjs")
+@JsQualifier("a.b")
+@JsName("y")
+external val y1: Int
+
 // FILE: lib2.kt
 @file:JsModule("./jsModuleWithQualifierOnVariable.mjs")
 
@@ -34,16 +39,22 @@
 
 external fun getX(): Int
 
+@JsName("getX")
+external fun getX1(): Int
+
 // FILE: main.kt
 fun box(): String {
     if (qualified.x != 10) return "Fail1: ${qualified.x}"
     if (qualified.y != 20) return "Fail2: ${qualified.y}"
+    if (qualified.y1 != 20) return "Fail3: ${qualified.y1}"
 
     // The variable is referenced through its qualifier, so the write lands on a plain JS object.
     qualified.x = 30
-    if (qualified.x != 30) return "Fail3: ${qualified.x}"
-    if (named.getX() != 30) return "Fail4: ${named.getX()}"
-    if (qualified.y != 20) return "Fail5: ${qualified.y}"
+    if (qualified.x != 30) return "Fail4: ${qualified.x}"
+    if (named.getX() != 30) return "Fail5: ${named.getX()}"
+    if (qualified.y != 20) return "Fail6: ${qualified.y}"
+    if (qualified.y1 != 20) return "Fail7: ${qualified.y1}"
+    if (named.getX1() != 30) return "Fail8: ${named.getX1()}"
 
     return "OK"
 }