anchor.diff:        use(input.inputs[0], JSPrecedence.EQUALITY_PRECEDENCE);
         buffer.add(' !== true');
         endExpression(JSPrecedence.EQUALITY_PRECEDENCE);
  -    } else if (input is HRelational &&
  -               input.builtin &&
  -               isGenerateAtUseSite(input)) {
  +    } else if (isBuiltinRelational(input) && isGenerateAtUseSite(input)) {
         Map<String, String> inverseOperator = const <String>{
           "==" : "!=",
           "!=" : "==",
  
positive.code:   }
  
    visitNot(HNot node) {
      assert(node.inputs.length == 1);
      HInstruction input = node.inputs[0];
      if (input is HBoolify && isGenerateAtUseSite(input)) {
  
negative.code:         ">"  : "<=",
          ">=" : "<"
        };
        HRelational relational = input;
        visitInvokeBinary(input,
                          inverseOperator[relational.operation.name.stringValue]);
      } else {
        beginExpression(JSPrecedence.PREFIX_PRECEDENCE);
        buffer.add('!');
  