Makes Throwable.backingJsObject to not rely on exports.
Change-Id: Iae5997b7bd49b205aa40e6c9999cdef2024ad535
diff --git a/dev/build.xml b/dev/build.xml
index 66e97ac..b2092f6 100755
--- a/dev/build.xml
+++ b/dev/build.xml
@@ -32,7 +32,8 @@
<pathelement location="${gwt.tools.lib}/junit/junit-4.8.2.jar"/>
</classpath>
</gwt.javac>
- <gwt.javac srcdir="" destdir="${javac.junit.out}" excludes="**/EmulatedCharset.java,**/HashCodes.java">
+ <gwt.javac srcdir="" destdir="${javac.junit.out}"
+ excludes="**/EmulatedCharset.java,**/HashCodes.java,**/ConsoleLogger.java,**/SuperDevModeLogger.java">
<src path="${gwt.root}/user/src" />
<src path="${gwt.root}/user/super/com/google/gwt/emul/javaemul/internal"/>
<classpath>
diff --git a/user/BUILD b/user/BUILD
index 05209c3..41e2e6e 100644
--- a/user/BUILD
+++ b/user/BUILD
@@ -66,6 +66,8 @@
],
exclude = [
"src/com/google/gwt/junit/**/*.java", # see gwt-testing
+ "**/ConsoleLogger.java", # relies on internal APIs
+ "**/SuperDevModeLogger.java", # relies on ConsoleLogger
"**/EmulatedCharset.java",
"**/HashCodes.java", # relies on java8 only APIs
"**/RunStyleSelenium.java",
diff --git a/user/build.xml b/user/build.xml
index f07aa33..b67bac4 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -98,7 +98,7 @@
<target name="compile" description="Compile all class files"
unless="compile.complete">
<mkdir dir="${javac.out}"/>
- <gwt.javac excludes="**/EmulatedCharset.java,**/HashCodes.java">
+ <gwt.javac excludes="**/EmulatedCharset.java,**/HashCodes.java,**/ConsoleLogger.java,**/SuperDevModeLogger.java">
<src path="super/com/google/gwt/emul/javaemul/internal"/>
<classpath>
<pathelement location="${gwt.tools.lib}/gss/2015-10-07/closure-stylesheets-library-20151007-rebased.jar"/>
diff --git a/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java b/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
index a8b2958..0222af7 100644
--- a/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
+++ b/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
@@ -374,7 +374,7 @@
}-*/;
private static native JsArrayString split(Object t) /*-{
- var e = t.backingJsObject;
+ var e = t.@Throwable::backingJsObject;
return (e && e.stack) ? e.stack.split('\n') : [];
}-*/;
}
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 bf53e83..e636ec3 100644
--- a/user/super/com/google/gwt/emul/java/lang/Throwable.java
+++ b/user/super/com/google/gwt/emul/java/lang/Throwable.java
@@ -24,7 +24,6 @@
import javaemul.internal.JsUtils;
import javaemul.internal.annotations.DoNotInline;
-
import jsinterop.annotations.JsMethod;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsProperty;
@@ -134,6 +133,10 @@
@com.google.gwt.core.client.impl.StackTraceCreator::captureStackTrace(*)(this);
}-*/;
+ public Object getBackingJsObject() {
+ return backingJsObject;
+ }
+
private void setBackingJsObject(Object backingJsObject) {
this.backingJsObject = backingJsObject;
linkBack(backingJsObject);
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java b/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
index ebad921..26a4af7 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
@@ -38,7 +38,7 @@
private void log(String level, Throwable t, String label, boolean expanded) {
groupStart(label + t.toString(), expanded);
- log(level, getBackingError(t));
+ log(level, getBackingError(t, t.getBackingJsObject()));
Throwable cause = t.getCause();
if (cause != null) {
log(level, cause, "Caused by: ", false);
@@ -60,7 +60,7 @@
groupEnd.call(console);
}-*/;
- private native String getBackingError(Throwable t) /*-{
+ private native String getBackingError(Throwable t, Object backingError) /*-{
// Converts CollectorLegacy (IE8/IE9/Safari5) function stack to something readable.
function stringify(fnStack) {
if (!fnStack || fnStack.length == 0) {
@@ -68,7 +68,7 @@
}
return "\t" + fnStack.join("\n\t");
}
- var backingError = t.backingJsObject;
+
return backingError && (backingError.stack || stringify(t["fnStack"]));
}-*/;
}
diff --git a/user/test/com/google/gwt/emultest/java/lang/JsExceptionTest.java b/user/test/com/google/gwt/emultest/java/lang/JsExceptionTest.java
index 68558ff..245ee41 100644
--- a/user/test/com/google/gwt/emultest/java/lang/JsExceptionTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/JsExceptionTest.java
@@ -14,6 +14,7 @@
package com.google.gwt.emultest.java.lang;
import static com.google.gwt.emultest.java.lang.JsExceptionViolator.createJsException;
+import static com.google.gwt.emultest.java.lang.JsExceptionViolator.getBackingJsObject;
import com.google.gwt.testing.TestUtils;
@@ -155,10 +156,6 @@
assertEquals(expected, getBackingJsObject(exception));
}
- private static native Object getBackingJsObject(Throwable e) /*-{
- return e.backingJsObject;
- }-*/;
-
private static native Object makeJSO() /*-{
return {
toString : function() {
diff --git a/user/test/com/google/gwt/emultest/java/lang/JsExceptionViolator.java b/user/test/com/google/gwt/emultest/java/lang/JsExceptionViolator.java
index f538a5c..9ab620f 100644
--- a/user/test/com/google/gwt/emultest/java/lang/JsExceptionViolator.java
+++ b/user/test/com/google/gwt/emultest/java/lang/JsExceptionViolator.java
@@ -22,4 +22,7 @@
public static native Exception createJsException(Object wrapped) /*-{
return @com.google.gwt.core.client.JavaScriptException::new(Ljava/lang/Object;)(wrapped);
}-*/;
+ public static native Object getBackingJsObject(Throwable t) /*-{
+ return t.@Throwable::backingJsObject;
+ }-*/;
}