code: function hashCode(str) {
      var hash = 0xdeadbeef;
      for (var i = str.length; i >= 0; --i) {
          hash = (hash * 33) ^ str.charCodeAt(--i);
      }
      // turn to unsigned 32bit int
      return hash >>> 0;
  }
docs: get a non-crypto hash code from a string.
  
  @param {string} str
  @returns {number} unsigned 32bit hash code
  @see http://www.cse.yorku.ca/~oz/hash.html