Skip to content

Instantly share code, notes, and snippets.

@sudotman
Created January 20, 2023 12:02
Show Gist options
  • Select an option

  • Save sudotman/ba3fc536e0fff08150083e44f9ec7843 to your computer and use it in GitHub Desktop.

Select an option

Save sudotman/ba3fc536e0fff08150083e44f9ec7843 to your computer and use it in GitHub Desktop.
original minified
/**
* [js-crc]{@link https://github.com/emn178/js-crc}
*
* @namespace crc
* @version 0.2.0
* @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2015-2017
* @license MIT
*/
!(function () {
"use strict";
var e = "object" == typeof window ? window : {},
o = !e.JS_CRC_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node;
o && (e = global);
var n,
t,
r,
f,
a = !e.JS_CRC_NO_COMMON_JS && "object" == typeof module && module.exports,
i = "function" == typeof define && define.amd,
l = !e.JS_CRC_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer,
s = "0123456789abcdef".split(""),
c = [
{ name: "crc32", polynom: 3988292384, initValue: -1, bytes: 4 },
{ name: "crc16", polynom: 40961, initValue: 0, bytes: 2 },
];
for (n = 0; n < c.length; ++n) {
var u = c[n];
for (
u.method = (function (e) {
return function (o) {
return d(o, e);
};
})(u),
u.table = [],
t = 0;
256 > t;
++t
) {
for (f = t, r = 0; 8 > r; ++r) f = 1 & f ? u.polynom ^ (f >>> 1) : f >>> 1;
u.table[t] = f >>> 0;
}
}
var d = function (e, o) {
var n = "string" != typeof e;
n && l && e instanceof ArrayBuffer && (e = new Uint8Array(e));
var t,
r,
f = o.initValue,
a = e.length,
i = o.table;
if (n) for (r = 0; a > r; ++r) f = i[255 & (f ^ e[r])] ^ (f >>> 8);
else
for (r = 0; a > r; ++r)
(t = e.charCodeAt(r)),
128 > t
? (f = i[255 & (f ^ t)] ^ (f >>> 8))
: 2048 > t
? ((f = i[255 & (f ^ (192 | (t >> 6)))] ^ (f >>> 8)), (f = i[255 & (f ^ (128 | (63 & t)))] ^ (f >>> 8)))
: 55296 > t || t >= 57344
? ((f = i[255 & (f ^ (224 | (t >> 12)))] ^ (f >>> 8)), (f = i[255 & (f ^ (128 | ((t >> 6) & 63)))] ^ (f >>> 8)), (f = i[255 & (f ^ (128 | (63 & t)))] ^ (f >>> 8)))
: ((t = 65536 + (((1023 & t) << 10) | (1023 & e.charCodeAt(++r)))),
(f = i[255 & (f ^ (240 | (t >> 18)))] ^ (f >>> 8)),
(f = i[255 & (f ^ (128 | ((t >> 12) & 63)))] ^ (f >>> 8)),
(f = i[255 & (f ^ (128 | ((t >> 6) & 63)))] ^ (f >>> 8)),
(f = i[255 & (f ^ (128 | (63 & t)))] ^ (f >>> 8)));
f ^= o.initValue;
var c = "";
return o.bytes > 2 && (c += s[(f >> 28) & 15] + s[(f >> 24) & 15] + s[(f >> 20) & 15] + s[(f >> 16) & 15]), (c += s[(f >> 12) & 15] + s[(f >> 8) & 15] + s[(f >> 4) & 15] + s[15 & f]);
},
p = {};
for (n = 0; n < c.length; ++n) {
var u = c[n];
p[u.name] = u.method;
}
if (a) module.exports = p;
else {
for (n = 0; n < c.length; ++n) {
var u = c[n];
e[u.name] = u.method;
}
i &&
define(function () {
return p;
});
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment