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 package org.jetbrains.kotlin.js.inline.clean
import org.jetbrains.kotlin.js.backend.ast.* import org.jetbrains.kotlin.js.backend.ast.*
import org.jetbrains.kotlin.js.backend.ast.metadata.coroutineMetadata
fun JsNode.resolveTemporaryNames() { fun JsNode.resolveTemporaryNames() {
val renamings = resolveNames() 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>() var labels = mutableSetOf<String>()
override fun visitLabel(x: JsLabel) { override fun visitLabel(x: JsLabel) {
val addedNames = mutableSetOf<String>() var addedName: String? = null
if (x.name.isTemporary) { if (x.name.isTemporary) {
var resolvedName = x.name.ident var resolvedName = x.name.ident
var suffix = 0 var suffix = 0
@@ -85,15 +76,17 @@ private fun JsNode.resolveNames(): Map<JsName, JsName> {
resolvedName = "${x.name.ident}_${suffix++}" resolvedName = "${x.name.ident}_${suffix++}"
} }
replacements[x.name] = JsDynamicScope.declareName(resolvedName) replacements[x.name] = JsDynamicScope.declareName(resolvedName)
addedNames += resolvedName addedName = resolvedName
} }
super.visitLabel(x) super.visitLabel(x)
labels.removeAll(addedNames) addedName?.let {
labels.remove(it)
}
} }
override fun visitFunction(x: JsFunction) { override fun visitFunction(x: JsFunction) {
val oldLabels = labels val oldLabels = labels
labels = mutableSetOf<String>() labels = mutableSetOf()
super.visitFunction(x) super.visitFunction(x)
labels = oldLabels labels = oldLabels
} }
@@ -18,7 +18,8 @@ package org.jetbrains.kotlin.js.translate.general
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.js.backend.ast.* 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.context.Namer
import org.jetbrains.kotlin.js.translate.utils.JsAstUtils import org.jetbrains.kotlin.js.translate.utils.JsAstUtils
import org.jetbrains.kotlin.js.translate.utils.createPrototypeStatements import org.jetbrains.kotlin.js.translate.utils.createPrototypeStatements
@@ -182,26 +183,7 @@ class Merger(
override fun visitElement(node: JsNode) { override fun visitElement(node: JsNode) {
super.visitElement(node) super.visitElement(node)
if (node is HasName) { if (node is HasName) {
val oldName = node.name node.name = node.name?.let { rename(it) }
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) }
)
}
} }
} }
}) })