anchor.diff:   * Serializes [object] into [output] stream.
    *
    * Performs the same operations as [stringify] but outputs the resulting
  - * string to an existing [StringBuffer] instead of creating a new [String].
  + * string to an existing [StringSink] instead of creating a new [String].
    *
    * If serialization fails by throwing, some data might have been added to
    * [output], but it won't contain valid JSON text.
    */
  -void printOn(Object object, StringBuffer output) {
  +void printOn(Object object, StringSink output) {
     return _JsonStringifier.printOn(object, output);
   }
   
  
positive.code:     return output.toString();
    }
  
    static void printOn(final object, StringBuffer output) {
      _JsonStringifier stringifier = new _JsonStringifier(output);
      stringifier.stringifyValue(object);
    }
  
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>();
  