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")