JsAstUtils.equals -> equality

This commit is contained in:
pTalanov
2012-02-29 16:26:19 +04:00
parent 84efd8536f
commit d41515765e
9 changed files with 25 additions and 21 deletions
@@ -28,7 +28,6 @@ import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator; import org.jetbrains.k2js.translate.general.AbstractTranslator;
import org.jetbrains.k2js.translate.general.Translation; import org.jetbrains.k2js.translate.general.Translation;
import org.jetbrains.k2js.translate.utils.BindingUtils; import org.jetbrains.k2js.translate.utils.BindingUtils;
import org.jetbrains.k2js.translate.utils.JsAstUtils;
import org.jetbrains.k2js.translate.utils.TranslationUtils; import org.jetbrains.k2js.translate.utils.TranslationUtils;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.*; import static org.jetbrains.k2js.translate.utils.JsAstUtils.*;
@@ -134,6 +133,6 @@ public final class PatternTranslator extends AbstractTranslator {
assert patternExpression != null : "Expression patter should have an expression."; assert patternExpression != null : "Expression patter should have an expression.";
JsExpression expressionToMatchAgainst = JsExpression expressionToMatchAgainst =
Translation.translateAsExpression(patternExpression, context()); Translation.translateAsExpression(patternExpression, context());
return JsAstUtils.equals(expressionToMatch, expressionToMatchAgainst); return equality(expressionToMatch, expressionToMatchAgainst);
} }
} }
@@ -82,8 +82,8 @@ public class WhenTranslator extends AbstractTranslator {
@NotNull @NotNull
private JsStatement surroundWithDummyIf(@NotNull JsStatement entryStatement) { private JsStatement surroundWithDummyIf(@NotNull JsStatement entryStatement) {
JsExpression stepNumberEqualsCurrentEntryNumber = new JsBinaryOperation(JsBinaryOperator.EQ, JsNumberLiteral jsEntryNumber = program().getNumberLiteral(this.currentEntryNumber);
dummyCounter.reference(), program().getNumberLiteral(currentEntryNumber)); JsExpression stepNumberEqualsCurrentEntryNumber = equality(dummyCounter.reference(), jsEntryNumber);
currentEntryNumber++; currentEntryNumber++;
return new JsIf(stepNumberEqualsCurrentEntryNumber, entryStatement, null); return new JsIf(stepNumberEqualsCurrentEntryNumber, entryStatement, null);
} }
@@ -100,7 +100,7 @@ public final class ArrayForTranslator extends ForTranslator {
@NotNull @NotNull
private JsExpression getCondition() { private JsExpression getCondition() {
return notEqual(index.reference(), end.reference()); return inequality(index.reference(), end.reference());
} }
@NotNull @NotNull
@@ -73,7 +73,7 @@ public final class RangeForTranslator extends ForTranslator {
program().getNumberLiteral(1)); program().getNumberLiteral(1));
incrVar = context().declareTemporary(incrVarValue); incrVar = context().declareTemporary(incrVarValue);
start = context().declareTemporary(callFunction("get_start")); start = context().declareTemporary(callFunction("get_start"));
end = context().declareTemporary(new JsBinaryOperation(JsBinaryOperator.ADD, callFunction("get_end"), incrVar.reference())); end = context().declareTemporary(sum(callFunction("get_end"), incrVar.reference()));
} }
@NotNull @NotNull
@@ -100,12 +100,12 @@ public final class RangeForTranslator extends ForTranslator {
@NotNull @NotNull
private JsExpression getCondition() { private JsExpression getCondition() {
return notEqual(parameterName.makeRef(), end.reference()); return inequality(parameterName.makeRef(), end.reference());
} }
@NotNull @NotNull
private JsExpression getIncrExpression() { private JsExpression getIncrExpression() {
return new JsBinaryOperation(JsBinaryOperator.ASG_ADD, parameterName.makeRef(), incrVar.reference()); return addAssign(parameterName.makeRef(), incrVar.reference());
} }
@NotNull @NotNull
@@ -94,7 +94,7 @@ public final class RangeLiteralForTranslator extends ForTranslator {
@NotNull @NotNull
private JsExpression getCondition() { private JsExpression getCondition() {
return notEqual(parameterName.makeRef(), rangeEnd.reference()); return inequality(parameterName.makeRef(), rangeEnd.reference());
} }
@NotNull @NotNull
@@ -21,11 +21,11 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.k2js.translate.context.TranslationContext; import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.intrinsic.EqualsIntrinsic; import org.jetbrains.k2js.translate.intrinsic.EqualsIntrinsic;
import org.jetbrains.k2js.translate.utils.JsAstUtils;
import java.util.List; import java.util.List;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.notEqual; import static org.jetbrains.k2js.translate.utils.JsAstUtils.equality;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.inequality;
/** /**
* @author Pavel Talanov * @author Pavel Talanov
@@ -46,10 +46,10 @@ public final class PrimitiveEqualsIntrinsic extends EqualsIntrinsic {
assert arguments.size() == 1 : "Equals operation should have one argument"; assert arguments.size() == 1 : "Equals operation should have one argument";
assert receiver != null; assert receiver != null;
if (isNegated()) { if (isNegated()) {
return notEqual(receiver, arguments.get(0)); return inequality(receiver, arguments.get(0));
} }
else { else {
return JsAstUtils.equals(receiver, arguments.get(0)); return equality(receiver, arguments.get(0));
} }
} }
@@ -29,7 +29,7 @@ import org.jetbrains.k2js.translate.context.TemporaryVariable;
import org.jetbrains.k2js.translate.context.TranslationContext; import org.jetbrains.k2js.translate.context.TranslationContext;
import static com.google.dart.compiler.util.AstUtil.newSequence; import static com.google.dart.compiler.util.AstUtil.newSequence;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.notEqual; import static org.jetbrains.k2js.translate.utils.JsAstUtils.inequality;
/** /**
* @author Pavel Talanov * @author Pavel Talanov
@@ -44,7 +44,7 @@ public enum CallType {
TemporaryVariable temporaryVariable = context.declareTemporary(receiver); TemporaryVariable temporaryVariable = context.declareTemporary(receiver);
JsNullLiteral nullLiteral = context.program().getNullLiteral(); JsNullLiteral nullLiteral = context.program().getNullLiteral();
//TODO: find similar not null checks //TODO: find similar not null checks
JsBinaryOperation notNullCheck = notEqual(temporaryVariable.reference(), nullLiteral); JsBinaryOperation notNullCheck = inequality(temporaryVariable.reference(), nullLiteral);
JsConditional callMethodIfNotNullElseNull = JsConditional callMethodIfNotNullElseNull =
new JsConditional(notNullCheck, constructor.construct(temporaryVariable.reference()), nullLiteral); new JsConditional(notNullCheck, constructor.construct(temporaryVariable.reference()), nullLiteral);
return newSequence(temporaryVariable.assignmentExpression(), callMethodIfNotNullElseNull); return newSequence(temporaryVariable.assignmentExpression(), callMethodIfNotNullElseNull);
@@ -131,18 +131,18 @@ public final class JsAstUtils {
} }
@NotNull @NotNull
public static JsBinaryOperation equals(@NotNull JsExpression arg1, @NotNull JsExpression arg2) { public static JsBinaryOperation equality(@NotNull JsExpression arg1, @NotNull JsExpression arg2) {
return new JsBinaryOperation(JsBinaryOperator.EQ, arg1, arg2); return new JsBinaryOperation(JsBinaryOperator.EQ, arg1, arg2);
} }
@NotNull @NotNull
public static JsBinaryOperation notEqual(@NotNull JsExpression arg1, @NotNull JsExpression arg2) { public static JsBinaryOperation inequality(@NotNull JsExpression arg1, @NotNull JsExpression arg2) {
return new JsBinaryOperation(JsBinaryOperator.NEQ, arg1, arg2); return new JsBinaryOperation(JsBinaryOperator.NEQ, arg1, arg2);
} }
@NotNull @NotNull
public static JsExpression equalsTrue(@NotNull JsExpression expression, @NotNull JsProgram program) { public static JsExpression equalsTrue(@NotNull JsExpression expression, @NotNull JsProgram program) {
return equals(expression, program.getTrueLiteral()); return equality(expression, program.getTrueLiteral());
} }
@NotNull @NotNull
@@ -155,6 +155,11 @@ public final class JsAstUtils {
return new JsBinaryOperation(JsBinaryOperator.ADD, left, right); return new JsBinaryOperation(JsBinaryOperator.ADD, left, right);
} }
@NotNull
public static JsBinaryOperation addAssign(@NotNull JsExpression left, @NotNull JsExpression right) {
return new JsBinaryOperation(JsBinaryOperator.ASG_ADD, left, right);
}
@NotNull @NotNull
public static JsBinaryOperation subtract(@NotNull JsExpression left, @NotNull JsExpression right) { public static JsBinaryOperation subtract(@NotNull JsExpression left, @NotNull JsExpression right) {
return new JsBinaryOperation(JsBinaryOperator.SUB, left, right); return new JsBinaryOperation(JsBinaryOperator.SUB, left, right);
@@ -167,7 +172,7 @@ public final class JsAstUtils {
@NotNull @NotNull
public static JsBinaryOperation typeof(@NotNull JsExpression expression, @NotNull JsStringLiteral string) { public static JsBinaryOperation typeof(@NotNull JsExpression expression, @NotNull JsStringLiteral string) {
return equals(new JsPrefixOperation(JsUnaryOperator.TYPEOF, expression), string); return equality(new JsPrefixOperation(JsUnaryOperator.TYPEOF, expression), string);
} }
@NotNull @NotNull
@@ -46,14 +46,14 @@ public final class TranslationUtils {
public static JsBinaryOperation notNullCheck(@NotNull TranslationContext context, public static JsBinaryOperation notNullCheck(@NotNull TranslationContext context,
@NotNull JsExpression expressionToCheck) { @NotNull JsExpression expressionToCheck) {
JsNullLiteral nullLiteral = context.program().getNullLiteral(); JsNullLiteral nullLiteral = context.program().getNullLiteral();
return notEqual(expressionToCheck, nullLiteral); return inequality(expressionToCheck, nullLiteral);
} }
@NotNull @NotNull
public static JsBinaryOperation isNullCheck(@NotNull TranslationContext context, public static JsBinaryOperation isNullCheck(@NotNull TranslationContext context,
@NotNull JsExpression expressionToCheck) { @NotNull JsExpression expressionToCheck) {
JsNullLiteral nullLiteral = context.program().getNullLiteral(); JsNullLiteral nullLiteral = context.program().getNullLiteral();
return JsAstUtils.equals(expressionToCheck, nullLiteral); return equality(expressionToCheck, nullLiteral);
} }
@NotNull @NotNull