{
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;
{ 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") },