mirror of
https://github.com/tc39/test262.git
synced 2025-08-22 10:28:30 +02:00
Adds tests for conversion of a Number whose corresponding toString() value is a valid ISO string. For some Temporal types this is possible, with a number like 20220418. Especially for Temporal.Calendar, we have to take into account the case where the number is provided as the value for the 'calendar' property in a property bag, and the case of up to one level of nested property bag as well. Regularizes and expands existing tests for this case.
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
// Copyright (C) 2022 Igalia, S.L. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-temporal.plaindatetime.from
|
|
description: A number as calendar in a property bag is converted to a string, then to a calendar
|
|
includes: [temporalHelpers.js]
|
|
features: [Temporal]
|
|
---*/
|
|
|
|
const calendar = 19970327;
|
|
|
|
let arg = { year: 1976, monthCode: "M11", day: 18, calendar };
|
|
const result1 = Temporal.PlainDateTime.from(arg);
|
|
TemporalHelpers.assertPlainDateTime(result1, 1976, 11, "M11", 18, 0, 0, 0, 0, 0, 0, "19970327 is a valid ISO string for calendar");
|
|
|
|
arg = { year: 1976, monthCode: "M11", day: 18, calendar: { calendar } };
|
|
const result2 = Temporal.PlainDateTime.from(arg);
|
|
TemporalHelpers.assertPlainDateTime(result2, 1976, 11, "M11", 18, 0, 0, 0, 0, 0, 0, "19970327 is a valid ISO string for calendar (nested property)");
|
|
|
|
const numbers = [
|
|
1,
|
|
-19970327,
|
|
1234567890,
|
|
];
|
|
|
|
for (const calendar of numbers) {
|
|
let arg = { year: 1976, monthCode: "M11", day: 18, calendar };
|
|
assert.throws(
|
|
RangeError,
|
|
() => Temporal.PlainDateTime.from(arg),
|
|
`Number ${calendar} does not convert to a valid ISO string for calendar`
|
|
);
|
|
arg = { year: 1976, monthCode: "M11", day: 18, calendar: { calendar } };
|
|
assert.throws(
|
|
RangeError,
|
|
() => Temporal.PlainDateTime.from(arg),
|
|
`Number ${calendar} does not convert to a valid ISO string for calendar (nested property)`
|
|
);
|
|
}
|