anchor.diff:    }
   
     internalError(ast.Node node, String message) {
  -    giveup(node, message);
  +    compiler.internalError(node, message);
     }
   
     @override
     visitNode(ast.Node node) {
  -    internalError(node, "Unhandled node");
  +    giveup(node, "Unhandled node");
     }
   
     dynamic giveup(ast.Node node, [String reason]) {
  
positive.code:       ast.Send node,
        MethodElement function,
        _) {
      // TODO(karlklose): support foreign functions.
      if (compiler.backend.isForeign(function)) {
        return giveup(node, 'handleStaticFunctionGet: foreign: $function');
      }
      return irBuilder.buildStaticFunctionGet(function);
    }
  
  
negative.code:       ast.NodeList arguments,
        CallStructure callStructure,
        _) {
      ir.Primitive target = irBuilder.buildStaticGetterGet(
          getter, sourceInformationBuilder.buildGet(node));
      return irBuilder.buildCallInvocation(target,
  