Remove JSNI from DateUtil. Change-Id: I40b0c58875cce9aad73b5360a4e978bf852c2cd4 Review-Link: https://gwt-review.googlesource.com/#/c/18440/
diff --git a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Runtime.java b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Runtime.java index 5118b40..8e6c5f8 100644 --- a/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Runtime.java +++ b/dev/core/super/com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/Runtime.java
@@ -176,11 +176,19 @@ @Runtime::prototypesByTypeId = {}; // Do polyfills for all methods expected in a modern browser. - // Patch up Array.isArray for browsers that don't support the fast native check. + + // Required by IE8 if (!Array.isArray) { - Array.isArray = function (vArg) { - return Object.prototype.toString.call(vArg) === "[object Array]"; - }; + Array.isArray = function (vArg) { + return Object.prototype.toString.call(vArg) === "[object Array]"; + }; + } + + // Required by IE8 + if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; } }-*/;
diff --git a/user/super/com/google/gwt/emul/java/lang/System.java b/user/super/com/google/gwt/emul/java/lang/System.java index a3b3062..5767122 100644 --- a/user/super/com/google/gwt/emul/java/lang/System.java +++ b/user/super/com/google/gwt/emul/java/lang/System.java
@@ -22,8 +22,8 @@ import java.io.PrintStream; import javaemul.internal.ArrayHelper; -import javaemul.internal.DateUtil; import javaemul.internal.HashCodes; +import javaemul.internal.JsUtils; import jsinterop.annotations.JsMethod; @@ -93,7 +93,7 @@ } public static long currentTimeMillis() { - return (long) DateUtil.now(); + return (long) JsUtils.getTime(); } /**
diff --git a/user/super/com/google/gwt/emul/java/util/Random.java b/user/super/com/google/gwt/emul/java/util/Random.java index c603378..4a7da06 100644 --- a/user/super/com/google/gwt/emul/java/util/Random.java +++ b/user/super/com/google/gwt/emul/java/util/Random.java
@@ -37,7 +37,7 @@ import static javaemul.internal.InternalPreconditions.checkCriticalArgument; import static javaemul.internal.InternalPreconditions.checkNotNull; -import javaemul.internal.DateUtil; +import javaemul.internal.JsUtils; /** * This class provides methods that generates pseudo-random numbers of different @@ -114,7 +114,7 @@ public Random() { // JsDate.now used instead of System.currentTimeMillis() // as it returns a double in order to avoid the use os LongLib. - double seed = uniqueSeed++ + DateUtil.now(); + double seed = uniqueSeed++ + JsUtils.getTime(); int hi = (int) Math.floor(seed * twoToTheMinus24) & 0xffffff; int lo = (int) (seed - (hi * twoToThe24)); setSeed(hi, lo);
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/DateUtil.java b/user/super/com/google/gwt/emul/javaemul/internal/DateUtil.java deleted file mode 100644 index 321bf95..0000000 --- a/user/super/com/google/gwt/emul/javaemul/internal/DateUtil.java +++ /dev/null
@@ -1,36 +0,0 @@ -/* - * Copyright 2015 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package javaemul.internal; - -/** - * Simple Helper class to return Date.now. - */ -public class DateUtil { - /** - * Returns the numeric value corresponding to the current time - - * the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. - */ - public static native double now() /*-{ - // IE8 does not have Date.now - // when removing IE8 support we change this to Date.now() - if (Date.now) { - // Date.now vs Date.getTime() performance comparison: - // http://jsperf.com/date-now-vs-new-date/8 - return Date.now(); - } - return (new Date()).getTime(); - }-*/; -} \ No newline at end of file
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 21a1d5a..164f5ff 100644 --- a/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java +++ b/user/super/com/google/gwt/emul/javaemul/internal/JsUtils.java
@@ -24,9 +24,8 @@ */ public class JsUtils { - public static native int compare(String a, String b) /*-{ - return a == b ? 0 : (a < b ? -1 : 1); - }-*/; + @JsMethod(namespace = "<window>", name = "Date.now") + public static native double getTime(); @JsMethod(namespace = "<window>") public static native boolean isFinite(double d);