anchor.diff:  /// Performs whole-program transformations for Dart VM precompiler.
   /// Assumes strong mode and closed world.
   Program transformProgram(CoreTypes coreTypes, Program program) {
  -  new _DevirtualizationTransformer(program).visitProgram(program);
  +  new _DevirtualizationTransformer(coreTypes, program).visitProgram(program);
     return program;
   }
   
  
positive.code:   /// Toggles tracing (useful for debugging).
    static const _trace = const bool.fromEnvironment('trace.devirtualization');
  
    ClosedWorldClassHierarchy _hierarchy;
  
    _DevirtualizationTransformer(Program program)
        : _hierarchy = new ClosedWorldClassHierarchy(program) {}
  
    @override
    TreeNode visitLibrary(Library node) {
  
negative.code:     node = super.visitMethodInvocation(node);
  
      Member target = node.interfaceTarget;
      if ((target != null) &&
          (target is! Field) &&
          !_objectMemberNames.contains(target.name)) {
        Member singleTarget =
            _hierarchy.getSingleTargetForInterfaceInvocation(target);
        if ((singleTarget is Procedure) && !singleTarget.isGetter) {
  