mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 11:17:35 +00:00
LibJS: Explicitly handle invalid Date objects in UTC time setters
This is a normative change in the ECMA-262 spec:
ca53334
Note that this also fixes a few errors where we errantly converted the
stored time value to local time.
This commit is contained in:
parent
fd7d0a31d9
commit
30a143c79e
8 changed files with 160 additions and 80 deletions
|
@ -33,3 +33,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCDate()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCDate(15)).toBeNaN();
|
||||
expect(date.getUTCDate()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -53,3 +53,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCFullYear()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
date.setUTCFullYear(2022);
|
||||
expect(date.getUTCFullYear()).toBe(2022);
|
||||
});
|
||||
|
|
|
@ -63,3 +63,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCHours()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCHours(2)).toBeNaN();
|
||||
expect(date.getUTCHours()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -36,3 +36,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCMilliseconds()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCMilliseconds(2)).toBeNaN();
|
||||
expect(date.getUTCMilliseconds()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -49,3 +49,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCMinutes()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCMinutes(2)).toBeNaN();
|
||||
expect(date.getUTCMinutes()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -44,3 +44,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCMonth()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCMonth(2)).toBeNaN();
|
||||
expect(date.getUTCMonth()).toBeNaN();
|
||||
});
|
||||
|
|
|
@ -44,3 +44,9 @@ describe("correct behavior", () => {
|
|||
expect(d.getUTCSeconds()).toBeNaN();
|
||||
});
|
||||
});
|
||||
|
||||
test("invalid date", () => {
|
||||
let date = new Date(NaN);
|
||||
expect(date.setUTCSeconds(2)).toBeNaN();
|
||||
expect(date.getUTCSeconds()).toBeNaN();
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue