JS backend: added support for constant expressions in the sourcemap.
This commit is contained in:
@@ -57,8 +57,12 @@ import static org.jetbrains.k2js.translate.utils.mutator.LastExpressionMutator.m
|
|||||||
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression,
|
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression, @NotNull TranslationContext context) {
|
||||||
@NotNull TranslationContext context) {
|
return translateConstantExpression(expression, context).source(expression);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static JsNode translateConstantExpression(@NotNull JetConstantExpression expression, @NotNull TranslationContext context) {
|
||||||
CompileTimeConstant<?> compileTimeValue = context.bindingContext().get(BindingContext.COMPILE_TIME_VALUE, expression);
|
CompileTimeConstant<?> compileTimeValue = context.bindingContext().get(BindingContext.COMPILE_TIME_VALUE, expression);
|
||||||
|
|
||||||
// TODO: workaround for default parameters translation. Will be fixed later.
|
// TODO: workaround for default parameters translation. Will be fixed later.
|
||||||
@@ -96,6 +100,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
if (value instanceof Character) {
|
if (value instanceof Character) {
|
||||||
return context.program().getStringLiteral(value.toString());
|
return context.program().getStringLiteral(value.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new AssertionError(message(expression, "Unsupported constant expression"));
|
throw new AssertionError(message(expression, "Unsupported constant expression"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user