anchor.diff:      Continuation cont = node.continuation.definition;
       Primitive arg(int n) => node.arguments[n].definition;
       AbstractValue argType(int n) => getValue(arg(n));
  +
  +    bool replaceWithBinary(BuiltinOperator operator,
  +                           Primitive left,
  +                           Primitive right) {
  +      Primitive prim =
  +          new ApplyBuiltinOperator(operator, <Primitive>[left, right],
  +                                   node.sourceInformation);
  +      LetPrim let = makeLetPrimInvoke(prim, cont);
  +      replaceSubtree(node, let);
  +      push(let);
  +      return true; // So returning early is more convenient.
  +    }
  +
       if (node.target.library.isInternalLibrary) {
         switch(node.target.name) {
           case InternalMethod.Stringify:
  
positive.code:   static const String Stringify = 'S';
  }
  
  /// Suggested name for a synthesized loop index.
  class LoopIndexEntity extends Entity {
    String get name => 'i';
  
negative.code:             replaceSubtree(node, invoke);
              push(invoke);
              return true;
            }
            break;
        }
      } else if (node.target.library.isDartCore) {
        switch(node.target.name) {
          case CorelibMethod.Identical:
            if (node.arguments.length == 2) {
              return replaceWithBinary(BuiltinOperator.Identical, arg(0), arg(1));
            }
            break;
        }
  