constructor(token, mode, binaryBytes, bitCount) {
			this.token = token;
			this.mode = mode;
			this.binaryShiftByteCount = binaryBytes;
			this.bitCount = bitCount;
			// Make sure we match the token
			// int binaryShiftBitCount = (binaryShiftByteCount * 8) +
			//    (binaryShiftByteCount === 0 ? 0 :
			//     binaryShiftByteCount <= 31 ? 10 :
			//     binaryShiftByteCount <= 62 ? 20 : 21);
			// assert this.bitCount === token.getTotalBitCount() + binaryShiftBitCount;
		}
State represents all information about a sequence necessary to generate the current output.
Note that a state is immutable.