diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/AliasingContext.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/AliasingContext.java index 82d6ef2d75b..21bc2832c5b 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/AliasingContext.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/AliasingContext.java @@ -17,7 +17,6 @@ package org.jetbrains.k2js.translate.context; import com.google.dart.compiler.backend.js.ast.JsExpression; -import com.google.dart.compiler.backend.js.ast.JsName; import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -35,7 +34,7 @@ public class AliasingContext { } @Override - public JsName getAliasForExpression(@NotNull JetExpression element) { + public JsExpression getAliasForExpression(@NotNull JetExpression element) { return null; } @@ -53,7 +52,7 @@ public class AliasingContext { private Map aliasesForDescriptors; @Nullable - private final Map aliasesForExpressions; + private final Map aliasesForExpressions; @Nullable private final AliasingContext parent; @@ -65,7 +64,7 @@ public class AliasingContext { private AliasingContext( @Nullable AliasingContext parent, @Nullable Map aliasesForDescriptors, - @Nullable Map aliasesForExpressions + @Nullable Map aliasesForExpressions ) { this.parent = parent; this.aliasesForDescriptors = aliasesForDescriptors; @@ -92,7 +91,7 @@ public class AliasingContext { } @NotNull - public AliasingContext withExpressionsAliased(@NotNull Map aliasesForExpressions) { + public AliasingContext withExpressionsAliased(@NotNull Map aliasesForExpressions) { return new AliasingContext(this, null, aliasesForExpressions); } @@ -115,8 +114,8 @@ public class AliasingContext { } @Nullable - public JsName getAliasForExpression(@NotNull JetExpression element) { - JsName alias = aliasesForExpressions == null ? null : aliasesForExpressions.get(element); + public JsExpression getAliasForExpression(@NotNull JetExpression element) { + JsExpression alias = aliasesForExpressions == null ? null : aliasesForExpressions.get(element); return alias != null || parent == null ? alias : parent.getAliasForExpression(element); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java index e75f9421fb5..309e1a04f66 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java @@ -134,7 +134,7 @@ public class TranslationContext { } @NotNull - public TranslationContext innerContextWithAliasesForExpressions(@NotNull Map aliases) { + public TranslationContext innerContextWithAliasesForExpressions(@NotNull Map aliases) { return new TranslationContext(this, aliasingContext.withExpressionsAliased(aliases)); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java b/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java index a614df594ae..9bf954c0df1 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/general/Translation.java @@ -76,9 +76,9 @@ public final class Translation { @NotNull public static JsNode translateExpression(@NotNull JetExpression expression, @NotNull TranslationContext context) { - JsName aliasForExpression = context.aliasingContext().getAliasForExpression(expression); + JsExpression aliasForExpression = context.aliasingContext().getAliasForExpression(expression); if (aliasForExpression != null) { - return aliasForExpression.makeRef(); + return aliasForExpression; } DangerousData data = collect(expression, context); if (data.shouldBeTranslated()) { diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/dangerous/DangerousTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/dangerous/DangerousTranslator.java index fdf8a28a3ee..01d75062e70 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/dangerous/DangerousTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/dangerous/DangerousTranslator.java @@ -17,7 +17,6 @@ package org.jetbrains.k2js.translate.utils.dangerous; import com.google.dart.compiler.backend.js.ast.JsExpression; -import com.google.dart.compiler.backend.js.ast.JsName; import com.google.dart.compiler.backend.js.ast.JsNode; import com.google.dart.compiler.backend.js.ast.JsVars; import gnu.trove.THashMap; @@ -48,21 +47,21 @@ public final class DangerousTranslator extends AbstractTranslator { @NotNull private JsNode translate() { - Map aliasesForExpressions = + Map aliasesForExpressions = translateAllExpressionsAndCreateAliasesForThem(data.getNodesToBeGeneratedBefore()); TranslationContext contextWithAliases = context().innerContextWithAliasesForExpressions(aliasesForExpressions); return Translation.doTranslateExpression(data.getRootNode(), contextWithAliases); } @NotNull - private Map translateAllExpressionsAndCreateAliasesForThem(@NotNull List expressions) { - Map aliasesForExpressions = new THashMap(expressions.size()); + private Map translateAllExpressionsAndCreateAliasesForThem(@NotNull List expressions) { + Map aliasesForExpressions = new THashMap(expressions.size()); List vars = new ArrayList(expressions.size()); for (JetExpression expression : expressions) { JsExpression translatedExpression = Translation.translateAsExpression(expression, context()); JsVars.JsVar aliasForExpression = context().dynamicContext().createTemporaryVar(translatedExpression); vars.add(aliasForExpression); - aliasesForExpressions.put(expression, aliasForExpression.getName()); + aliasesForExpressions.put(expression, aliasForExpression.getName().makeRef()); } context().addStatementToCurrentBlock(new JsVars(vars, true)); return aliasesForExpressions;