[K/JS, K/Wasm] Generate star imports for external objects with the @JsModule annotation for ES modules
This commit is contained in:
+8
-6
@@ -11,10 +11,7 @@ import org.jetbrains.kotlin.ir.backend.js.utils.*
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
||||
import org.jetbrains.kotlin.ir.util.isSimpleProperty
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.js.backend.ast.*
|
||||
import org.jetbrains.kotlin.utils.DFS
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
@@ -85,11 +82,16 @@ class JsNameLinkingNamer(
|
||||
parent.child(getJsNameOrKotlinName()).asString()
|
||||
}
|
||||
val name = JsName(sanitizeName(nameString), true)
|
||||
val nameRef = name.makeRef()
|
||||
|
||||
if (isEsModules) {
|
||||
imports[this] = JsImport(jsModule, JsImport.Target.Default(name.makeRef()))
|
||||
val importSubject = when {
|
||||
this is IrClass && isObject -> JsImport.Target.All(nameRef)
|
||||
else -> JsImport.Target.Default(nameRef)
|
||||
}
|
||||
imports[this] = JsImport(jsModule, importSubject)
|
||||
} else {
|
||||
importedModules += JsImportedModule(jsModule, name, name.makeRef())
|
||||
importedModules += JsImportedModule(jsModule, name, nameRef)
|
||||
}
|
||||
return name
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user