diff options
Diffstat (limited to 'webclients/novnc/vendor/pako/lib/zlib/crc32.js')
-rw-r--r-- | webclients/novnc/vendor/pako/lib/zlib/crc32.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/webclients/novnc/vendor/pako/lib/zlib/crc32.js b/webclients/novnc/vendor/pako/lib/zlib/crc32.js new file mode 100644 index 0000000..611ffb2 --- /dev/null +++ b/webclients/novnc/vendor/pako/lib/zlib/crc32.js @@ -0,0 +1,36 @@ +// Note: we can't get significant speed boost here. +// So write code to minimize size - no pregenerated tables +// and array tools dependencies. + + +// Use ordinary array, since untyped makes no boost here +export default function makeTable() { + var c, table = []; + + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +} + +// Create table on load. Just 255 signed longs. Not a problem. +var crcTable = makeTable(); + + +function crc32(crc, buf, len, pos) { + var t = crcTable, + end = pos + len; + + crc ^= -1; + + for (var i = pos; i < end; i++) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +} |