1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| "use strict";
|
| function hash(str) {
| var hash = 5381,
| i = str.length;
|
| while(i) {
| hash = (hash * 33) ^ str.charCodeAt(--i);
| }
|
| /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed
| * integers. Since we want the results to be always positive, convert the
| * signed int to an unsigned by doing an unsigned bitshift. */
| return hash >>> 0;
| }
|
| module.exports = hash;
|
|