summaryrefslogtreecommitdiffstats
path: root/webclients/novnc/vendor/pako/lib/zlib/adler32.js
diff options
context:
space:
mode:
Diffstat (limited to 'webclients/novnc/vendor/pako/lib/zlib/adler32.js')
-rw-r--r--webclients/novnc/vendor/pako/lib/zlib/adler32.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/webclients/novnc/vendor/pako/lib/zlib/adler32.js b/webclients/novnc/vendor/pako/lib/zlib/adler32.js
new file mode 100644
index 0000000..058a534
--- /dev/null
+++ b/webclients/novnc/vendor/pako/lib/zlib/adler32.js
@@ -0,0 +1,27 @@
+// Note: adler32 takes 12% for level 0 and 2% for level 6.
+// It doesn't worth to make additional optimizationa as in original.
+// Small size is preferable.
+
+export default function adler32(adler, buf, len, pos) {
+ var s1 = (adler & 0xffff) |0,
+ s2 = ((adler >>> 16) & 0xffff) |0,
+ n = 0;
+
+ while (len !== 0) {
+ // Set limit ~ twice less than 5552, to keep
+ // s2 in 31-bits, because we force signed ints.
+ // in other case %= will fail.
+ n = len > 2000 ? 2000 : len;
+ len -= n;
+
+ do {
+ s1 = (s1 + buf[pos++]) |0;
+ s2 = (s2 + s1) |0;
+ } while (--n);
+
+ s1 %= 65521;
+ s2 %= 65521;
+ }
+
+ return (s1 | (s2 << 16)) |0;
+}