1
0
mirror of https://github.com/tc39/test262.git synced 2025-04-08 19:35:28 +02:00

Test ISO strings with extended year -000000

In Date.parse() and new Date(), representations of the year 0 as -000000
must not be accepted. In the case of Date.parse(), they should yield NaN,
and in the case of new Date(), they should yield an invalid Date object,
whose valueOf() is NaN.
This commit is contained in:
Philip Chimento 2022-04-08 17:08:13 -07:00 committed by Rick Waldron
parent 1b71018adb
commit 8a1ec2f20b
2 changed files with 40 additions and 0 deletions
test/built-ins/Date

@ -0,0 +1,20 @@
// Copyright (C) 2022 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-expanded-years
description: Negative zero, as an extended year, is rejected
info: |
The year 0 is considered positive and must be prefixed with a + sign. The
representation of the year 0 as -000000 is invalid.
---*/
const invalidStrings = [
"-000000-03-31T00:45Z",
"-000000-03-31T01:45",
"-000000-03-31T01:45:00+01:00"
];
for (const str of invalidStrings) {
assert.sameValue(Date.parse(str), NaN, "reject minus zero as extended year");
}

@ -0,0 +1,20 @@
// Copyright (C) 2022 Igalia, S.L. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-expanded-years
description: Negative zero, as an extended year, is rejected
info: |
The year 0 is considered positive and must be prefixed with a + sign. The
representation of the year 0 as -000000 is invalid.
---*/
const invalidStrings = [
"-000000-03-31T00:45Z",
"-000000-03-31T01:45",
"-000000-03-31T01:45:00+01:00"
];
for (const str of invalidStrings) {
assert.sameValue(+new Date(str), NaN, "reject minus zero as extended year");
}