1.1 --- a/emul/src/main/java/java/lang/Object.java Sun Dec 16 20:48:21 2012 +0100
1.2 +++ b/emul/src/main/java/java/lang/Object.java Sun Dec 16 21:19:26 2012 +0100
1.3 @@ -104,6 +104,11 @@
1.4 * @see java.lang.Object#equals(java.lang.Object)
1.5 * @see java.lang.System#identityHashCode
1.6 */
1.7 + @JavaScriptBody(args = "self", body =
1.8 + "if (self.$hashCode) return self.$hashCode;\n"
1.9 + + "var h = Math.random() * Math.pow(2, 32);\n"
1.10 + + "return self.$hashCode = h & h;"
1.11 + )
1.12 public native int hashCode();
1.13
1.14 /**
2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareHashTest.java Sun Dec 16 20:48:21 2012 +0100
2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/tck/CompareHashTest.java Sun Dec 16 21:19:26 2012 +0100
2.3 @@ -30,6 +30,11 @@
2.4 return "Ahoj".hashCode();
2.5 }
2.6
2.7 + @Compare public int hashRemainsYieldsZero() {
2.8 + Object o = new Object();
2.9 + return o.hashCode() - o.hashCode();
2.10 + }
2.11 +
2.12 @Factory
2.13 public static Object[] create() {
2.14 return CompareVMs.create(CompareHashTest.class);