anchor.diff:      return output.toString();
     }
   
  -  static void printOn(final object, StringBuffer output) {
  +  static void printOn(final object, StringSink output) {
       _JsonStringifier stringifier = new _JsonStringifier(output);
       stringifier.stringifyValue(object);
     }
  
positive.code:  * [List]s of parsed JSON values or [Map]s from [String] to parsed
   * JSON values.
   *
   * The optional [revivier] function, if provided, is called once for each
   * object or list property parsed. The arguments are the property name
   * ([String]) or list index ([int]), and the value is the parsed value.
   * The return value of the revivier will be used as the value of that property
  
negative.code:   // ('0' + x) or ('a' + x - 10)
    static int hexDigit(int x) => x < 10 ? 48 + x : 87 + x;
  
    static void escape(StringSink sb, String s) {
      final int length = s.length;
      bool needsEscape = false;
      final charCodes = new List<int>();
  