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:       }
        break loop;
      }
      if (singleBytesCount > 0) {
        addSingleBytes(i - singleBytesCount, endIndex);
      }
      if (expectedUnits > 0) {
        _value = value;
        _expectedUnits = expectedUnits;
  
negative.code:     int value = _value;
      int expectedUnits = _expectedUnits;
      int extraUnits = _extraUnits;
      _value = 0;
      _expectedUnits = 0;
      _extraUnits = 0;
  
      int scanOneByteCharacters(units, int from) {
        final to = endIndex;
        final mask = ~_ONE_BYTE_LIMIT;
        for (var i = from; i < to; i++) {
          if ((units[i] & mask) != 0) return i - from;
        }
        return to - from;
      }
  
      void addSingleBytes(int from, int to) {
        assert(from >= startIndex && from <= endIndex);
        assert(to >= startIndex && to <= endIndex);
        if (from == 0 && to == codeUnits.length) {
  