From fd165f055f2127ba0c2d739c61d82d6f3b8a114e Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 31 Mar 2014 14:56:45 +0400 Subject: [PATCH] Minor in JS backend: - use constants from Namer in JsAstUtils#createPackage; - dropped extra JsInvoke node when create IIF; - create new JsName for Kotlin object in IIF scope. --- .../src/org/jetbrains/k2js/translate/context/Namer.java | 1 + .../org/jetbrains/k2js/translate/utils/JsAstUtils.java | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/Namer.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/Namer.java index eef688f3fa4..580296c1489 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/Namer.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/Namer.java @@ -32,6 +32,7 @@ import static org.jetbrains.jet.lang.descriptors.ClassKind.TRAIT; public final class Namer { public static final String KOTLIN_NAME = JetLanguage.NAME; public static final String KOTLIN_LOWER_NAME = KOTLIN_NAME.toLowerCase(); + public static final JsNameRef KOTLIN_OBJECT_REF = new JsNameRef(KOTLIN_NAME); public static final String CALLEE_NAME = "$fun"; diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/JsAstUtils.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/JsAstUtils.java index 00d969d2a70..345d2355eea 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/JsAstUtils.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/JsAstUtils.java @@ -30,7 +30,6 @@ import java.util.List; public final class JsAstUtils { private static final JsNameRef DEFINE_PROPERTY = new JsNameRef("defineProperty"); public static final JsNameRef CREATE_OBJECT = new JsNameRef("create"); - private static final JsNameRef EMPTY_REF = new JsNameRef(""); private static final JsNameRef VALUE = new JsNameRef("value"); private static final JsPropertyInitializer WRITABLE = new JsPropertyInitializer(new JsNameRef("writable"), JsLiteral.TRUE); @@ -232,8 +231,12 @@ public final class JsAstUtils { @NotNull public static JsFunction createPackage(@NotNull List to, @NotNull JsScope scope) { JsFunction packageBlockFunction = createFunctionWithEmptyBody(scope); - packageBlockFunction.getParameters().add(new JsParameter(scope.findName("Kotlin"))); - to.add(new JsInvocation(EMPTY_REF, new JsInvocation(packageBlockFunction, new JsNameRef("Kotlin"))).makeStmt()); + + JsName kotlinObjectAsParameter = packageBlockFunction.getScope().declareName(Namer.KOTLIN_NAME); + packageBlockFunction.getParameters().add(new JsParameter(kotlinObjectAsParameter)); + + to.add(new JsInvocation(packageBlockFunction, Namer.KOTLIN_OBJECT_REF).makeStmt()); + return packageBlockFunction; }