mirror of https://github.com/tc39/test262.git
updated hourCycle-default.js to reflect new behaviour of hourCycle, which now associates h12 with h23 rather than h24. see https://github.com/tc39/ecma402/pull/758.
This commit is contained in:
parent
63456adb38
commit
800d136d96
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2019 Google Inc. All rights reserved.
|
||||
// Copyright 2019 Google Inc., 2023 Igalia S.L. All rights reserved.
|
||||
// This code is governed by the license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
|
@ -7,50 +7,37 @@ description: >
|
|||
Intl.DateTimeFormat.prototype.resolvedOptions properly
|
||||
reflect hourCycle settings.
|
||||
info: |
|
||||
12.4.5 Intl.DateTimeFormat.prototype.resolvedOptions()
|
||||
11.3.7 Intl.DateTimeFormat.prototype.resolvedOptions()
|
||||
|
||||
11.1.2 CreateDateTimeFormat ( dateTimeFormat, locales, options, required, defaults )
|
||||
29. If dateTimeFormat.[[Hour]] is not undefined, then
|
||||
a. Let hcDefault be dataLocaleData.[[hourCycle]].
|
||||
b. Let hc be dateTimeFormat.[[HourCycle]].
|
||||
c. If hc is null, then
|
||||
i. Set hc to hcDefault.
|
||||
d. If hour12 is not undefined, then
|
||||
i. If hour12 is true, then
|
||||
1. If hcDefault is "h11" or "h23", then
|
||||
a. Set hc to "h11".
|
||||
2. Else,
|
||||
a. Set hc to "h12".
|
||||
ii. Else,
|
||||
1. Assert: hour12 is false.
|
||||
2. If hcDefault is "h11" or "h23", then
|
||||
a. Set hc to "h23".
|
||||
3. Else,
|
||||
a. Set hc to "h24".
|
||||
e. Set dateTimeFormat.[[HourCycle]] to hc.
|
||||
|
||||
locale: [en, fr, it, ja, zh, ko, ar, hi]
|
||||
23. Let dataLocaleData be localeData.[[<dataLocale>]].
|
||||
24. If hour12 is true, then
|
||||
a. Let hc be dataLocaleData.[[hourCycle12]].
|
||||
25. Else if hour12 is false, then
|
||||
a. Let hc be dataLocaleData.[[hourCycle24]].
|
||||
26. Else,
|
||||
a. Assert: hour12 is undefined.
|
||||
b. Let hc be r.[[hc]].
|
||||
c. If hc is null, set hc to dataLocaleData.[[hourCycle]].
|
||||
27. Set dateTimeFormat.[[HourCycle]] to hc.
|
||||
|
||||
locale: [en, fr, it, ja, zh, ko, ar, hi, en-u-hc-h24]
|
||||
---*/
|
||||
|
||||
let locales = ["en", "fr", "it", "ja", "zh", "ko", "ar", "hi"];
|
||||
|
||||
locales.forEach(function(locale) {
|
||||
let hcDefault = (new Intl.DateTimeFormat(locale, {hour: "numeric"}))
|
||||
.resolvedOptions().hourCycle;
|
||||
if (hcDefault == "h11" || hcDefault == "h23") {
|
||||
assert.sameValue("h11",
|
||||
(new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: true}))
|
||||
.resolvedOptions().hourCycle);
|
||||
assert.sameValue("h23",
|
||||
(new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: false}))
|
||||
.resolvedOptions().hourCycle);
|
||||
} else {
|
||||
assert.sameValue(true, hcDefault == "h12" || hcDefault == "h24")
|
||||
assert.sameValue("h12",
|
||||
(new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: true}))
|
||||
.resolvedOptions().hourCycle);
|
||||
assert.sameValue("h24",
|
||||
(new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: false}))
|
||||
.resolvedOptions().hourCycle);
|
||||
let hcDefault = new Intl.DateTimeFormat(locale, { hour: "numeric" }).resolvedOptions().hourCycle;
|
||||
if (hcDefault === "h11" || hcDefault === "h12") {
|
||||
assert.sameValue(new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: true }).resolvedOptions().hourCycle, hcDefault);
|
||||
|
||||
// no locale has "h24" as a default. see https://github.com/tc39/ecma402/pull/758#issue-1622377292
|
||||
assert.sameValue(new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: false }).resolvedOptions().hourCycle, "h23");
|
||||
}
|
||||
if (hcDefault === "h23" || hcDefault === "h24") {
|
||||
assert.sameValue(new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: false }).resolvedOptions().hourCycle, hcDefault);
|
||||
|
||||
let hcHour12 = new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: true }).resolvedOptions().hourCycle;
|
||||
assert((hcHour12 === "h11" || hcHour12 === "h12"), "Expected `hourCycle` to be in ['h11', 'h12']");
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue