Fix hanling module names that require escaping

This commit is contained in:
Svyatoslav Kuzmich
2019-04-23 23:25:12 +03:00
parent c3a439a829
commit e30bdb8dc9
7 changed files with 102 additions and 7 deletions
@@ -5,12 +5,15 @@
package org.jetbrains.kotlin.ir.backend.js.transformers.irToJs
import org.jetbrains.kotlin.ir.backend.js.utils.RESERVED_IDENTIFIERS
import org.jetbrains.kotlin.js.backend.ast.*
import org.jetbrains.kotlin.js.naming.isValidES5Identifier
import org.jetbrains.kotlin.serialization.js.ModuleKind
object ModuleWrapperTranslation {
object Namer {
fun requiresEscaping(name: String) = false
fun requiresEscaping(name: String) =
!name.isValidES5Identifier() || name in RESERVED_IDENTIFIERS
}
fun wrap(
@@ -83,7 +83,7 @@ class StableNamesCollector : IrElementVisitorVoid {
}
}
private val RESERVED_IDENTIFIERS = setOf(
val RESERVED_IDENTIFIERS = setOf(
// keywords
"await", "break", "case", "catch", "continue", "debugger", "default", "delete", "do", "else", "finally", "for", "function", "if",
"in", "instanceof", "new", "return", "switch", "throw", "try", "typeof", "var", "void", "while", "with",