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;
-  }
-}
