anchor.diff:          }
         }
         _sink.write(']');
  -      _seen.remove(object);
  +      _removeSeen(object);
         return true;
       } else if (object is Map) {
         checkCycle(object);
  
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:         stringifyValue(m[key]);
        }
        _sink.write('}');
        _removeSeen(object);
        return true;
      } else {
        return false;
      }
    }
  
    void _removeSeen(object) {
      assert(!_seen.isEmpty);
      assert(identical(_seen.last, object));
      _seen.removeLast();
    }
  }
  