[JS IR] split fqn-ish JsNames before resolving temporary names
This commit is contained in:
committed by
TeamCityServer
parent
a5d9cb0cc6
commit
05e8bfcd2a
+15
@@ -8,6 +8,21 @@ package org.jetbrains.kotlin.ir.backend.js.transformers.irToJs
|
||||
import org.jetbrains.kotlin.js.backend.ast.*
|
||||
|
||||
fun JsNode.resolveTemporaryNames() {
|
||||
object : JsVisitorWithContextImpl() {
|
||||
override fun endVisit(x: JsNameRef, ctx: JsContext<JsNode>) {
|
||||
x.name?.ident?.let {
|
||||
if (it.contains('.')) {
|
||||
val parts = it.split('.').map { JsName(it, false) }
|
||||
var result = JsNameRef(parts[0])
|
||||
for (i in 1 until parts.size) {
|
||||
result = JsNameRef(parts[i], result)
|
||||
}
|
||||
ctx.replaceMe(result)
|
||||
}
|
||||
}
|
||||
}
|
||||
}.accept(this)
|
||||
|
||||
val renamings = resolveNames()
|
||||
accept(object : RecursiveJsVisitor() {
|
||||
override fun visitElement(node: JsNode) {
|
||||
|
||||
Reference in New Issue
Block a user