3 module
.exports
= function hash(str
) {
4 if (!str
|| !str
.length
) return 1;
6 /* djb2: http://www.cse.yorku.ca/~oz/hash.html */
8 for (var i = 0; i < str.length && i < 8; i++) {
9 // Limit to the first 8 chars
10 f = (f << 5) + f + str.charCodeAt(i); /* hash * 33 + c */
13 return (f
> 0 ? f
: -f
) % 3; // defaults to 4 buckets;