summaryrefslogtreecommitdiffstats
path: root/webclients/novnc/vendor/pako/lib/zlib/crc32.js
diff options
context:
space:
mode:
Diffstat (limited to 'webclients/novnc/vendor/pako/lib/zlib/crc32.js')
-rw-r--r--webclients/novnc/vendor/pako/lib/zlib/crc32.js36
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;
+}