Update ConsoleLogger native types to better reflect DOM spec.
Change-Id: I78780fc7f4e20897d78f53c8f5a2d3adb236e614
Review-Link: https://gwt-review.googlesource.com/#/c/18720/
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 58378ea..0f30941 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
@@ -29,6 +29,7 @@
public void log(String level, String message) {
LogFn logFn = JsUtils.getProperty(getConsole(), level);
+ // Older Firefox versions expect console instance as 'this'
logFn.call(getConsole(), message);
}
@@ -50,26 +51,29 @@
}
private void groupStart(String msg, boolean expanded) {
+ // Older Firefox versions expect console instance as 'this'
getGroupStartFn(expanded).call(getConsole(), msg);
}
private LogFn getGroupStartFn(boolean expanded) {
// Not all browsers support grouping:
- if (!expanded && getConsole().groupCollapsed != null) {
- return getConsole().groupCollapsed;
- } else if (getConsole().group != null) {
- return getConsole().group;
+ if (!expanded && Console.groupCollapsed != null) {
+ return Console.groupCollapsed;
+ } else if (Console.group != null) {
+ return Console.group;
} else {
- return getConsole().log;
+ return Console.log;
}
}
private void groupEnd() {
- if (getConsole().groupEnd != null) {
- getConsole().groupEnd.call(getConsole());
+ if (Console.groupEnd != null) {
+ // Older Firefox versions expect console instance as 'this'
+ Console.groupEnd.call(getConsole());
}
}
+ @SuppressWarnings("unusable-by-js")
private static native String getBackingErrorStack(Throwable t) /*-{
var backingError = t.@Throwable::backingJsObject;
@@ -89,12 +93,12 @@
void call(Console objThis, Object... args);
}
- @JsType(isNative = true, namespace = "<window>")
+ @JsType(isNative = true, namespace = "<window>", name = "console")
private static class Console {
- public LogFn log;
- public LogFn group;
- public LogFn groupCollapsed;
- public LogFn groupEnd;
+ public static LogFn log;
+ public static LogFn group;
+ public static LogFn groupCollapsed;
+ public static LogFn groupEnd;
}
@JsProperty(namespace = "<window>", name = "window.console")