JS backend: cleanup JsFor creation. Added source map for "for, while, break, continue, try".
#KT-927 in progress (cherry picked from commit 4533f64)
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -377,14 +377,14 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitBreakExpression(@NotNull JetBreakExpression expression,
|
public JsNode visitBreakExpression(@NotNull JetBreakExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
return new JsBreak(getTargetLabel(expression, context));
|
return source(new JsBreak(getTargetLabel(expression, context)), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitContinueExpression(@NotNull JetContinueExpression expression,
|
public JsNode visitContinueExpression(@NotNull JetContinueExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
return new JsContinue(getTargetLabel(expression, context));
|
return source(new JsContinue(getTargetLabel(expression, context)), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -424,14 +424,14 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitForExpression(@NotNull JetForExpression expression,
|
public JsNode visitForExpression(@NotNull JetForExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
return ForTranslator.translate(expression, context);
|
return source(ForTranslator.translate(expression, context), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitTryExpression(@NotNull JetTryExpression expression,
|
public JsNode visitTryExpression(@NotNull JetTryExpression expression,
|
||||||
@NotNull TranslationContext context) {
|
@NotNull TranslationContext context) {
|
||||||
return TryTranslator.translate(expression, context);
|
return source(TryTranslator.translate(expression, context), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -78,7 +78,7 @@ public final class ArrayForTranslator extends ForTranslator {
|
|||||||
private JsBlock translate() {
|
private JsBlock translate() {
|
||||||
List<JsStatement> blockStatements = Lists.newArrayList();
|
List<JsStatement> blockStatements = Lists.newArrayList();
|
||||||
blockStatements.add(temporariesInitialization(loopRange, end).makeStmt());
|
blockStatements.add(temporariesInitialization(loopRange, end).makeStmt());
|
||||||
blockStatements.add(generateForExpression(getInitExpression(), getCondition(), getIncrementExpression(), getBody()));
|
blockStatements.add(new JsFor(getInitExpression(), getCondition(), getIncrementExpression(), getBody()));
|
||||||
return new JsBlock(blockStatements);
|
return new JsBlock(blockStatements);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-5
@@ -28,7 +28,8 @@ import org.jetbrains.k2js.translate.context.TranslationContext;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.k2js.translate.utils.JsAstUtils.*;
|
import static org.jetbrains.k2js.translate.utils.JsAstUtils.inequality;
|
||||||
|
import static org.jetbrains.k2js.translate.utils.JsAstUtils.newVar;
|
||||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.getLoopRange;
|
import static org.jetbrains.k2js.translate.utils.PsiUtils.getLoopRange;
|
||||||
import static org.jetbrains.k2js.translate.utils.TemporariesUtils.temporariesInitialization;
|
import static org.jetbrains.k2js.translate.utils.TemporariesUtils.temporariesInitialization;
|
||||||
import static org.jetbrains.k2js.translate.utils.TranslationUtils.translateLeftExpression;
|
import static org.jetbrains.k2js.translate.utils.TranslationUtils.translateLeftExpression;
|
||||||
@@ -79,10 +80,7 @@ public final class RangeLiteralForTranslator extends ForTranslator {
|
|||||||
private JsBlock translate() {
|
private JsBlock translate() {
|
||||||
List<JsStatement> blockStatements = Lists.newArrayList();
|
List<JsStatement> blockStatements = Lists.newArrayList();
|
||||||
blockStatements.add(temporariesInitialization(rangeEnd).makeStmt());
|
blockStatements.add(temporariesInitialization(rangeEnd).makeStmt());
|
||||||
blockStatements.add(generateForExpression(initExpression(),
|
blockStatements.add(new JsFor(initExpression(), getCondition(), getIncrExpression(), translateBody(null)));
|
||||||
getCondition(),
|
|
||||||
getIncrExpression(),
|
|
||||||
translateBody(null)));
|
|
||||||
return new JsBlock(blockStatements);
|
return new JsBlock(blockStatements);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -150,16 +150,6 @@ public final class JsAstUtils {
|
|||||||
return equality(new JsPrefixOperation(JsUnaryOperator.TYPEOF, expression), string);
|
return equality(new JsPrefixOperation(JsUnaryOperator.TYPEOF, expression), string);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public static JsFor generateForExpression(@NotNull JsVars initExpression,
|
|
||||||
@NotNull JsExpression condition,
|
|
||||||
@NotNull JsExpression incrementExpression,
|
|
||||||
@NotNull JsStatement body) {
|
|
||||||
JsFor result = new JsFor(initExpression, condition, incrementExpression);
|
|
||||||
result.setBody(body);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static JsVars newVar(@NotNull JsName name, @Nullable JsExpression expr) {
|
public static JsVars newVar(@NotNull JsName name, @Nullable JsExpression expr) {
|
||||||
return new JsVars(new JsVars.JsVar(name, expr));
|
return new JsVars(new JsVars.JsVar(name, expr));
|
||||||
|
|||||||
Reference in New Issue
Block a user