diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt index f5163534a62..42fc6779169 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/NameTables.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.js.naming.isES5IdentifierPart import org.jetbrains.kotlin.js.naming.isES5IdentifierStart +import org.jetbrains.kotlin.js.naming.isValidES5Identifier import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty import java.util.* @@ -44,7 +45,6 @@ private fun mapToKey(declaration: T): String { class NameTable( val parent: NameTable<*>? = null, val reserved: MutableSet = mutableSetOf(), - val sanitizer: (String) -> String = ::sanitizeName, val mappedNames: MutableMap? = null ) { var finished = false @@ -65,7 +65,7 @@ class NameTable( } fun declareFreshName(declaration: T, suggestedName: String): String { - val freshName = findFreshName(sanitizer(suggestedName)) + val freshName = findFreshName(sanitizeName(suggestedName)) declareStableName(declaration, freshName) return freshName } @@ -424,6 +424,7 @@ class NameTables( fun sanitizeName(name: String): String { + if (name.isValidES5Identifier()) return name if (name.isEmpty()) return "_" val first = name.first().let { if (it.isES5IdentifierStart()) it else '_' }