anchor.diff:      return false;
     }
   }
  +
  +// Copied from package "unmodifiable_collection".
  +// TODO(ahe): Lobby to get it added to dart:collection.
  +class UnmodifiableMapView<K, V> implements Map<K, V> {
  +  Map<K, V> _source;
  +  UnmodifiableMapView(Map<K, V> source) : _source = source;
  +
  +  static void _throw() {
  +    throw new UnsupportedError("Cannot modify an unmodifiable Map");
  +  }
  +
  +  int get length => _source.length;
  +
  +  bool get isEmpty => _source.isEmpty;
  +
  +  bool get isNotEmpty => _source.isNotEmpty;
  +
  +  V operator [](K key) => _source[key];
  +
  +  bool containsKey(K key) => _source.containsKey(key);
  +
  +  bool containsValue(V value) => _source.containsValue(value);
  +
  +  void forEach(void f(K key, V value)) => _source.forEach(f);
  +
  +  Iterable<K> get keys => _source.keys;
  +
  +  Iterable<V> get values => _source.values;
  +
  +
  +  void operator []=(K key, V value) => _throw();
  +
  +  V putIfAbsent(K key, V ifAbsent()) { _throw(); }
  +
  +  void addAll(Map<K, V> other) => _throw();
  +
  +  V remove(K key) { _throw(); }
  +
  +  void clear() => _throw();
  +}
  
positive.code: library dart._js_mirrors;
  
  import 'dart:async';
  import 'dart:mirrors';
  
  import 'dart:_foreign_helper' show
  
negative.code:   DeclarationMirror _owner;
    List _metadata;
    var _returnType;
    UnmodifiableListView<ParameterMirror> _parameters;
  
    JsMethodMirror(Symbol simpleName,
                   this._jsFunction,
  