anchor.diff:        }
   
         while (i < endIndex) {
  +        int oneBytes = scanOneByteCharacters(codeUnits, i);
  +        if (oneBytes > 0) {
  +          _isFirstCharacter = false;
  +          addSingleBytes(i, i + oneBytes);
  +          i += oneBytes;
  +          if (i == endIndex) break;
  +        }
           int unit = codeUnits[i++];
           // TODO(floitsch): the way we test we could potentially allow
           // units that are too large, if they happen to have the
  
positive.code:         _stringSink.write(
              new String.fromCharCodes(codeUnits.sublist(from, to)));
        }
        singleBytesCount = 0;
      }
  
      int i = startIndex;
  
negative.code:       }
        break loop;
      }
      if (expectedUnits > 0) {
        _value = value;
        _expectedUnits = expectedUnits;
  