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; + }-*/; }