Add msg option to InternalPrecondtions.checkType

Change-Id: I5764473a7e67fb9b0d6ae1c92f3a4920b03d8996
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java b/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
index 419e9ac..8d3d5f4 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
@@ -125,11 +125,15 @@
   }
 
   public static void checkType(boolean expression) {
+    checkType(expression, null);
+  }
+
+  public static void checkType(boolean expression, String message) {
     if (IS_TYPE_CHECKED) {
-      checkCriticalType(expression);
+      checkCriticalType(expression, message);
     } else if (IS_ASSERTED) {
       try {
-        checkCriticalType(expression);
+        checkCriticalType(expression, message);
       } catch (Exception e) {
         throw new AssertionError(e);
       }
@@ -137,8 +141,12 @@
   }
 
   public static void checkCriticalType(boolean expression) {
+    checkCriticalType(expression, null);
+  }
+
+  public static void checkCriticalType(boolean expression, String message) {
     if (!expression) {
-      throw new ClassCastException();
+      throw new ClassCastException(message);
     }
   }