Show More
Commit Description:
prevent multiple place login using uuid cookie
Commit Description:
prevent multiple place login using uuid cookie
References:
File last commit:
Show/Diff file:
Action:
node_modules/jszip/lib/crc32.js
| 77 lines
| 1.9 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var utils = require('./utils'); | ||||
/** | ||||
* The following functions come from pako, from pako/lib/zlib/crc32.js | ||||
* released under the MIT license, see pako https://github.com/nodeca/pako/ | ||||
*/ | ||||
// Use ordinary array, since untyped makes no boost here | ||||
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 = crc ^ (-1); | ||||
for (var i = pos; i < end; i++ ) { | ||||
crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; | ||||
} | ||||
return (crc ^ (-1)); // >>> 0; | ||||
} | ||||
// That's all for the pako functions. | ||||
/** | ||||
* Compute the crc32 of a string. | ||||
* This is almost the same as the function crc32, but for strings. Using the | ||||
* same function for the two use cases leads to horrible performances. | ||||
* @param {Number} crc the starting value of the crc. | ||||
* @param {String} str the string to use. | ||||
* @param {Number} len the length of the string. | ||||
* @param {Number} pos the starting position for the crc32 computation. | ||||
* @return {Number} the computed crc32. | ||||
*/ | ||||
function crc32str(crc, str, len, pos) { | ||||
var t = crcTable, end = pos + len; | ||||
crc = crc ^ (-1); | ||||
for (var i = pos; i < end; i++ ) { | ||||
crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; | ||||
} | ||||
return (crc ^ (-1)); // >>> 0; | ||||
} | ||||
module.exports = function crc32wrapper(input, crc) { | ||||
if (typeof input === "undefined" || !input.length) { | ||||
return 0; | ||||
} | ||||
var isArray = utils.getTypeOf(input) !== "string"; | ||||
if(isArray) { | ||||
return crc32(crc|0, input, input.length, 0); | ||||
} else { | ||||
return crc32str(crc|0, input, input.length, 0); | ||||
} | ||||
}; | ||||