From: Artem S. Povalyukhin Date: Fri, 11 Oct 2019 03:50:33 +0000 (+0300) Subject: Fixed Date.prototype.setTime(). X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=191da7441108288a4211126cc8f2cac2310b3874;p=njs.git Fixed Date.prototype.setTime(). This closes #236 issue on Github. --- diff --git a/src/njs_date.c b/src/njs_date.c index 4eacbe26..f697f08c 100644 --- a/src/njs_date.c +++ b/src/njs_date.c @@ -1520,16 +1520,11 @@ njs_date_prototype_set_time(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, { double time; - time = njs_date(&args[0])->time; - - if (njs_fast_path(!isnan(time))) { - - if (nargs > 1) { - time = njs_number(&args[1]); + if (nargs > 1) { + time = njs_timeclip(njs_number(&args[1])); - } else { - time = NAN; - } + } else { + time = NAN; } njs_date(&args[0])->time = time; diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index 441f97bd..9d83dca1 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -11878,6 +11878,21 @@ static njs_unit_test_t njs_test[] = { njs_str("var d = new Date(); d.setTime(1308895200000); d.getTime()"), njs_str("1308895200000") }, + { njs_str("var d = new Date(); d.setTime(); d.getTime()"), + njs_str("NaN") }, + + { njs_str("var d = new Date(); d.setTime(Infinity); d.getTime()"), + njs_str("NaN") }, + + { njs_str("var d = new Date(); d.setTime(8.64e15 +1); d.getTime()"), + njs_str("NaN") }, + + { njs_str("var d = new Date(NaN); d.setTime(0); d.getTime()"), + njs_str("0") }, + + { njs_str("var d = new Date(); d.setTime(8.64e15); d.getTime()"), + njs_str("8640000000000000") }, + { njs_str("var d = new Date(1308895201625); d.setMilliseconds(5003);" "d.getTime()"), njs_str("1308895206003") },