anchor.diff:  
     String visitIs(HIs node) {
       String type = node.typeExpression.toString();
  -    return "TypeTest: ${temporaryId(node.expression)} is $type";
  +    return "Is: ${temporaryId(node.expression)} is $type";
     }
   
     String visitIsViaInterceptor(HIsViaInterceptor node) {
       String type = node.typeExpression.toString();
  -    return "TypeTest: ${temporaryId(node.inputs[0])} is $type";
  +    return "IsViaInterceptor: ${temporaryId(node.inputs[0])} is $type";
     }
   
     String visitTypeConversion(HTypeConversion node) {
  
positive.code:       JavaScriptBackend backend = compiler.backend;
        String cls =
            backend.namer.suffixForGetInterceptor(node.interceptedClasses);
        return "Intercept ($cls): $value";
      }
      return "Intercept: $value";
    }
  
    String visitInvokeClosure(HInvokeClosure node)
        => visitInvokeDynamic(node, "closure");
  
    String visitInvokeDynamic(HInvokeDynamic invoke, String kind) {
      String receiver = temporaryId(invoke.receiver);
      String name = invoke.selector.name;
      String target = "($kind) $receiver.$name";
      int offset = HInvoke.ARGUMENTS_OFFSET;
      List arguments = invoke.inputs.sublist(offset);
      return visitGenericInvoke("Invoke", target, arguments) +
          "(${invoke.mask})";
    }
  
    String visitInvokeDynamicMethod(HInvokeDynamicMethod node)
        => visitInvokeDynamic(node, "method");
    String visitInvokeDynamicGetter(HInvokeDynamicGetter node)
        => visitInvokeDynamic(node, "get");
    String visitInvokeDynamicSetter(HInvokeDynamicSetter node)
        => visitInvokeDynamic(node, "set");
  
    String visitInvokeStatic(HInvokeStatic invoke) {
      String target = invoke.element.name;
      return visitGenericInvoke("Invoke", target, invoke.inputs);
    }
  
    String visitInvokeSuper(HInvokeSuper invoke) {
      String target = invoke.element.name;
      return visitGenericInvoke("Invoke super", target, invoke.inputs);
    }
  
    String visitInvokeConstructorBody(HInvokeConstructorBody invoke) {
      String target = invoke.element.name;
      return visitGenericInvoke("Invoke constructor body", target, invoke.inputs);
    }
  
    String visitForeignCode(HForeignCode foreign) {
      return visitGenericInvoke("Foreign", "${foreign.codeTemplate.ast}",
                                foreign.inputs);
    }
  
    String visitForeignNew(HForeignNew node) {
      return visitGenericInvoke("New",
                                "${node.element.name}",
                                node.inputs);
    }
  
    String visitLess(HLess node) => handleInvokeBinary(node, '<');
    String visitLessEqual(HLessEqual node) => handleInvokeBinary(node, '<=');
  
    String visitLiteralList(HLiteralList node) {
      StringBuffer elementsString = new StringBuffer();
  
negative.code:     return "Break: (B${target.id})";
    }
  
    String visitConstant(HConstant constant) => "Constant: ${constant.constant}";
  
    String visitContinue(HContinue node) {
      HBasicBlock target = currentBlock.successors[0];
  