JS backend: added support for constant expressions in the sourcemap.

This commit is contained in:
Zalim Bashorov
2013-10-07 20:09:56 +04:00
parent 0aa1d0265b
commit 3aeb565a60
@@ -57,8 +57,12 @@ import static org.jetbrains.k2js.translate.utils.mutator.LastExpressionMutator.m
public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
@Override
@NotNull
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression,
@NotNull TranslationContext context) {
public JsNode visitConstantExpression(@NotNull JetConstantExpression expression, @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);
// 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) {
return context.program().getStringLiteral(value.toString());
}
throw new AssertionError(message(expression, "Unsupported constant expression"));
}