diff --git a/jerry-core/ecma/builtin-objects/ecma-builtin-date.cpp b/jerry-core/ecma/builtin-objects/ecma-builtin-date.cpp index 9fd1639a5..a90cfad9d 100644 --- a/jerry-core/ecma/builtin-objects/ecma-builtin-date.cpp +++ b/jerry-core/ecma/builtin-objects/ecma-builtin-date.cpp @@ -529,7 +529,7 @@ ecma_builtin_date_dispatch_construct (const ecma_value_t *arguments_list_p, /**< ECMA_TRY_CATCH (prim_value, ecma_op_to_number (arguments_list_p[0]), ret_value); prim_value_num_p = ecma_alloc_number (); - *prim_value_num_p = *ecma_get_number_from_value (prim_value); + *prim_value_num_p = ecma_date_time_clip (*ecma_get_number_from_value (prim_value)); ECMA_FINALIZE (prim_value); } diff --git a/tests/jerry/date-construct.js b/tests/jerry/date-construct.js index 55e6e2c59..c5d485f92 100644 --- a/tests/jerry/date-construct.js +++ b/tests/jerry/date-construct.js @@ -57,3 +57,9 @@ assert (d.valueOf() == 1420070400000); d = new Date(2015,0,1,0,0,0,0); assert (d.valueOf() == 1420070400000); + +d = new Date(8.64e+15); +assert (d.valueOf() == 8.64e+15); + +d = new Date(8.64e+15 + 1); +assert (isNaN(d.valueOf()));