anchor.diff:    }
   
     void writeAnnotationList(List<Expression> annotations) {
  -    writeList(annotations, writeAnnotation);
  +    final len = annotations.length;
  +    writeUInt30(len);
  +    for (var i = 0; i < len; i++) {
  +      final annotation = annotations[i];
  +      writeAnnotation(annotation);
  +    }
     }
   
     int _encodeClassFlags(bool isAbstract, bool isEnum,
  
positive.code: /// Puts a buffer in front of a [Sink<List<int>>].
  class BufferedSink {
    static const int SIZE = 100000;
    static const int SMALL = 10000;
    final Sink<List<int>> _sink;
    Uint8List _buffer = new Uint8List(SIZE);
  
negative.code:   void writeUInt30(int value) {
      assert(value >= 0 && value >> 30 == 0);
      if (value < 0x80) {
        _sink.addByte(value);
      } else if (value < 0x4000) {
        _sink.addByte2((value >> 8) | 0x80, value & 0xFF);
      } else {
        _sink.addByte4((value >> 24) | 0xC0, (value >> 16) & 0xFF,
            (value >> 8) & 0xFF, value & 0xFF);
      }
    }
  
    void writeUInt32(int value) {
      _sink.addByte4((value >> 24) & 0xFF, (value >> 16) & 0xFF,
          (value >> 8) & 0xFF, value & 0xFF);
    }
  
    void writeByteList(List<int> utf8Bytes) {
  