anchor.diff:    return reflectClassByName(s(unmangledName), mangledName);
   }
   
  +var classMirrors;
  +
   ClassMirror reflectClassByName(Symbol symbol, String mangledName) {
  +  if (classMirrors == null) classMirrors = JsCache.allocate();
  +  var mirror = JsCache.fetch(classMirrors, mangledName);
  +  if (mirror != null) return mirror;
     disableTreeShaking();
     var constructorOrInterceptor =
         Primitives.getConstructorOrInterceptor(mangledName);
  
positive.code:   }
  }
  
  final Expando<ClassMirror> classMirrors = new Expando<ClassMirror>();
  
  ClassMirror reflectType(Type key) {
    return reflectClassByMangledName('$key'.split('<')[0]);
  }
  
negative.code:       fields = '';
      }
    }
    mirror = new JsClassMirror(
        symbol, mangledName, constructorOrInterceptor, fields, fieldsMetadata);
    JsCache.update(classMirrors, mangledName, mirror);
    return mirror;
  }
  
  