JS: turn off inline call extraction at translation
This commit is contained in:
+1
-13
@@ -195,19 +195,7 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
@NotNull JetCallExpression expression,
|
@NotNull JetCallExpression expression,
|
||||||
@NotNull TranslationContext context
|
@NotNull TranslationContext context
|
||||||
) {
|
) {
|
||||||
if (shouldBeInlined(expression, context) &&
|
return CallExpressionTranslator.translate(expression, null, context).source(expression);
|
||||||
BindingContextUtilPackage.isUsedAsExpression(expression, context.bindingContext())) {
|
|
||||||
TemporaryVariable temporaryVariable = context.declareTemporary(null);
|
|
||||||
|
|
||||||
JsNode callResult = CallExpressionTranslator.translate(expression, null, context).source(expression);
|
|
||||||
assert callResult instanceof JsExpression;
|
|
||||||
|
|
||||||
JsExpression assignment = JsAstUtils.assignment(temporaryVariable.reference(), (JsExpression) callResult);
|
|
||||||
context.addStatementToCurrentBlock(assignment.makeStmt());
|
|
||||||
return temporaryVariable.reference();
|
|
||||||
} else {
|
|
||||||
return CallExpressionTranslator.translate(expression, null, context).source(expression);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-13
@@ -73,19 +73,7 @@ public final class QualifiedExpressionTranslator {
|
|||||||
return VariableAccessTranslator.newInstance(context, (JetSimpleNameExpression)selector, receiver).translateAsGet();
|
return VariableAccessTranslator.newInstance(context, (JetSimpleNameExpression)selector, receiver).translateAsGet();
|
||||||
}
|
}
|
||||||
if (selector instanceof JetCallExpression) {
|
if (selector instanceof JetCallExpression) {
|
||||||
if (shouldBeInlined((JetCallExpression) selector, context) &&
|
return invokeCallExpressionTranslator(receiver, selector, context);
|
||||||
BindingContextUtilPackage.isUsedAsExpression(selector, context.bindingContext())) {
|
|
||||||
TemporaryVariable temporaryVariable = context.declareTemporary(null);
|
|
||||||
|
|
||||||
JsNode result = invokeCallExpressionTranslator(receiver, selector, context);
|
|
||||||
assert result instanceof JsExpression;
|
|
||||||
|
|
||||||
JsExpression assignment = JsAstUtils.assignment(temporaryVariable.reference(), (JsExpression) result);
|
|
||||||
context.addStatementToCurrentBlock(assignment.makeStmt());
|
|
||||||
return temporaryVariable.reference();
|
|
||||||
} else {
|
|
||||||
return invokeCallExpressionTranslator(receiver, selector, context);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//TODO: never get there
|
//TODO: never get there
|
||||||
if (selector instanceof JetSimpleNameExpression) {
|
if (selector instanceof JetSimpleNameExpression) {
|
||||||
|
|||||||
Reference in New Issue
Block a user