anchor.diff:          stringifyValue(m[key]);
         }
         _sink.write('}');
  -      _seen.remove(object);
  +      _removeSeen(object);
         return true;
       } else {
         return false;
       }
     }
  -}
  +
  +  void _removeSeen(object) {
  +    assert(!_seen.isEmpty);
  +    assert(identical(_seen.last, object));
  +    _seen.removeLast();
  +  }
  +}
  
positive.code: 
    final Function _toEncodable;
    final StringSink _sink;
    final Set<Object> _seen;
  
    _JsonStringifier(this._sink, this._toEncodable)
        : this._seen = new HashSet.identity();
  
    static String stringify(object, toEncodable(object)) {
      if (toEncodable == null) toEncodable = _defaultToEncodable;
  
negative.code:         }
        }
        _sink.write(']');
        _removeSeen(object);
        return true;
      } else if (object is Map) {
        checkCycle(object);
  