anchor.diff:  
     int getChar(int position) => chunk[position];
   
  -  String getString(int start, int end) {
  +  String getString(int start, int end, int bits) {
  +    const int maxAsciiChar = 0x7f;
  +    if (bits <= maxAsciiChar) {
  +      return new String.fromCharCodes(chunk, start, end);
  +    }
       beginString();
       if (start < end) addSliceToString(start, end);
       String result = endString();
  
positive.code:         beginString();
          int sliceEnd = position - 1;
          if (start < sliceEnd) addSliceToString(start, sliceEnd);
          return parseStringToBuffer(position - 1);
        }
        if (char == QUOTE) {
          listener.handleString(getString(start, position - 1));
          return position;
        }
        if (char < SPACE) {
  
negative.code:     // Initial position is right after first '"'.
      int start = position;
      int end = chunkEnd;
      int bits = 0;
      while (position < end) {
        int char = getChar(position++);
        bits |= char;  // Includes final '"', but that never matters.
        // BACKSLASH is larger than QUOTE and SPACE.
        if (char > BACKSLASH) {
          continue;
  