summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js')
-rw-r--r--js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js38
1 files changed, 23 insertions, 15 deletions
diff --git a/js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js b/js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js
index 9063e045a6..c2cccd826c 100644
--- a/js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js
+++ b/js/src/tests/test262/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js
@@ -21,27 +21,35 @@ info: |
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]
+locale: [en, fr, it, ja, zh, ko, ar, hi]
---*/
-let locales = ["en", "fr", "it", "ja", "ja-u-hc-h11", "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 === "h12") {
- assert.sameValue(new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: true }).resolvedOptions().hourCycle, hcDefault);
+for (let locale of locales) {
+ let hcDefault = new Intl.DateTimeFormat(locale, {hour: "numeric"}).resolvedOptions().hourCycle;
+ assert(
+ hcDefault === "h11" || hcDefault === "h12" || hcDefault === "h23" || hcDefault === "h24",
+ "hcDefault is one of [h11, h12, h23, h24]"
+ );
- // 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");
- }
+ let hour12 = new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: true}).resolvedOptions().hourCycle;
+ assert(hour12 === "h11" || hour12 === "h12", "hour12 is one of [h11, h12]");
+
+ let hour24 = new Intl.DateTimeFormat(locale, {hour: "numeric", hour12: false}).resolvedOptions().hourCycle;
+ assert(hour24 === "h23" || hour24 === "h24", "hour24 is one of [h23, h24]");
- // however, "h24" can be set via locale extension.
- if (hcDefault === "h23" || hcDefault === "h24") {
- assert.sameValue(new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: false }).resolvedOptions().hourCycle, hcDefault);
+ if (hcDefault === "h11" || hcDefault === "h12") {
+ assert.sameValue(hour12, hcDefault, "hour12 matches hcDefault");
+ } else {
+ assert.sameValue(hour24, hcDefault, "hour24 matches hcDefault");
}
- let hcHour12 = new Intl.DateTimeFormat(locale, { hour: "numeric", hour12: true }).resolvedOptions().hourCycle;
- assert(hcHour12 === "h11" || hcHour12 === "h12", "Expected `hourCycle`: " + hcHour12 + " to be in [\"h11\", \"h12\"]");
-});
+ // 24-hour clock uses the "h23" format in all locales.
+ assert.sameValue(hour24, "h23");
+
+ // 12-hour clock uses the "h12" format in all locales except "ja".
+ assert.sameValue(hour12, locale === "ja" ? "h11" : "h12");
+}
reportCompare(0, 0);