Bunch of bit arithmetics to compute string hashCode acceptably
authorJaroslav Tulach <jtulach@netbeans.org>
Thu, 22 Nov 2012 00:04:19 +0100
changeset 19523047f655bfd
parent 194 fb6298cc9ec5
child 196 e7ea061e669c
Bunch of bit arithmetics to compute string hashCode acceptably
emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
     1.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Wed Nov 21 23:55:09 2012 +0100
     1.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Thu Nov 22 00:04:19 2012 +0100
     1.3 @@ -344,7 +344,8 @@
     1.4      var h = 0;
     1.5      var s = self.toString();
     1.6      for (var i = 0; i < s.length; i++) {
     1.7 -        h = 31 * h + s.charCodeAt(i);
     1.8 +        var high = (h >> 16) & 0xffff, low = h & 0xffff;
     1.9 +        h = (((((31 * high) & 0xffff) << 16) >>> 0) + (31 * low) + s.charCodeAt(i)) & 0xffffffff;
    1.10      }
    1.11      return h;
    1.12  }