tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 7cb28b8b649f017af0da97a2cab2d7a585666e5f
parent 062c6c1503ec1c2e70e8cc6fde49f10142ba17da
Author: André Bargull <andre.bargull@gmail.com>
Date:   Tue, 25 Nov 2025 15:19:40 +0000

Bug 2000225 - Part 14: Update expected test results. r=spidermonkey-reviewers,dminor

Update results to match CLDR 48 resp. Unicode 17.0.

Differential Revision: https://phabricator.services.mozilla.com/D273823

Diffstat:
Mjs/src/tests/jstests.list | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mjs/src/tests/non262/Date/parse-dashed-numeric-date.js | 2+-
Mjs/src/tests/non262/Date/time-zones-historic.js | 16++++++++--------
Mjs/src/tests/non262/Date/time-zones.js | 4++--
Mjs/src/tests/non262/Intl/DateTimeFormat/dateTimeStyle-locale.js | 2+-
Mjs/src/tests/non262/Intl/DateTimeFormat/day-period-hour-cycle.js | 6+++---
Mjs/src/tests/non262/Intl/DateTimeFormat/era.js | 8++++----
Mjs/src/tests/non262/Intl/DateTimeFormat/formatRange-hour-cycle.js | 64++++++++++++++++++++++++++++++++--------------------------------
Mjs/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js | 4++--
Mjs/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZoneName.js | 20++++++++++----------
Mjs/src/tests/non262/Intl/DateTimeFormat/implied-script-has-consistent-output.js | 13++++++++-----
Mjs/src/tests/non262/Intl/DateTimeFormat/japanese-gannen-year.js | 6+++---
Mjs/src/tests/non262/Intl/DisplayNames/calendar.js | 6+++---
Mjs/src/tests/non262/Intl/DisplayNames/dayPeriod.js | 21+++++++++++++++++++--
Mjs/src/tests/non262/Intl/DurationFormat/basic.js | 2+-
Mjs/src/tests/non262/Temporal/Intl/consistent-dates.js | 19++++++++++++++++++-
16 files changed, 194 insertions(+), 78 deletions(-)

diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list @@ -810,6 +810,85 @@ skip script test262/intl402/Intl/supportedValuesOf/calendars-required-by-intl-er # https://github.com/tc39/test262/pull/4649 skip-if(!xulRuntime.shell) script test262/built-ins/Math/sumPrecise/throws-on-non-number.js +# Not yet updated for Unicode 17. +skip script test262/staging/sm/String/string-upper-lower-mapping.js + +# Not yet updated for Unicode 17. +# https://github.com/tc39/test262/pull/4572 +# https://github.com/tc39/test262/pull/4573 +skip script test262/built-ins/RegExp/property-escapes/generated/Cased.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js +skip script test262/built-ins/RegExp/property-escapes/generated/Extender.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js +skip script test262/built-ins/RegExp/property-escapes/generated/Alphabetic.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js +skip script test262/built-ins/RegExp/property-escapes/generated/XID_Start.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js +skip script test262/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js +skip script test262/built-ins/RegExp/property-escapes/generated/XID_Continue.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/Math.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js +skip script test262/built-ins/RegExp/property-escapes/generated/Lowercase.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js +skip script test262/built-ins/RegExp/property-escapes/generated/Ideographic.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js +skip script test262/built-ins/RegExp/property-escapes/generated/Emoji.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nandinagari.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js +skip script test262/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js +skip script test262/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js +skip script test262/built-ins/RegExp/property-escapes/generated/Uppercase.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Han.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js +skip script test262/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Common.js +skip script test262/built-ins/RegExp/property-escapes/generated/ID_Continue.js +skip script test262/built-ins/RegExp/property-escapes/generated/ID_Start.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js +skip script test262/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js +skip script test262/built-ins/RegExp/property-escapes/generated/Assigned.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js +skip script test262/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js +skip script test262/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js +skip script test262/built-ins/RegExp/property-escapes/generated/Diacritic.js +skip script test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js +skip script test262/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js + +# https://github.com/tc39/test262/pull/4659 +skip script test262/staging/Intl402/Temporal/old/indian-calendar.js + ############################################## # Enable Iterator Helpers tests in the shell # diff --git a/js/src/tests/non262/Date/parse-dashed-numeric-date.js b/js/src/tests/non262/Date/parse-dashed-numeric-date.js @@ -4,7 +4,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -inTimeZone("MST", () => { +inTimeZone("America/Phoenix", () => { // The upper limit is from the TimeClip algorithm: // https://tc39.es/ecma262/#sec-timeclip // https://tc39.es/ecma262/#sec-utc-t diff --git a/js/src/tests/non262/Date/time-zones-historic.js b/js/src/tests/non262/Date/time-zones-historic.js @@ -16,17 +16,17 @@ inTimeZone("Europe/London", () => { // bug 637244 inTimeZone("Asia/Novosibirsk", () => { let dt1 = new Date("1942-03-01T00:00:00"); - assertDateTime(dt1, "Sun Mar 01 1942 00:00:00 GMT+0700 (Novosibirsk Standard Time)"); + assertDateTime(dt1, "Sun Mar 01 1942 00:00:00 GMT+0700 (Krasnoyarsk Standard Time)"); dt1.setMonth(Month.April); - assertDateTime(dt1, "Wed Apr 01 1942 00:00:00 GMT+0700 (Novosibirsk Standard Time)"); + assertDateTime(dt1, "Wed Apr 01 1942 00:00:00 GMT+0700 (Krasnoyarsk Standard Time)"); let dt2 = new Date(2010, Month.October, 31); - assertDateTime(dt2, "Sun Oct 31 2010 00:00:00 GMT+0700 (Novosibirsk Summer Time)"); + assertDateTime(dt2, "Sun Oct 31 2010 00:00:00 GMT+0700 (Krasnoyarsk Summer Time)"); dt2.setMonth(Month.November); - assertDateTime(dt2, "Wed Dec 01 2010 00:00:00 GMT+0600 (Novosibirsk Standard Time)"); + assertDateTime(dt2, "Wed Dec 01 2010 00:00:00 GMT+0600 (Krasnoyarsk Standard Time)"); let dt3 = new Date(1942, Month.April, 1); - assertDateTime(dt3, "Wed Apr 01 1942 00:00:00 GMT+0700 (Novosibirsk Standard Time)"); + assertDateTime(dt3, "Wed Apr 01 1942 00:00:00 GMT+0700 (Krasnoyarsk Standard Time)"); function getNumberOfDaysInMonth(year, month) { switch (month) { @@ -62,10 +62,10 @@ inTimeZone("Asia/Novosibirsk", () => { } let dt4 = new Date(1984, Month.April, 1); - assertDateTime(dt4, "Sun Apr 01 1984 01:00:00 GMT+0800 (Novosibirsk Summer Time)"); + assertDateTime(dt4, "Sun Apr 01 1984 01:00:00 GMT+0800 (Krasnoyarsk Summer Time)"); let dt5 = new Date(1984, Month.March, 1); - assertDateTime(dt5, "Thu Mar 01 1984 00:00:00 GMT+0700 (Novosibirsk Standard Time)"); + assertDateTime(dt5, "Thu Mar 01 1984 00:00:00 GMT+0700 (Krasnoyarsk Standard Time)"); let dt6 = new Date(1984, Month.April, 1); assertEq(dt6.toUTCString(), "Sat, 31 Mar 1984 17:00:00 GMT"); @@ -363,7 +363,7 @@ inTimeZone("Asia/Ho_Chi_Minh", () => { // bug 1300197 inTimeZone("Europe/Dublin", () => { let dt = new Date(1910, Month.January, 1); - assertDateTime(dt, "Sat Jan 01 1910 00:00:00 GMT-0025 (Greenwich Mean Time)"); + assertDateTime(dt, "Sat Jan 01 1910 00:00:00 GMT-0025 (GMT+00:00)"); }); // bug 1304774 diff --git a/js/src/tests/non262/Date/time-zones.js b/js/src/tests/non262/Date/time-zones.js @@ -45,10 +45,10 @@ inTimeZone("Europe/Helsinki", () => { // bug 637244 inTimeZone("Asia/Novosibirsk", () => { let dt1 = new Date(1984, Month.April, 1, -1); - assertDateTime(dt1, "Sat Mar 31 1984 23:00:00 GMT+0700 (NOVT)", "+07", "Novosibirsk Standard Time"); + assertDateTime(dt1, "Sat Mar 31 1984 23:00:00 GMT+0700 (Krasnoyarsk Standard Time)", "+07", "Novosibirsk Standard Time"); let dt2 = new Date(1984, Month.April, 1); - assertDateTime(dt2, "Sun Apr 01 1984 01:00:00 GMT+0800 (NOVST)", "+08", "Novosibirsk Summer Time"); + assertDateTime(dt2, "Sun Apr 01 1984 01:00:00 GMT+0800 (Krasnoyarsk Summer Time)", "+08", "Novosibirsk Summer Time"); }); // bug 718175 diff --git a/js/src/tests/non262/Intl/DateTimeFormat/dateTimeStyle-locale.js b/js/src/tests/non262/Intl/DateTimeFormat/dateTimeStyle-locale.js @@ -84,7 +84,7 @@ const timeStyles = { short: "12:30", }, ja: { - full: "12時30分45秒 アメリカ太平洋標準時", + full: "12時30分45秒 米国太平洋標準時", long: "12:30:45 GMT-8", medium: "12:30:45", short: "12:30", diff --git a/js/src/tests/non262/Intl/DateTimeFormat/day-period-hour-cycle.js b/js/src/tests/non262/Intl/DateTimeFormat/day-period-hour-cycle.js @@ -21,7 +21,7 @@ const tests = [ options: { dayPeriod: "short", hour: "numeric", hour12: true }, locales: { en: [Hour("12"), Literal(" "), DayPeriod("noon")], - de: [Hour("12"), Literal(" "), DayPeriod("mittags")], + de: [Hour("12"), Literal(" Uhr "), DayPeriod("mittags")], }, }, { @@ -37,7 +37,7 @@ const tests = [ options: { dayPeriod: "short", hour: "numeric", hourCycle: "h12" }, locales: { en: [Hour("12"), Literal(" "), DayPeriod("noon")], - de: [Hour("12"), Literal(" "), DayPeriod("mittags")], + de: [Hour("12"), Literal(" Uhr "), DayPeriod("mittags")], }, }, { @@ -45,7 +45,7 @@ const tests = [ options: { dayPeriod: "short", hour: "numeric", hourCycle: "h11" }, locales: { en: [Hour("0"), Literal(" "), DayPeriod("noon")], - de: [Hour("0"), Literal(" "), DayPeriod("mittags")], + de: [Hour("0"), Literal(" Uhr "), DayPeriod("mittags")], }, }, { diff --git a/js/src/tests/non262/Intl/DateTimeFormat/era.js b/js/src/tests/non262/Intl/DateTimeFormat/era.js @@ -43,13 +43,13 @@ const tests = { { date: new Date("1970-01-01T00:00:00.000Z"), parts: [ - Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1970"), Literal(" "), Era("AD") + Day("01"), Literal("/"), Month("01"), Literal("/"), Year("1970"), Literal(" "), Era("AD") ], }, { date: new Date("-001970-01-01T00:00:00.000Z"), parts: [ - Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1971"), Literal(" "), Era("BC") + Day("01"), Literal("/"), Month("01"), Literal("/"), Year("1971"), Literal(" "), Era("BC") ], }, ], @@ -193,13 +193,13 @@ const tests = { { date: new Date("1970-01-01T00:00:00.000Z"), parts: [ - Era("公元"), Literal(" "), Year("1970"), Literal("-"), Month("01"), Literal("-"), Day("01") + Era("公元"), Year("1970"), Literal("-"), Month("01"), Literal("-"), Day("01") ], }, { date: new Date("-001970-01-01T00:00:00.000Z"), parts: [ - Era("公元前"), Literal(" "), Year("1971"), Literal("-"), Month("01"), Literal("-"), Day("01") + Era("公元前"), Year("1971"), Literal("-"), Month("01"), Literal("-"), Day("01") ], }, ], diff --git a/js/src/tests/non262/Intl/DateTimeFormat/formatRange-hour-cycle.js b/js/src/tests/non262/Intl/DateTimeFormat/formatRange-hour-cycle.js @@ -217,8 +217,8 @@ let tests = { end: 10, data: [ "00–10 Uhr", - "0 – 10 Uhr AM", - "12 – 10 Uhr AM", + "0 – 10 AM", + "12 – 10 AM", "00–10 Uhr", "24–10 Uhr", ], @@ -229,8 +229,8 @@ let tests = { end: 12, data: [ "00–12 Uhr", - "0 Uhr AM – 0 Uhr PM", - "12 Uhr AM – 12 Uhr PM", + "0 AM – 0 PM", + "12 AM – 12 PM", "00–12 Uhr", "24–12 Uhr", ], @@ -241,8 +241,8 @@ let tests = { end: 22, data: [ "00–22 Uhr", - "0 Uhr AM – 10 Uhr PM", - "12 Uhr AM – 10 Uhr PM", + "0 AM – 10 PM", + "12 AM – 10 PM", "00–22 Uhr", "24–22 Uhr", ], @@ -253,8 +253,8 @@ let tests = { end: 24, data: [ "1.1.1970, 00 Uhr – 2.1.1970, 00 Uhr", - "1.1.1970, 0 Uhr AM – 2.1.1970, 0 Uhr AM", - "1.1.1970, 12 Uhr AM – 2.1.1970, 12 Uhr AM", + "1.1.1970, 0 AM – 2.1.1970, 0 AM", + "1.1.1970, 12 AM – 2.1.1970, 12 AM", "1.1.1970, 00 Uhr – 2.1.1970, 00 Uhr", "1.1.1970, 24 Uhr – 2.1.1970, 24 Uhr", ], @@ -266,8 +266,8 @@ let tests = { end: 10, data: [ "01–10 Uhr", - "1 – 10 Uhr AM", - "1 – 10 Uhr AM", + "1 – 10 AM", + "1 – 10 AM", "01–10 Uhr", "01–10 Uhr", ], @@ -278,8 +278,8 @@ let tests = { end: 12, data: [ "01–12 Uhr", - "1 Uhr AM – 0 Uhr PM", - "1 Uhr AM – 12 Uhr PM", + "1 AM – 0 PM", + "1 AM – 12 PM", "01–12 Uhr", "01–12 Uhr", ], @@ -290,8 +290,8 @@ let tests = { end: 22, data: [ "01–22 Uhr", - "1 Uhr AM – 10 Uhr PM", - "1 Uhr AM – 10 Uhr PM", + "1 AM – 10 PM", + "1 AM – 10 PM", "01–22 Uhr", "01–22 Uhr", ], @@ -302,8 +302,8 @@ let tests = { end: 24, data: [ "1.1.1970, 01 Uhr – 2.1.1970, 00 Uhr", - "1.1.1970, 1 Uhr AM – 2.1.1970, 0 Uhr AM", - "1.1.1970, 1 Uhr AM – 2.1.1970, 12 Uhr AM", + "1.1.1970, 1 AM – 2.1.1970, 0 AM", + "1.1.1970, 1 AM – 2.1.1970, 12 AM", "1.1.1970, 01 Uhr – 2.1.1970, 00 Uhr", "1.1.1970, 01 Uhr – 2.1.1970, 24 Uhr", ], @@ -315,8 +315,8 @@ let tests = { end: 24 + 1, data: [ "1.1.1970, 12 Uhr – 2.1.1970, 01 Uhr", - "1.1.1970, 0 Uhr PM – 2.1.1970, 1 Uhr AM", - "1.1.1970, 12 Uhr PM – 2.1.1970, 1 Uhr AM", + "1.1.1970, 0 PM – 2.1.1970, 1 AM", + "1.1.1970, 12 PM – 2.1.1970, 1 AM", "1.1.1970, 12 Uhr – 2.1.1970, 01 Uhr", "1.1.1970, 12 Uhr – 2.1.1970, 01 Uhr", ], @@ -327,8 +327,8 @@ let tests = { end: 24 + 12, data: [ "1.1.1970, 12 Uhr – 2.1.1970, 12 Uhr", - "1.1.1970, 0 Uhr PM – 2.1.1970, 0 Uhr PM", - "1.1.1970, 12 Uhr PM – 2.1.1970, 12 Uhr PM", + "1.1.1970, 0 PM – 2.1.1970, 0 PM", + "1.1.1970, 12 PM – 2.1.1970, 12 PM", "1.1.1970, 12 Uhr – 2.1.1970, 12 Uhr", "1.1.1970, 12 Uhr – 2.1.1970, 12 Uhr", ], @@ -339,8 +339,8 @@ let tests = { end: 22, data: [ "12–22 Uhr", - "0 – 10 Uhr PM", - "12 – 10 Uhr PM", + "0 – 10 PM", + "12 – 10 PM", "12–22 Uhr", "12–22 Uhr", ], @@ -351,8 +351,8 @@ let tests = { end: 24, data: [ "1.1.1970, 12 Uhr – 2.1.1970, 00 Uhr", - "1.1.1970, 0 Uhr PM – 2.1.1970, 0 Uhr AM", - "1.1.1970, 12 Uhr PM – 2.1.1970, 12 Uhr AM", + "1.1.1970, 0 PM – 2.1.1970, 0 AM", + "1.1.1970, 12 PM – 2.1.1970, 12 AM", "1.1.1970, 12 Uhr – 2.1.1970, 00 Uhr", "1.1.1970, 12 Uhr – 2.1.1970, 24 Uhr", ], @@ -364,8 +364,8 @@ let tests = { end: 24 + 1, data: [ "1.1.1970, 22 Uhr – 2.1.1970, 01 Uhr", - "1.1.1970, 10 Uhr PM – 2.1.1970, 1 Uhr AM", - "1.1.1970, 10 Uhr PM – 2.1.1970, 1 Uhr AM", + "1.1.1970, 10 PM – 2.1.1970, 1 AM", + "1.1.1970, 10 PM – 2.1.1970, 1 AM", "1.1.1970, 22 Uhr – 2.1.1970, 01 Uhr", "1.1.1970, 22 Uhr – 2.1.1970, 01 Uhr", ], @@ -376,8 +376,8 @@ let tests = { end: 24 + 12, data: [ "1.1.1970, 22 Uhr – 2.1.1970, 12 Uhr", - "1.1.1970, 10 Uhr PM – 2.1.1970, 0 Uhr PM", - "1.1.1970, 10 Uhr PM – 2.1.1970, 12 Uhr PM", + "1.1.1970, 10 PM – 2.1.1970, 0 PM", + "1.1.1970, 10 PM – 2.1.1970, 12 PM", "1.1.1970, 22 Uhr – 2.1.1970, 12 Uhr", "1.1.1970, 22 Uhr – 2.1.1970, 12 Uhr", ], @@ -388,8 +388,8 @@ let tests = { end: 23, data: [ "22–23 Uhr", - "10 – 11 Uhr PM", - "10 – 11 Uhr PM", + "10 – 11 PM", + "10 – 11 PM", "22–23 Uhr", "22–23 Uhr", ], @@ -400,8 +400,8 @@ let tests = { end: 24, data: [ "1.1.1970, 22 Uhr – 2.1.1970, 00 Uhr", - "1.1.1970, 10 Uhr PM – 2.1.1970, 0 Uhr AM", - "1.1.1970, 10 Uhr PM – 2.1.1970, 12 Uhr AM", + "1.1.1970, 10 PM – 2.1.1970, 0 AM", + "1.1.1970, 10 PM – 2.1.1970, 12 AM", "1.1.1970, 22 Uhr – 2.1.1970, 00 Uhr", "1.1.1970, 22 Uhr – 2.1.1970, 24 Uhr", ], diff --git a/js/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js b/js/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZone-offset.js @@ -21,10 +21,10 @@ const tests = { options: {hour: "numeric", minute: "numeric", hour12: false}, timeZoneNames: { short: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT")], - shortOffset: "short", + shortOffset: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT+0")], shortGeneric: "short", long: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("Greenwich Mean Time")], - longOffset: "short", + longOffset: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT+00:00")], longGeneric: "long", }, }, diff --git a/js/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZoneName.js b/js/src/tests/non262/Intl/DateTimeFormat/formatRange-timeZoneName.js @@ -24,11 +24,11 @@ const tests = { options: {hour: "numeric", minute: "numeric", hour12: false}, timeZoneNames: { short: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("UTC")], - shortOffset: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT")], + shortOffset: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT+0")], shortGeneric: "shortOffset", long: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("Coordinated Universal Time")], - longOffset: "shortOffset", - longGeneric: "shortOffset", + longOffset: [Hour("00"), Literal(":"), Minute("00"), Literal(" – "), Hour("00"), Literal(":"), Minute("02"), Literal(" "), TimeZoneName("GMT+00:00")], + longGeneric: "longOffset", }, }, { @@ -54,11 +54,11 @@ const tests = { options: {hour: "numeric", hour12: false}, timeZoneNames: { short: [Hour("00"), Literal(" – "), Hour("02"), Literal(" "), TimeZoneName("UTC")], - shortOffset: "short", - shortGeneric: "short", + shortOffset: [Hour("00"), Literal(" – "), Hour("02"), Literal(" "), TimeZoneName("UTC+0")], + shortGeneric: "shortOffset", long: [Hour("00"), Literal(" – "), Hour("02"), Literal(" "), TimeZoneName("temps universel coordonné")], - longOffset: "short", - longGeneric: "short", + longOffset: [Hour("00"), Literal(" – "), Hour("02"), Literal(" "), TimeZoneName("UTC+00:00")], + longGeneric: "longOffset", }, }, { @@ -84,11 +84,11 @@ const tests = { options: {hour: "numeric", hour12: false}, timeZoneNames: { short: [Hour("00"), Literal("–"), Hour("02"), Literal(" Uhr "), TimeZoneName("UTC")], - shortOffset: [Hour("00"), Literal("–"), Hour("02"), Literal(" Uhr "), TimeZoneName("GMT")], + shortOffset: [Hour("00"), Literal("–"), Hour("02"), Literal(" Uhr "), TimeZoneName("GMT+0")], shortGeneric: "shortOffset", long: [Hour("00"), Literal("–"), Hour("02"), Literal(" Uhr "), TimeZoneName("Koordinierte Weltzeit")], - longOffset: "shortOffset", - longGeneric: "shortOffset", + longOffset: [Hour("00"), Literal("–"), Hour("02"), Literal(" Uhr "), TimeZoneName("GMT+00:00")], + longGeneric: "longOffset", }, }, { diff --git a/js/src/tests/non262/Intl/DateTimeFormat/implied-script-has-consistent-output.js b/js/src/tests/non262/Intl/DateTimeFormat/implied-script-has-consistent-output.js @@ -30,11 +30,14 @@ available.map(x => { // Find all locales which have both a script and a region subtag. return loc.script && loc.region; }).filter(loc => { - // Skip "sd-Deva-IN" and Fulah because of <https://unicode-org.atlassian.net/browse/ICU-21974>. - return !((loc.language === "sd" && loc.script === "Deva" && loc.region === "IN") || - (loc.language === "ff" && (loc.script === "Adlm" || loc.script === "Latn") && - (loc.region === "GH" || loc.region === "GM" || loc.region === "LR" || loc.region === "SL")) - ); + // Skip "ku-Latn-IQ" because "ku-Arab" isn't exported from CLDR to ICU and the + // implied script of "ku-IQ" is "ku-Arab-IQ". + // This can result in hour cycle differences, see also + // <https://unicode-org.atlassian.net/browse/CLDR-19048>. + if (loc.language === "ku" && loc.script === "Latn" && loc.region === "IQ") { + return false; + } + return true; }).forEach(loc => { // Remove the script subtag from the locale. let noScript = new Intl.Locale(`${loc.language}-${loc.region}`); diff --git a/js/src/tests/non262/Intl/DateTimeFormat/japanese-gannen-year.js b/js/src/tests/non262/Intl/DateTimeFormat/japanese-gannen-year.js @@ -30,7 +30,7 @@ var parts = dtf.formatToParts(startHeisei); assertEq(parts.filter(p => p.type === "era")[0].value, "平成"); assertEq(parts.filter(p => p.type === "year")[0].value, "元"); -// ICU returns mixed numbers when an explicit numbering system is present. +// ICU<78 returned mixed numbers when an explicit numbering system is present. var dtf = new Intl.DateTimeFormat("ja-u-ca-japanese-nu-arab", { era: "short", @@ -47,8 +47,8 @@ var dtf = new Intl.DateTimeFormat("ja-u-ca-japanese-nu-arab", { timeZone: "Asia/Tokyo", }); -assertEq(dtf.format(endShowa), "昭和64年١月"); -assertEq(dtf.format(startHeisei), "平成元年١月"); +assertEq(dtf.format(endShowa), "昭和٦٤/١"); +assertEq(dtf.format(startHeisei), "平成١/١"); if (typeof reportCompare === "function") reportCompare(0, 0); diff --git a/js/src/tests/non262/Intl/DisplayNames/calendar.js b/js/src/tests/non262/Intl/DisplayNames/calendar.js @@ -4,7 +4,7 @@ const tests = { "en": { long: { "gregory": "Gregorian Calendar", - "iso8601": "ISO-8601 Calendar", + "iso8601": "Gregorian Calendar (ISO 8601 Weeks)", "japanese": "Japanese Calendar", "islamic-civil": "Hijri Calendar (tabular, civil epoch)", "islamicc": "Hijri Calendar (tabular, civil epoch)", @@ -19,8 +19,8 @@ const tests = { "gregory": "Gregorianischer Kalender", "iso8601": "ISO-8601-Kalender", "japanese": "Japanischer Kalender", - "islamic-civil": "Bürgerlicher Hidschri-Kalender (tabellarisch)", - "islamicc": "Bürgerlicher Hidschri-Kalender (tabellarisch)", + "islamic-civil": "Hidschra-Kalender (tabellarisch, nicht-astronomisch)", + "islamicc": "Hidschra-Kalender (tabellarisch, nicht-astronomisch)", "ethioaa": "Äthiopischer Amätä-Aläm-Kalender", "ethiopic-amete-alem": "Äthiopischer Amätä-Aläm-Kalender", }, diff --git a/js/src/tests/non262/Intl/DisplayNames/dayPeriod.js b/js/src/tests/non262/Intl/DisplayNames/dayPeriod.js @@ -8,8 +8,14 @@ const tests = { "am": "AM", "pm": "PM", }, - short: {}, - narrow: {}, + short: { + "am": "AM", + "pm": "PM", + }, + narrow: { + "am": "a", + "pm": "p", + }, }, "de": { long: { @@ -27,6 +33,17 @@ const tests = { short: {}, narrow: {}, }, + "es": { + long: { + "am": "a.\xA0m.", + "pm": "p.\xA0m.", + }, + short: { + "am": "a.\u202Fm.", + "pm": "p.\u202Fm.", + }, + narrow: {}, + }, "zh": { long: { "am": "上午", diff --git a/js/src/tests/non262/Intl/DurationFormat/basic.js b/js/src/tests/non262/Intl/DurationFormat/basic.js @@ -195,7 +195,7 @@ const tests = { { duration: {hours: 1, minutes: 2}, expected: [ - ...Hour(Integer("1"), Literal(" "), Unit("Std.")), + ...Hour(Integer("1"), Unit("h")), Literal(", "), ...Minute(Integer("2"), Literal(" "), Unit("Min.")), ], diff --git a/js/src/tests/non262/Temporal/Intl/consistent-dates.js b/js/src/tests/non262/Temporal/Intl/consistent-dates.js @@ -13,6 +13,21 @@ const weekdays = [ "Sunday", ]; +const months = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", +]; + // Map Hebrew months to their corresponding month code. const hebrewMonths = { "Tishri": "M01", @@ -51,7 +66,9 @@ function dateFromParts(parts) { relatedYear = Number(value); break; case "month": { - if (value in hebrewMonths) { + if (months.includes(value)) { + monthCode = "M" + String(months.indexOf(value) + 1).padStart(2, "0"); + } else if (value in hebrewMonths) { monthCode = hebrewMonths[value]; } else { // Chinese/Dangi leap months end with "bis", from Latin "bis" = "twice".