If it delegate to JS Date.toString() I would presume so. The JS Date
and JRE Date have other differences, like the maximum date is
effectively 2^53, or about 23,000 AD/BC, after that, the JS date
fails.


On Fri, Mar 12, 2010 at 8:52 PM,  <[email protected]> wrote:
> Reviewers: scottb,
>
> Description:
> Once again allow Dates from doubles, for JSON happiness
> Review by: [email protected]
>
> Please review this at http://gwt-code-reviews.appspot.com/202801
>
> Affected files:
>  M bikeshed/src/com/google/gwt/valuestore/client/ValuesImpl.java
>  M user/super/com/google/gwt/emul/java/util/Date.java
>
>
> Index: bikeshed/src/com/google/gwt/valuestore/client/ValuesImpl.java
> ===================================================================
> --- bikeshed/src/com/google/gwt/valuestore/client/ValuesImpl.java
> (revision 7725)
> +++ bikeshed/src/com/google/gwt/valuestore/client/ValuesImpl.java
> (working copy)
> @@ -15,6 +15,7 @@
>  */
>  package com.google.gwt.valuestore.client;
>
> +import com.google.gwt.core.client.GWT;
>  import com.google.gwt.core.client.JavaScriptObject;
>  import com.google.gwt.core.client.JsArray;
>  import com.google.gwt.valuestore.shared.Property;
> @@ -48,13 +49,12 @@
>     }
>     if (Date.class.equals(property.getValueType())) {
>       double millis = getDouble(property.getName());
> -      // TODO (rjrjr) bring this back when Date gets JSO friendly again
> -//      if (GWT.isScript()) {
> -//        return (V) initDate(new Date(), millis);
> -//      } else {
> +      if (GWT.isScript()) {
> +        return (V) dateForDouble(millis);
> +      } else {
>         // In dev mode, we're using real JRE dates
>         return (V) new Date((long) millis);
> -//      }
> +      }
>     }
>
>     return nativeGet(property);
> @@ -89,10 +89,9 @@
>     return this[name];
>   }-*/;
>
> -//  private native Date initDate(Date date, double millis) /*-{
> -//    [email protected]::init(D)(millis);
> -//    return date;
> -//  }-*/;
> +  private native Date dateForDouble(double millis) /*-{
> +    return @java.util.Date::createFrom(D)(millis);
> +  }-*/;
>
>   private native int getInt(String name) /*-{
>     return this[name];
> Index: user/super/com/google/gwt/emul/java/util/Date.java
> ===================================================================
> --- user/super/com/google/gwt/emul/java/util/Date.java  (revision 7725)
> +++ user/super/com/google/gwt/emul/java/util/Date.java  (working copy)
> @@ -93,6 +93,21 @@
>     jsdate = JsDate.create(date);
>   }
>
> +  /**
> +   * Package private factory for JSNI use, to allow cheap creation of dates
> from
> +   * doubles.
> +   */
> +  static Date createFrom(double milliseconds) {
> +    return new Date(milliseconds, false);
> +  }
> +
> +  /**
> +   * For use by {...@link #createFrom(double)}, should inline away.
> +   */
> +  Date(double milliseconds, boolean dummyArgForOverloadResolution) {
> +    jsdate = JsDate.create(milliseconds);
> +  }
> +
>   public Date(String date) {
>     this(Date.parse(date));
>   }
>
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to