diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java b/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java index 252f2391018..36875a1c3bd 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/JsInliner.java @@ -32,6 +32,7 @@ import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionD import static org.jetbrains.k2js.inline.FunctionInlineMutator.getInlineableCallReplacement; import static org.jetbrains.k2js.inline.util.UtilPackage.IdentitySet; import static org.jetbrains.k2js.inline.util.UtilPackage.collectNamedFunctions; +import static org.jetbrains.k2js.translate.utils.JsAstUtils.flattenStatement; public class JsInliner extends JsVisitorWithContextImpl { @@ -145,12 +146,7 @@ public class JsInliner extends JsVisitorWithContextImpl { /** @see #lastStatementWasShifted */ statementContext.shiftCurrentStatementForward(); InsertionPoint insertionPoint = statementContext.getInsertionPoint(); - if (inlineableBody instanceof JsBlock) { - JsBlock block = (JsBlock) inlineableBody; - insertionPoint.insertAllAfter(block.getStatements()); - } else { - insertionPoint.insertAfter(inlineableBody); - } + insertionPoint.insertAllAfter(flattenStatement(inlineableBody)); } /** 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 2a53e76f758..d309b212ec6 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 @@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.types.expressions.OperatorConventions; import org.jetbrains.k2js.translate.context.Namer; import org.jetbrains.k2js.translate.context.TranslationContext; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -456,4 +457,13 @@ public final class JsAstUtils { qualifier = (JsNameRef) parent; } } + + @NotNull + public static List flattenStatement(@NotNull JsStatement statement) { + if (statement instanceof JsBlock) { + return ((JsBlock) statement).getStatements(); + } + + return new SmartList(statement); + } }