Один из вариантов, который у вас есть, - хранить двоичные данные в массиве Array и записывать функции для доступа таким же образом, как ArrayBuffers и UintXArrays.Это также может быть оболочкой для DataView .
Это не должно быть слишком сложной задачей и все еще выполняется разумно.
Пример:
function getInt8(byteOffset)
{
return (byteArray[byteOffset] << 24) >> 24; // moves sign bit to bit 32
}
function getUint8(byteOffset)
{
return byteArray[byteOffset];
}
function getUint16(byteOffset)
{
return byteArray[byteOffset] | byteArray[byteOffset + 1] << 8;
}
function setUint8(byteOffset, value)
{
byteArray[byteOffset] = value & 0xff; // make sure to mask values
}
// etc...
Это требует немного побитовой магии, но вы должны быть в состоянии понять это с помощью некоторого Google.
Существует также много информации о том, как IE обрабатывает двоичные данные (например, this обширная тема о XMLHttpRequests).