| Index: lib/compiler/implementation/ssa/codegen.dart
|
| diff --git a/lib/compiler/implementation/ssa/codegen.dart b/lib/compiler/implementation/ssa/codegen.dart
|
| index 9f7269d0935f7c4e10da9ee7c6728fd01068dc4d..579cdf57368a63503a29078e319bbab5edc94da5 100644
|
| --- a/lib/compiler/implementation/ssa/codegen.dart
|
| +++ b/lib/compiler/implementation/ssa/codegen.dart
|
| @@ -127,6 +127,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| final Equivalence<HPhi> phiEquivalence;
|
|
|
| Element equalsNullElement;
|
| + Element boolifiedEqualsNullElement;
|
| int indent = 0;
|
| int expectedPrecedence = JSPrecedence.STATEMENT_PRECEDENCE;
|
| HGraph currentGraph;
|
| @@ -176,8 +177,10 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| // Create a namespace for temporaries.
|
| prefixes[TEMPORARY_PREFIX] = 0;
|
|
|
| - equalsNullElement =
|
| - compiler.builder.interceptors.getEqualsNullInterceptor();
|
| + Interceptors interceptors = compiler.builder.interceptors;
|
| + equalsNullElement = interceptors.getEqualsNullInterceptor();
|
| + boolifiedEqualsNullElement =
|
| + interceptors.getBoolifiedVersionOf(equalsNullElement);
|
| }
|
|
|
| abstract visitTypeGuard(HTypeGuard node);
|
| @@ -849,7 +852,8 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| buffer.add(' === ');
|
| use(node.right, JSPrecedence.RELATIONAL_PRECEDENCE);
|
| endExpression(JSPrecedence.EQUALITY_PRECEDENCE);
|
| - } else if (node.element === equalsNullElement) {
|
| + } else if (node.element === equalsNullElement ||
|
| + node.element === boolifiedEqualsNullElement) {
|
| beginExpression(JSPrecedence.CALL_PRECEDENCE);
|
| use(node.target, JSPrecedence.CALL_PRECEDENCE);
|
| buffer.add('(');
|
|
|