anchor.diff:      // inferencing implementation.
       do {
         var cache = _getterCache;
  -      if (cache == null || isMissingProbe(fieldName)) break;
  +      if (isMissingCache(cache) || isMissingProbe(fieldName)) break;
         // If the [fieldName] has an associated probe function, we can use
         // it to read from the getter cache specific to this [InstanceMirror].
         var getter = JS('', '#.\$p(#)', fieldName, cache);
  
positive.code:     // Return the result of the slow-path getter invocation.
      return result;
    }
  
    delegate(Invocation invocation) {
      return JSInvocationMirror.invokeFromMirror(invocation, reflectee);
  
negative.code:     String name = n(fieldName);
      var result = _invoke(fieldName, JSInvocationMirror.GETTER, name, const []);
      var cacheEntry = JsCache.fetch(_classInvocationCache, name);
      if (cacheEntry.isNoSuchMethod) {
        return result;
      }
  
      // Make sure we have a getter cache in this [InstanceMirror].
      var cache = _getterCache;
      if (isMissingCache(cache)) {
        if ((_getterCache = --cache) != 0) return result;
        cache = _getterCache = JS('=Object', '({})');
      }
  
      // Make sure that symbol [fieldName] has a cache probing function ($p).
      bool useEval = isEvalAllowed();
      if (isMissingProbe(fieldName)) {
        var probe = _newProbeFn(name, useEval);
        JS('void', '#.\$p = #', fieldName, probe);
      }
  
      // Create a new getter function and install it in the cache.
      var mangledName = cacheEntry.mangledName;
      var getter = (cacheEntry.isIntercepted)
          ? _newInterceptedGetterFn(mangledName, useEval)
          : _newGetterFn(mangledName, useEval);
      JS('void', '#[#] = #', cache, name, getter);
  
      // Initialize the last value (v) and last mirror (m) on the
  