diff options
Diffstat (limited to 'webclients/novnc/vendor/pako/lib/zlib/adler32.js')
-rw-r--r-- | webclients/novnc/vendor/pako/lib/zlib/adler32.js | 27 |
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; +} |