JS backend: fixed extra code generation for increment, decrement and operations with assignment.
This commit is contained in:
+2
-2
@@ -21,10 +21,10 @@ import com.google.dart.compiler.backend.js.ast.JsBinaryOperator;
|
|||||||
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
import com.google.dart.compiler.backend.js.ast.JsExpression;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.psi.JetBinaryExpression;
|
import org.jetbrains.jet.lang.psi.JetBinaryExpression;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
||||||
import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
|
import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
|
||||||
import org.jetbrains.jet.lexer.JetToken;
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
import org.jetbrains.k2js.translate.reference.ReferenceAccessTranslator;
|
|
||||||
|
|
||||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.getOperationToken;
|
import static org.jetbrains.k2js.translate.utils.PsiUtils.getOperationToken;
|
||||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.isAssignment;
|
import static org.jetbrains.k2js.translate.utils.PsiUtils.isAssignment;
|
||||||
@@ -53,7 +53,7 @@ public final class IntrinsicAssignmentTranslator extends AssignmentTranslator {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private JsExpression translateAsAssignmentOperation() {
|
private JsExpression translateAsAssignmentOperation() {
|
||||||
if (accessTranslator instanceof ReferenceAccessTranslator) {
|
if (expression.getLeft() instanceof JetSimpleNameExpression) {
|
||||||
return translateAsPlainAssignmentOperation();
|
return translateAsPlainAssignmentOperation();
|
||||||
}
|
}
|
||||||
return translateAsAssignToCounterpart();
|
return translateAsAssignToCounterpart();
|
||||||
|
|||||||
+2
-2
@@ -18,11 +18,11 @@ package org.jetbrains.k2js.translate.operation;
|
|||||||
|
|
||||||
import com.google.dart.compiler.backend.js.ast.*;
|
import com.google.dart.compiler.backend.js.ast.*;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetUnaryExpression;
|
import org.jetbrains.jet.lang.psi.JetUnaryExpression;
|
||||||
import org.jetbrains.jet.lexer.JetToken;
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
import org.jetbrains.k2js.translate.reference.ReferenceAccessTranslator;
|
|
||||||
|
|
||||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.getOperationToken;
|
import static org.jetbrains.k2js.translate.utils.PsiUtils.getOperationToken;
|
||||||
import static org.jetbrains.k2js.translate.utils.PsiUtils.isPrefix;
|
import static org.jetbrains.k2js.translate.utils.PsiUtils.isPrefix;
|
||||||
@@ -51,7 +51,7 @@ public final class IntrinsicIncrementTranslator extends IncrementTranslator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPrimitiveExpressionIncrement() {
|
private boolean isPrimitiveExpressionIncrement() {
|
||||||
return accessTranslator instanceof ReferenceAccessTranslator;
|
return expression.getBaseExpression() instanceof JetSimpleNameExpression;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user