Mark JSNI methods in JRE as "unusable-by-js" for J2CL

J2CL encourages these methods to have a nice simple
and supported name as they are implemented in a native
js file and otherwise gives a unusable-by-js warning.
However marking these methods w/ JsMethod might cause
unnecessary code size in GWT if generateJsinteropExports
flags is set. For this reason we instead suppress the
warning.

Change-Id: Ibbdddb8840b05afbc07ebcdb5eb47f0cd9a98459
diff --git a/user/super/com/google/gwt/emul/java/lang/Integer.java b/user/super/com/google/gwt/emul/java/lang/Integer.java
index a549b93..93e16dc 100644
--- a/user/super/com/google/gwt/emul/java/lang/Integer.java
+++ b/user/super/com/google/gwt/emul/java/lang/Integer.java
@@ -224,7 +224,9 @@
     return toRadixString(toUnsigned(value), radix);
   }
 
-  private static native int toUnsigned(int value) /*-{
+  @SuppressWarnings("unusable-by-js")
+  private static native double toUnsigned(int value) /*-{
+    // Might return a number that is larger than int32
     return (value >>> 0);
   }-*/;
 
diff --git a/user/super/com/google/gwt/emul/java/lang/Throwable.java b/user/super/com/google/gwt/emul/java/lang/Throwable.java
index 589e7aa..5032d65 100644
--- a/user/super/com/google/gwt/emul/java/lang/Throwable.java
+++ b/user/super/com/google/gwt/emul/java/lang/Throwable.java
@@ -120,6 +120,7 @@
     return new NativeError(msg);
   }
 
+  @SuppressWarnings("unusable-by-js")
   private static native Object fixIE(Object e) /*-{
     // In IE -unlike every other browser-, the stack property is not defined until you throw it.
     if (!("stack" in e)) {
@@ -128,6 +129,7 @@
     return e;
   }-*/;
 
+  @SuppressWarnings("unusable-by-js")
   private native void captureStackTrace() /*-{
     @com.google.gwt.core.client.impl.StackTraceCreator::captureStackTrace(*)(this);
   }-*/;
@@ -212,6 +214,7 @@
     return stackTrace;
   }
 
+  @SuppressWarnings("unusable-by-js")
   private native StackTraceElement[] constructJavaStackTrace() /*-{
     return @com.google.gwt.core.client.impl.StackTraceCreator::constructJavaStackTrace(*)(this);
   }-*/;
diff --git a/user/super/com/google/gwt/emul/java/math/BigInteger.java b/user/super/com/google/gwt/emul/java/math/BigInteger.java
index 840cb3c..11b8f8b 100644
--- a/user/super/com/google/gwt/emul/java/math/BigInteger.java
+++ b/user/super/com/google/gwt/emul/java/math/BigInteger.java
@@ -240,6 +240,7 @@
    * @param val
    * @return val as an unsigned int
    */
+  @SuppressWarnings("unusable-by-js")
   private static native int toUnsignedInt(double val) /*-{
     return val | 0;
   }-*/;
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java b/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java
index caed13e..14a8e50 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java
@@ -22,6 +22,7 @@
 /**
  * Provides an interface for simple JavaScript idioms that can not be expressed in Java.
  */
+@SuppressWarnings("unusable-by-js")
 public class JsUtils {
 
   @JsMethod(namespace = "<window>", name = "Date.now")