JS: refactor JsScope, JsName and related things, since it's became unnecessary to track scopes and declaration order of temporary JsName's

This commit is contained in:
Alexey Andreev
2017-02-10 20:04:41 +03:00
parent 9530ce6c26
commit 9e0a06a4aa
28 changed files with 68 additions and 114 deletions
@@ -365,7 +365,7 @@ internal class ExpressionDecomposer private constructor(
}
private inner class Temporary(val value: JsExpression? = null) {
val name: JsName = scope.declareTemporary()
val name: JsName = JsScope.declareTemporary()
val variable: JsVars = newVar(name, value).apply {
synthetic = true
@@ -50,9 +50,6 @@ class NamingContext(
fun getFreshName(candidate: String): JsName = scope.declareFreshName(candidate)
fun getTemporaryName(candidate: String): JsName = scope.declareTemporaryName(candidate)
fun newVar(name: JsName, value: JsExpression? = null) {
val vars = JsAstUtils.newVar(name, value)
vars.synthetic = true
@@ -32,7 +32,7 @@ fun aliasArgumentsIfNeeded(
for ((arg, param) in arguments.zip(parameters)) {
val paramName = param.name
val replacement = context.getTemporaryName(paramName.ident).apply {
val replacement = JsScope.declareTemporaryName(paramName.ident).apply {
staticRef = arg
context.newVar(this, arg.deepCopy())
}.makeRef()
@@ -43,7 +43,7 @@ fun aliasArgumentsIfNeeded(
val defaultParams = parameters.subList(arguments.size, parameters.size)
for (defaultParam in defaultParams) {
val paramName = defaultParam.name
val freshName = context.getTemporaryName(paramName.ident)
val freshName = JsScope.declareTemporaryName(paramName.ident)
context.newVar(freshName)
context.replaceName(paramName, freshName.makeRef())
@@ -58,7 +58,7 @@ fun renameLocalNames(
function: JsFunction
) {
for (name in collectDefinedNames(function.body)) {
val temporaryName = context.getTemporaryName(name.ident).apply { staticRef = name.staticRef }
val temporaryName = JsScope.declareTemporaryName(name.ident).apply { staticRef = name.staticRef }
context.replaceName(name, temporaryName.makeRef())
}
}