anchor.diff:      }
       return bitSet;
     }
  +  int _createElementBitIndexMask() {
  +    if (_bitsPerElement == 64) {
  +      return 0x3f;
  +    }
  +    if (_bitsPerElement == 32) {
  +      return 0x1f;
  +    }
  +    if (_bitsPerElement == 16) {
  +      return 0xf;
  +    }
  +    if (_bitsPerElement == 8) {
  +      return 0x7;
  +    }
  +    assert(false);
  +    return 0;
  +  }
     List<int> _arrayForBits(int bitCount) {
       int capacity = ((bitCount + _bitsPerElement - 1)/ _bitsPerElement).floor();
       if (_bitsPerElement == 64) {
  
positive.code:     }
      _elements = _arrayForBits(bitCount);
      _bitsPerElement = (_elements as TypedData).elementSizeInBytes * 8;
      _usedElements = 0;
    }
    factory VariableLengthBitSet.fromBitSet(BitSet bitSet) {
  
negative.code:   int _bitsPerElement;
    List<int> _elements;
    int _usedElements;
    int _elementBitIndexMask;
  
    VariableLengthBitSet([int bitCount = 0, int bitsPerElement]) : super.base() {
      if (bitCount == null) {
  