diff --git a/user/super/com/google/gwt/emul/java/lang/CaseMapper.java b/user/super/com/google/gwt/emul/java/lang/CaseMapper.java
new file mode 100644
index 0000000..b3413a8
--- /dev/null
+++ b/user/super/com/google/gwt/emul/java/lang/CaseMapper.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2021 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 java.lang;
+
+/** Performs case operations. Abstracted so can be platform specific. */
+final class CaseMapper {
+
+  public static char charToLowerCase(char c) {
+    return String.valueOf(c).toLowerCase().charAt(0);
+  }
+
+  public static char charToUpperCase(char c) {
+    return String.valueOf(c).toUpperCase().charAt(0);
+  }
+
+  private CaseMapper() {}
+}
diff --git a/user/super/com/google/gwt/emul/java/lang/Character.java b/user/super/com/google/gwt/emul/java/lang/Character.java
index 9bef6a5..3733f73 100644
--- a/user/super/com/google/gwt/emul/java/lang/Character.java
+++ b/user/super/com/google/gwt/emul/java/lang/Character.java
@@ -413,7 +413,7 @@
   }
 
   public static char toLowerCase(char c) {
-    return String.valueOf(c).toLowerCase().charAt(0);
+    return CaseMapper.charToLowerCase(c);
   }
 
   public static String toString(char x) {
@@ -421,7 +421,7 @@
   }
 
   public static char toUpperCase(char c) {
-    return String.valueOf(c).toUpperCase().charAt(0);
+    return CaseMapper.charToUpperCase(c);
   }
 
   public static Character valueOf(char c) {
