@@ -3485,3 +3485,33 @@ fn synthetic_module() {
34853485 check ( "a" , 1.0 ) ;
34863486 check ( "b" , 2.0 ) ;
34873487}
3488+
3489+ #[ allow( clippy:: float_cmp) ]
3490+ #[ test]
3491+ fn date ( ) {
3492+ let time = 1_291_404_900_000. ; // 2010-12-03 20:35:00 - Mees <3
3493+
3494+ let _setup_guard = setup ( ) ;
3495+ let isolate = & mut v8:: Isolate :: new ( Default :: default ( ) ) ;
3496+
3497+ let scope = & mut v8:: HandleScope :: new ( isolate) ;
3498+
3499+ let context = v8:: Context :: new ( scope) ;
3500+ let scope = & mut v8:: ContextScope :: new ( scope, context) ;
3501+
3502+ let date = v8:: Date :: new ( scope, time) . unwrap ( ) ;
3503+ assert_eq ! ( date. value_of( ) , time) ;
3504+
3505+ let key = v8:: String :: new ( scope, "d" ) . unwrap ( ) ;
3506+ context. global ( scope) . set ( scope, key. into ( ) , date. into ( ) ) ;
3507+
3508+ let result = eval ( scope, "d.toISOString()" ) . unwrap ( ) ;
3509+ let result = result. to_string ( scope) . unwrap ( ) ;
3510+ let result = result. to_rust_string_lossy ( scope) ;
3511+ assert_eq ! ( result, "2010-12-03T19:35:00.000Z" ) ;
3512+
3513+ // V8 chops off fractions.
3514+ let date = v8:: Date :: new ( scope, std:: f64:: consts:: PI ) . unwrap ( ) ;
3515+ assert_eq ! ( date. value_of( ) , 3.0 ) ;
3516+ assert_eq ! ( date. number_value( scope) . unwrap( ) , 3.0 ) ;
3517+ }
0 commit comments