anchor.diff:   */
   Iterable<MethodMirror> publicGetters(ClassMirror mirror) {
     var mine = mirror.getters.values.where((x) => !(x.isPrivate || x.isStatic));
  -  var mySuperclass = mirror.superclass;
  -  if (mySuperclass != mirror) {
  -    return append(publicGetters(mirror.superclass), mine);
  +  var mySuperclass = _getSuperclass(mirror);
  +  if (mySuperclass != null) {
  +    return append(publicGetters(mySuperclass), mine);
     } else {
       return mine.toList();
     }
  
positive.code:   if (name == null) return false;
    var getter = mirror.getters[name];
    if (getter != null && !getter.isStatic) return true;
    var superclass = mirror.superclass;
    if (superclass == mirror) return false;
    return hasField(name, superclass);
  }
  
  
negative.code: export 'dart:mirrors';
  import 'serialization_helpers.dart';
  
  // TODO(alanknight): Remove this method.  It is working around a bug
  // in the Dart VM which incorrectly returns Object as the superclass
  // of Object.
  _getSuperclass(ClassMirror mirror) {
    var superclass = mirror.superclass;
    return (superclass == mirror) ? null : superclass;
  }
  
  /**
   * Return a list of all the public fields of a class, including inherited
   * fields.
  