| Index: lib/compiler/implementation/ssa/codegen.dart
|
| diff --git a/lib/compiler/implementation/ssa/codegen.dart b/lib/compiler/implementation/ssa/codegen.dart
|
| index c5db189ba064fee8815acab54e21ba4825b7f141..df545511e8a36f4336fa1ce8e3f9e2d999ecbce3 100644
|
| --- a/lib/compiler/implementation/ssa/codegen.dart
|
| +++ b/lib/compiler/implementation/ssa/codegen.dart
|
| @@ -241,6 +241,11 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| breakAction = new Map<Element, ElementAction>(),
|
| continueAction = new Map<Element, ElementAction>(),
|
| unsignedShiftPrecedences = JSPrecedence.binary['>>>'] {
|
| +
|
| + Interceptors interceptors = backend.builder.interceptors;
|
| + equalsNullElement = interceptors.getEqualsNullInterceptor();
|
| + boolifiedEqualsNullElement =
|
| + interceptors.getBoolifiedVersionOf(equalsNullElement);
|
| }
|
|
|
| abstract visitTypeGuard(HTypeGuard node);
|
| @@ -1260,6 +1265,14 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| visitEquals(HEquals node) {
|
| if (node.builtin) {
|
| emitIdentityComparison(node.left, node.right);
|
| + } else if (node.element === equalsNullElement ||
|
| + node.element === boolifiedEqualsNullElement) {
|
| + beginExpression(JSPrecedence.CALL_PRECEDENCE);
|
| + use(node.target, JSPrecedence.CALL_PRECEDENCE);
|
| + buffer.add('(');
|
| + use(node.left, JSPrecedence.ASSIGNMENT_PRECEDENCE);
|
| + buffer.add(')');
|
| + endExpression(JSPrecedence.CALL_PRECEDENCE);
|
| } else {
|
| visitInvokeStatic(node);
|
| }
|
|
|