anchor.diff:              name = decompiledName;
             }
           }
  +        if (name == null) name = dispatchName;
         } else {
           name = dispatchName;
         }
       }
  +
  +    // Type inference does not understand that [name] is now always a non-null
  +    // String. (There is some imprecision in the negation of the disjunction.)
  +    name = JS('String', '#', name);
   
       // TODO(kasperl): If the namer gave us a fresh global name, we may
       // want to remove the numeric suffix that makes it unique too.
  
positive.code:   /// Returns the type of [object] as a string (including type arguments).
    ///
    /// In minified mode, uses the unminified names if available.
    static String objectTypeName(Object object) {
      return formatType(_objectRawTypeName(object), getRuntimeTypeInfo(object));
    }
  
negative.code:     }
  
      if (name == null ||
          identical(interceptor, JS_INTERCEPTOR_CONSTANT(Interceptor)) ||
          object is UnknownJavaScriptObject) {
        // Try to do better.  If we do not find something better, leave the name
        // as 'UnknownJavaScriptObject' or 'Interceptor' (or the minified name).
        //
  