Remove window.console reference from ConsoleLogger. This is causing issues with users using GWT w/ node.js [1] and also caused issues with SDM earlier. [1] https://github.com/google/closure-compiler-js/issues/77 Bug: #9412 Bug-Link: https://github.com/gwtproject/gwt/issues/9412 Change-Id: I4e0e5d6c04560d6dd4776eeb386c5a811b1cf8a2
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 0f30941..ea5a530 100644 --- a/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java +++ b/user/super/com/google/gwt/emul/javaemul/internal/ConsoleLogger.java
@@ -24,7 +24,7 @@ */ public class ConsoleLogger { public static ConsoleLogger createIfSupported() { - return getConsole() != null ? new ConsoleLogger() : null; + return JsUtils.typeOf(getConsole()).equals("undefined") ? null : new ConsoleLogger(); } public void log(String level, String message) { @@ -101,6 +101,8 @@ public static LogFn groupEnd; } - @JsProperty(namespace = "<window>", name = "window.console") + // Using <window> due to https://code.google.com/archive/p/fbug/issues/2914 but probably not + // necessary anymore. + @JsProperty(namespace = "<window>", name = "console") private static native Console getConsole(); }
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 14a8e50..03fb8a1 100644 --- a/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java +++ b/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java
@@ -31,6 +31,9 @@ @JsMethod(namespace = "<window>") public static native int parseInt(String s, int radix); + @JsMethod(namespace = "<window>", name = "typeof") + public static native String typeOf(Object obj); + public static native boolean isUndefined(Object value) /*-{ return value === undefined; }-*/; @@ -63,9 +66,5 @@ map[key] = value; } catch(ignored) { } }-*/; - - public static native String typeOf(Object o) /*-{ - return typeof o; - }-*/; }