anchor.diff:          _stringSink.write(
               new String.fromCharCodes(codeUnits.sublist(from, to)));
         }
  -      singleBytesCount = 0;
       }
   
       int i = startIndex;
  
positive.code:     int value = _value;
      int expectedUnits = _expectedUnits;
      int extraUnits = _extraUnits;
      int singleBytesCount = 0;
      _value = 0;
      _expectedUnits = 0;
      _extraUnits = 0;
  
      void addSingleBytes(int from, int to) {
        assert(singleBytesCount > 0);
        assert(from >= startIndex && from <= endIndex);
        assert(to >= startIndex && to <= endIndex);
        if (from == 0 && to == codeUnits.length) {
  
negative.code:       }
  
        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
  