diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmpty.kt b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmpty.kt index 781c2a0f634..01a409e27a0 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmpty.kt +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmpty.kt @@ -4,7 +4,7 @@ package com.google.dart.compiler.backend.js.ast -public class JsEmpty : SourceInfoAwareJsNode(), JsStatement { +public object JsEmpty : SourceInfoAwareJsNode(), JsStatement { override fun accept(v: JsVisitor) { v.visitEmpty(this) diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmptyExpression.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmptyExpression.java index 9f58fe96dfb..6285b06f08c 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmptyExpression.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsEmptyExpression.java @@ -26,7 +26,7 @@ public class JsEmptyExpression extends JsExpressionImpl { @Override @NotNull public JsStatement makeStmt() { - return new JsEmpty(); + return JsEmpty.INSTANCE$; } @Override diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsProgram.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsProgram.java index 8bbab3a6c9f..41507bdf106 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsProgram.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsProgram.java @@ -18,8 +18,6 @@ import static com.google.dart.compiler.backend.js.ast.JsNumberLiteral.JsIntLiter * A JavaScript program. */ public final class JsProgram extends SourceInfoAwareJsNode { - @NotNull - private final JsEmpty emptyStatement; @NotNull final JsExpression emptyExpression; private JsProgramFragment[] fragments; @@ -36,15 +34,9 @@ public final class JsProgram extends SourceInfoAwareJsNode { topScope = new JsObjectScope(rootScope, "Global", unitId); setFragmentCount(1); - emptyStatement = new JsEmpty(); emptyExpression = new JsEmptyExpression(); } - @NotNull - public JsEmpty getEmptyStatement() { - return emptyStatement; - } - @NotNull public JsExpression getEmptyExpression() { return emptyExpression; diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java index fb69927f9d6..12c8dcb4e9f 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/JsInliner.java @@ -283,12 +283,6 @@ public class JsInliner extends JsVisitorWithContextImpl { return getLastStatementLevelContext(); } - @NotNull - @Override - protected JsStatement getEmptyStatement() { - return getFunctionContext().getEmpty(); - } - @Override public void shiftCurrentStatementForward() { super.shiftCurrentStatementForward(); diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionContext.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionContext.kt index c6bbc51b0c7..7b46a926b60 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionContext.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/FunctionContext.kt @@ -52,10 +52,6 @@ abstract class FunctionContext( return getFunctionDefinitionImpl(call) != null } - public fun getEmpty(): JsEmpty { - return getScope().getProgram()?.getEmptyStatement()!! - } - public fun getScope(): JsScope { return function.getScope() } diff --git a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/StatementContext.kt b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/StatementContext.kt index 0d731fa0e18..2a6680c5bc4 100644 --- a/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/StatementContext.kt +++ b/js/js.inliner/src/org/jetbrains/kotlin/js/inline/context/StatementContext.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.js.inline.context import com.google.dart.compiler.backend.js.ast.JsContext +import com.google.dart.compiler.backend.js.ast.JsEmpty import com.google.dart.compiler.backend.js.ast.JsStatement abstract class StatementContext { @@ -28,20 +29,18 @@ abstract class StatementContext { public fun removeCurrentStatement() { val statementContext = getCurrentStatementContext() - statementContext.replaceMe(getEmptyStatement()) + statementContext.replaceMe(JsEmpty) } open public fun shiftCurrentStatementForward() { val statementContext = getCurrentStatementContext() val currentStatement = getCurrentStatement() statementContext.insertAfter(currentStatement) - statementContext.replaceMe(getEmptyStatement()) + statementContext.replaceMe(JsEmpty) } public fun getCurrentStatement(): JsStatement { val statementContext = getCurrentStatementContext() return statementContext.getCurrentNode() as JsStatement } - - protected abstract fun getEmptyStatement(): JsStatement } diff --git a/js/js.parser/src/com/google/gwt/dev/js/JsAstMapper.java b/js/js.parser/src/com/google/gwt/dev/js/JsAstMapper.java index 19f79f5b457..2fd43d32a6f 100644 --- a/js/js.parser/src/com/google/gwt/dev/js/JsAstMapper.java +++ b/js/js.parser/src/com/google/gwt/dev/js/JsAstMapper.java @@ -517,7 +517,7 @@ public class JsAstMapper { toForIn.setBody(bodyStmt); } else { - toForIn.setBody(program.getEmptyStatement()); + toForIn.setBody(JsEmpty.INSTANCE$); } return toForIn; @@ -545,7 +545,7 @@ public class JsAstMapper { toFor.setBody(bodyStmt); } else { - toFor.setBody(program.getEmptyStatement()); + toFor.setBody(JsEmpty.INSTANCE$); } return toFor; } @@ -892,7 +892,7 @@ public class JsAstMapper { else { // When map() returns null, we return an empty statement. // - return program.getEmptyStatement(); + return JsEmpty.INSTANCE$; } } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/TranslationContext.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/TranslationContext.java index 8be1e6a3e23..b0d8e2dfe1b 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/TranslationContext.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/TranslationContext.java @@ -302,11 +302,6 @@ public class TranslationContext { return dynamicContext.jsBlock(); } - @NotNull - public JsEmpty getEmptyStatement() { - return program().getEmptyStatement(); - } - @NotNull public JsExpression getEmptyExpression() { return program().getEmptyExpression(); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java index 12f8ec055f4..f0868d44c2f 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/ExpressionVisitor.java @@ -154,7 +154,7 @@ public final class ExpressionVisitor extends TranslatorVisitor { if (expressionInside != null) { return Translation.translateExpression(expressionInside, context); } - return context.getEmptyStatement(); + return JsEmpty.INSTANCE$; } @Override diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/LoopTranslator.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/LoopTranslator.kt index 66340c09621..61dfb7da504 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/LoopTranslator.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/LoopTranslator.kt @@ -45,7 +45,7 @@ public fun createWhile(doWhile: Boolean, expression: JetWhileExpressionBase, con if (body != null) Translation.translateAsStatementAndMergeInBlockIfNeeded(body, context) else - context.getEmptyStatement() + JsEmpty if (!conditionBlock.isEmpty()) { val breakIfConditionIsFalseStatement = JsIf(not(jsCondition), JsBreak()) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java index 11ed778b56c..e1b3bc45db9 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java @@ -63,7 +63,7 @@ public final class WhenTranslator extends AbstractTranslator { private JsStatement translate() { if (expressionToMatch != null && JsAstUtils.isEmptyExpression(expressionToMatch)) { - return context().getEmptyStatement(); + return JsEmpty.INSTANCE$; } JsIf currentIf = null;