Simplify identity hashcode implementation.

PiperOrigin-RevId: 357871100
Change-Id: I10a2c43ff3f52f90001ed90ccc3816d35c9cc614
diff --git a/dev/core/test/com/google/gwt/dev/CompilerTest.java b/dev/core/test/com/google/gwt/dev/CompilerTest.java
index a8bce00..cfcae5d 100644
--- a/dev/core/test/com/google/gwt/dev/CompilerTest.java
+++ b/dev/core/test/com/google/gwt/dev/CompilerTest.java
@@ -2767,6 +2767,7 @@
         "java.lang.Throwable$HasJavaThrowable",
         "java.lang.Throwable$NativeError",
         "java.lang.Throwable$NativeTypeError",
+        "javaemul.internal.HashCodes",
         "javaemul.internal.NativeRegExp",
         "javaemul.internal.NativeRegExp$Match"));
     return staleTypeNames;
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/HashCodes.java b/user/super/com/google/gwt/emul/javaemul/internal/HashCodes.java
index 8e4bdd4..0fdd055 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/HashCodes.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/HashCodes.java
@@ -15,10 +15,12 @@
  */
 package javaemul.internal;
 
-/**
- * Contains logics for calculating hash codes in JavaScript.
- */
+import jsinterop.annotations.JsType;
+
+/** Contains logics for calculating hash codes in JavaScript. */
+@JsType
 public class HashCodes {
+
   public static int getIdentityHashCode(Object o) {
     switch (JsUtils.typeOf(o)) {
       case "string":
@@ -32,7 +34,13 @@
     }
   }
 
-  public static int getObjectIdentityHashCode(Object o) {
-    return ObjectHashing.getHashCode(o);
+  private static int nextHash;
+
+  public static native int getObjectIdentityHashCode(Object o) /*-{
+    return o.$H || (o.$H = @HashCodes::getNextHash()());
+  }-*/;
+
+  public static int getNextHash() {
+    return ++nextHash;
   }
 }
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/ObjectHashing.java b/user/super/com/google/gwt/emul/javaemul/internal/ObjectHashing.java
deleted file mode 100644
index 8821833..0000000
--- a/user/super/com/google/gwt/emul/javaemul/internal/ObjectHashing.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2016 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package javaemul.internal;
-
-/**
- * Utility class to generate hash code for Objects.
- */
-class ObjectHashing {
-
-  private static int nextHashId = 0;
-  private static final String HASH_CODE_PROPERTY = "$H";
-
-  public static native int getHashCode(Object o) /*-{
-    return o.$H || (o.$H = @ObjectHashing::getNextHashId()());
-  }-*/;
-
-  /**
-   * Called from JSNI. Do not change this implementation without updating:
-   * <ul>
-   * <li>{@link com.google.gwt.user.client.rpc.impl.SerializerBase}</li>
-   * </ul>
-   */
-  private static int getNextHashId() {
-    return ++nextHashId;
-  }
-}