Skip to content

Commit

Permalink
Mark JSNI methods in JRE as "unusable-by-js" for J2CL
Browse files Browse the repository at this point in the history
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
  • Loading branch information
gkdn committed Jun 17, 2017
1 parent 6138b88 commit 4c64599
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 1 deletion.
4 changes: 3 additions & 1 deletion user/super/com/google/gwt/emul/java/lang/Integer.java
Expand Up @@ -224,7 +224,9 @@ private static String toUnsignedString(int value, int radix) {
return toRadixString(toUnsigned(value), radix); 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); return (value >>> 0);
}-*/; }-*/;


Expand Down
3 changes: 3 additions & 0 deletions user/super/com/google/gwt/emul/java/lang/Throwable.java
Expand Up @@ -120,6 +120,7 @@ Object createError(String msg) {
return new NativeError(msg); return new NativeError(msg);
} }


@SuppressWarnings("unusable-by-js")
private static native Object fixIE(Object e) /*-{ private static native Object fixIE(Object e) /*-{
// In IE -unlike every other browser-, the stack property is not defined until you throw it. // In IE -unlike every other browser-, the stack property is not defined until you throw it.
if (!("stack" in e)) { if (!("stack" in e)) {
Expand All @@ -128,6 +129,7 @@ private static native Object fixIE(Object e) /*-{
return e; return e;
}-*/; }-*/;


@SuppressWarnings("unusable-by-js")
private native void captureStackTrace() /*-{ private native void captureStackTrace() /*-{
@com.google.gwt.core.client.impl.StackTraceCreator::captureStackTrace(*)(this); @com.google.gwt.core.client.impl.StackTraceCreator::captureStackTrace(*)(this);
}-*/; }-*/;
Expand Down Expand Up @@ -212,6 +214,7 @@ public StackTraceElement[] getStackTrace() {
return stackTrace; return stackTrace;
} }


@SuppressWarnings("unusable-by-js")
private native StackTraceElement[] constructJavaStackTrace() /*-{ private native StackTraceElement[] constructJavaStackTrace() /*-{
return @com.google.gwt.core.client.impl.StackTraceCreator::constructJavaStackTrace(*)(this); return @com.google.gwt.core.client.impl.StackTraceCreator::constructJavaStackTrace(*)(this);
}-*/; }-*/;
Expand Down
1 change: 1 addition & 0 deletions user/super/com/google/gwt/emul/java/math/BigInteger.java
Expand Up @@ -240,6 +240,7 @@ private static void setFromString(BigInteger bi, String val, int radix) {
* @param val * @param val
* @return val as an unsigned int * @return val as an unsigned int
*/ */
@SuppressWarnings("unusable-by-js")
private static native int toUnsignedInt(double val) /*-{ private static native int toUnsignedInt(double val) /*-{
return val | 0; return val | 0;
}-*/; }-*/;
Expand Down
Expand Up @@ -22,6 +22,7 @@
/** /**
* Provides an interface for simple JavaScript idioms that can not be expressed in Java. * Provides an interface for simple JavaScript idioms that can not be expressed in Java.
*/ */
@SuppressWarnings("unusable-by-js")
public class JsUtils { public class JsUtils {


@JsMethod(namespace = "<window>", name = "Date.now") @JsMethod(namespace = "<window>", name = "Date.now")
Expand Down

0 comments on commit 4c64599

Please sign in to comment.