JS: minor

This commit is contained in:
Anton Bannykh
2018-12-24 16:13:29 +03:00
parent 2022a9c887
commit 6921d4d128
2 changed files with 9 additions and 34 deletions
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.js.inline.clean
import org.jetbrains.kotlin.js.backend.ast.*
import org.jetbrains.kotlin.js.backend.ast.metadata.coroutineMetadata
fun JsNode.resolveTemporaryNames() {
val renamings = resolveNames()
@@ -31,14 +30,6 @@ fun JsNode.resolveTemporaryNames() {
}
}
}
override fun visitFunction(x: JsFunction) {
x.coroutineMetadata?.apply {
accept(suspendObjectRef)
accept(baseClassRef)
}
super.visitFunction(x)
}
})
}
@@ -77,7 +68,7 @@ private fun JsNode.resolveNames(): Map<JsName, JsName> {
var labels = mutableSetOf<String>()
override fun visitLabel(x: JsLabel) {
val addedNames = mutableSetOf<String>()
var addedName: String? = null
if (x.name.isTemporary) {
var resolvedName = x.name.ident
var suffix = 0
@@ -85,15 +76,17 @@ private fun JsNode.resolveNames(): Map<JsName, JsName> {
resolvedName = "${x.name.ident}_${suffix++}"
}
replacements[x.name] = JsDynamicScope.declareName(resolvedName)
addedNames += resolvedName
addedName = resolvedName
}
super.visitLabel(x)
labels.removeAll(addedNames)
addedName?.let {
labels.remove(it)
}
}
override fun visitFunction(x: JsFunction) {
val oldLabels = labels
labels = mutableSetOf<String>()
labels = mutableSetOf()
super.visitFunction(x)
labels = oldLabels
}
@@ -18,7 +18,8 @@ package org.jetbrains.kotlin.js.translate.general
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.js.backend.ast.*
import org.jetbrains.kotlin.js.backend.ast.metadata.*
import org.jetbrains.kotlin.js.backend.ast.metadata.exportedPackage
import org.jetbrains.kotlin.js.backend.ast.metadata.exportedTag
import org.jetbrains.kotlin.js.translate.context.Namer
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils
import org.jetbrains.kotlin.js.translate.utils.createPrototypeStatements
@@ -182,26 +183,7 @@ class Merger(
override fun visitElement(node: JsNode) {
super.visitElement(node)
if (node is HasName) {
val oldName = node.name
node.name = oldName?.let { rename(it) }
node.name?.localAlias = oldName?.localAlias?.let { it.copy(name = rename(it.name)) }
}
if (node is JsFunction) {
val coroutineMetadata = node.coroutineMetadata
if (coroutineMetadata != null) {
node.coroutineMetadata = coroutineMetadata.copy(
baseClassRef = rename(coroutineMetadata.baseClassRef),
suspendObjectRef = rename(coroutineMetadata.suspendObjectRef)
)
}
}
if (node is JsExpression) {
node.localAlias = node.localAlias?.let {
JsImportedModule(it.externalName,
rename(it.internalName),
it.plainReference?.let { rename(it) }
)
}
node.name = node.name?.let { rename(it) }
}
}
})