anchor.diff:    final bool _isRoot;
     List<JsMethodMirror> _cachedFunctionMirrors;
     List<JsVariableMirror> _cachedFields;
  +  UnmodifiableMapView<Symbol, ClassMirror> _cachedClasses;
  +  UnmodifiableMapView<Symbol, MethodMirror> _cachedFunctions;
  +  UnmodifiableMapView<Symbol, MethodMirror> _cachedGetters;
  +  UnmodifiableMapView<Symbol, MethodMirror> _cachedSetters;
  +  UnmodifiableMapView<Symbol, VariableMirror> _cachedVariables;
  +  UnmodifiableMapView<Symbol, Mirror> _cachedMembers;
  +  UnmodifiableListView<InstanceMirror> _cachedMetadata;
   
     JsLibraryMirror(Symbol simpleName,
                     this.uri,
  
positive.code:       // Use putIfAbsent to filter-out getters corresponding to variables.
        result.putIfAbsent(method.simpleName, () => method);
      }
      return result;
    }
  
    InstanceMirror setField(Symbol fieldName, Object arg) {
  
negative.code:     var result = <VariableMirror>[];
      parseCompactFieldSpecification(
          this, _compactFieldSpecification, true, result);
      return _cachedFields = result;
    }
  
    Map<Symbol, MethodMirror> get functions {
      if (_cachedFunctions != null) return _cachedFunctions;
      var result = new Map();
      for (JsMethodMirror mirror in _functionMirrors) {
        if (!mirror.isConstructor) result[mirror.simpleName] = mirror;
      }
      return _cachedFunctions =
          new UnmodifiableMapView<Symbol, MethodMirror>(result);
    }
  
    Map<Symbol, MethodMirror> get getters {
      if (_cachedGetters != null) return _cachedGetters;
      var result = new Map();
      // TODO(ahe): Implement this.
      return _cachedGetters =
          new UnmodifiableMapView<Symbol, MethodMirror>(result);
    }
  
    Map<Symbol, MethodMirror> get setters {
      if (_cachedSetters != null) return _cachedSetters;
      var result = new Map();
      // TODO(ahe): Implement this.
      return _cachedSetters =
          new UnmodifiableMapView<Symbol, MethodMirror>(result);
    }
  
    Map<Symbol, VariableMirror> get variables {
      if (_cachedVariables != null) return _cachedVariables;
      var result = new Map();
      for (JsVariableMirror mirror in _fields) {
        result[mirror.simpleName] = mirror;
      }
      return _cachedVariables =
          new UnmodifiableMapView<Symbol, VariableMirror>(result);
    }
  
    Map<Symbol, Mirror> get members {
      if (_cachedMembers !=  null) return _cachedMembers;
      Map<Symbol, Mirror> result = new Map.from(classes);
      addToResult(Symbol key, Mirror value) {
        result[key] = value;
      }
  