getNextUnset(from /*int*/) {
			const size = this.size;
			if (from >= size) {
				return size;
			}
			const bits = this.bits;
			let bitsOffset = Math.floor(from / 32);
			let currentBits = ~bits[bitsOffset];
			// mask off lesser bits first
			currentBits &= ~((1 << (from & 0x1F)) - 1);
			const length = bits.length;
			while (currentBits === 0) {
				if (++bitsOffset === length) {
					return size;
				}
				currentBits = ~bits[bitsOffset];
			}
			const result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits);
			return result > size ? size : result;
		}
@param from index to start looking for unset bit
@return index of next unset bit, or {@code size} if none are unset until the end
@see #getNextSet(int)