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