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")