mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 01:07:36 +00:00
LibJS: Explicitly handle invalid Date objects in local time setters
This is a normative change in the ECMA-262 spec:
ca53334
This commit is contained in:
parent
cbdbe0c5a2
commit
fd7d0a31d9
9 changed files with 199 additions and 77 deletions
|
@ -30,3 +30,9 @@ test("Day as argument", () => {
|
|||
expect(date.getSeconds()).toBe(0);
|
||||
expect(date.getMilliseconds()).toBe(0);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setDate(15)).toBeNaN();
|
||||
expect(date.getDate()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -110,3 +110,9 @@ test("Make Invalid Date valid again", () => {
|
|||
expect(date.getSeconds()).toBe(0);
|
||||
expect(date.getMilliseconds()).toBe(0);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
date.setFullYear(2022);
|
||||
expect(date.getFullYear()).toBe(2022);
|
||||
});
|
||||
|
|
|
@ -25,3 +25,9 @@ test("basic functionality", () => {
|
|||
d.setHours("a");
|
||||
expect(d.getHours()).toBe(NaN);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setHours(2)).toBeNaN();
|
||||
expect(date.getHours()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -10,3 +10,9 @@ test("basic functionality", () => {
|
|||
d.setMilliseconds("a");
|
||||
expect(d.getMilliseconds()).toBe(NaN);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setMilliseconds(2)).toBeNaN();
|
||||
expect(date.getMilliseconds()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -19,3 +19,9 @@ test("basic functionality", () => {
|
|||
d.setMinutes("a");
|
||||
expect(d.getMinutes()).toBe(NaN);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setMinutes(2)).toBeNaN();
|
||||
expect(date.getMinutes()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -61,3 +61,9 @@ test("NaN or undefined in any arguments", () => {
|
|||
date.setMonth(2021, undefined);
|
||||
expect(date.getTime()).toBe(NaN);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setMonth(2)).toBeNaN();
|
||||
expect(date.getMonth()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -14,3 +14,9 @@ test("basic functionality", () => {
|
|||
d.setSeconds("a");
|
||||
expect(d.getSeconds()).toBe(NaN);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setSeconds(2)).toBeNaN();
|
||||
expect(date.getSeconds()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -45,3 +45,9 @@ test("Make Invalid Date valid again", () => {
|
|||
expect(date.getUTCSeconds()).toBe(46);
|
||||
expect(date.getUTCMilliseconds()).toBe(0);
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setTime(1622993746000)).toBe(1622993746000);
|
||||
expect(date.getTime()).toBe(1622993746000);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue