Repository navigation
test262 intl402/DateTimeFormat — 78 fails (formatRange + option validation) #5582
Copy link
Copy link
Closed
Labels
parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystemCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
Description
Current state — 78 failing. Snapshot from the 2026-06-29 full sweep (perry 0.5.1208, node v26.3.0). Supersedes the original body; the complete current failing-test list is inline below — no re-run needed to start.
Intl.DateTimeFormat: remaining option-validation negatives (invalid dateStyle/calendar/offset must throw RangeError) and formatRange/formatRangeToParts edge cases.
Failure reasons
| n | reason |
|---|---|
| 4 | Uncaught exception: no overlap between dateStyle and PlainTime Expecte |
| 4 | Uncaught exception: relatedYear component of 2000-01-01T00:00Z formatt |
| 3 | Perry ran clean; Node rejected (missed negative) |
| 3 | Uncaught exception: Actual [12/12/2017, 12/12/2017, 12/12/2017, 12/12/ |
| 3 | Uncaught exception: timeStyle=full Expected a TypeError to be thrown b |
| 3 | ReferenceError: i is not defined |
| 3 | Uncaught exception: Expected SameValue(«false», «true») to be true |
| 3 | TypeError: Cannot read properties of undefined (reading 'value') |
| 3 | Uncaught exception: length should be 1, dayPeriod-only formatting for |
| 2 | TypeError: Cannot convert undefined or null to object |
| 2 | Uncaught exception: formatting a PlainTime should work |
| 2 | Uncaught exception: Expected a RangeError to be thrown but no exceptio |
All 78 failing tests (path — reason)
full list — click to expand
intl402/DateTimeFormat/constructor-options-calendar-future-fallback.js Uncaught exception: bangla should fall back to an available calendar
intl402/DateTimeFormat/constructor-options-order.js (no output)
intl402/DateTimeFormat/date-time-options.js TypeError: Cannot convert object to primitive value
intl402/DateTimeFormat/ignore-invalid-unicode-ext-values.js Uncaught exception: Locale ja-JP-u-cu-usd is affected by key cu; value USD. Expected SameV
intl402/DateTimeFormat/intl-legacy-constructed-symbol-on-unwrap.js TypeError: Function.prototype.call was called on a value that is not a function
intl402/DateTimeFormat/intl-legacy-constructed-symbol-property.js Uncaught exception: return value of Intl.DateTimeFormat constructor Expected SameValue(«[o
intl402/DateTimeFormat/intl-legacy-constructed-symbol.js Uncaught exception: Expected true but got false
intl402/DateTimeFormat/offset-timezone-no-unicode-minus-sign.js Perry ran clean; Node rejected (missed negative)
intl402/DateTimeFormat/prototype/format/dayPeriod-long-en.js Uncaught exception: Actual [12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12
intl402/DateTimeFormat/prototype/format/dayPeriod-narrow-en.js Uncaught exception: Actual [12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12
intl402/DateTimeFormat/prototype/format/dayPeriod-short-en.js Uncaught exception: Actual [12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12/12/2017, 12
intl402/DateTimeFormat/prototype/format/format-function-name.js Uncaught exception: name descriptor value should be ; name value should be
intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js Uncaught exception: no fractionalSecondDigits Expected SameValue(«"1:02:03 AM"», «"02:03"»
intl402/DateTimeFormat/prototype/format/length.js TypeError: Cannot convert undefined or null to object
intl402/DateTimeFormat/prototype/format/name.js TypeError: Cannot convert undefined or null to object
intl402/DateTimeFormat/prototype/format/no-instanceof.js Uncaught exception: Expected a TypeError to be thrown but no exception was thrown at all
intl402/DateTimeFormat/prototype/format/numbering-system.js Uncaught exception: en-US: display with fractionalSecondDigits Expected SameValue(«false»,
intl402/DateTimeFormat/prototype/format/proleptic-gregorian-calendar.js Uncaught exception: Formatted year doesn't contain expected year – expected 1,970, got 1/1
intl402/DateTimeFormat/prototype/format/prop-desc.js Uncaught exception: Expected SameValue(«"undefined"», «"function"») to be true
intl402/DateTimeFormat/prototype/format/temporal-objects-format-with-era.js Uncaught exception: formatting a PlainTime should work
intl402/DateTimeFormat/prototype/format/temporal-objects-no-time-clip-non-latin-numerals.js Uncaught exception: max date should include day 13 in Arabic-Indic digits, got: 9/13/27576
intl402/DateTimeFormat/prototype/format/temporal-objects-no-time-clip-weekday.js Uncaught exception: min date formatted with weekday should include a weekday name, got: Ap
intl402/DateTimeFormat/prototype/format/temporal-objects-not-overlapping-options.js Uncaught exception: no overlap between dateStyle and PlainTime Expected a TypeError to be
intl402/DateTimeFormat/prototype/format/temporal-objects-resolved-time-zone.js Uncaught exception: plain datetime close to beginning of day Expected SameValue(«"8/4/2021
intl402/DateTimeFormat/prototype/format/temporal-plaindate-formatting-datetime-style.js Uncaught exception: timeStyle=full Expected a TypeError to be thrown but no exception was
intl402/DateTimeFormat/prototype/format/temporal-plainmonthday-formatting-datetime-style.js Uncaught exception: timeStyle=full Expected a TypeError to be thrown but no exception was
intl402/DateTimeFormat/prototype/format/temporal-plaintime-formatting-datetime-style.js Uncaught exception: dateStyle=full Expected a TypeError to be thrown but no exception was
intl402/DateTimeFormat/prototype/format/temporal-plainyearmonth-formatting-datetime-style.js Uncaught exception: timeStyle=full Expected a TypeError to be thrown but no exception was
intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js Uncaught exception: same output with date options Expected SameValue(«"8/10/2019"», «"Aug
intl402/DateTimeFormat/prototype/formatRange/en-US.js Uncaught exception: Expected SameValue(«"1/3/2019"», «"Jan 3, 2019"») to be true
intl402/DateTimeFormat/prototype/formatRange/fractionalSecondDigits.js Uncaught exception: no fractionalSecondDigits Expected SameValue(«"8/10/2019 – 8/10/2019"»
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-format-with-era.js Uncaught exception: formatting a PlainTime should work
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-ignore-timezone.js Uncaught exception: hour is calculated correctly with the America/Los_Angeles timezone
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-no-time-clip-weekday.js Uncaught exception: formatRange with extreme dates should include weekday names, got: 4/19
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-not-overlapping-options.js Uncaught exception: no overlap between dateStyle and PlainTime Expected a TypeError to be
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-resolved-time-zone.js Uncaught exception: plain datetimes Expected SameValue(«"8/4/2021 – 8/4/2021"», «"8/4/2021
intl402/DateTimeFormat/prototype/formatRange/temporal-objects-throws-with-different-calendars.js Uncaught exception: Expected a RangeError to be thrown but no exception was thrown at all
intl402/DateTimeFormat/prototype/formatRange/to-datetime-formattable-with-different-arg-kinds.js Uncaught exception: Expected SameValue(«0», «1») to be true
intl402/DateTimeFormat/prototype/formatRangeToParts/argument-to-integer.js ReferenceError: i is not defined
intl402/DateTimeFormat/prototype/formatRangeToParts/chinese-calendar-dates.js Uncaught exception: relatedYear component of 2000-01-01T00:00Z formatted in chinese is mis
intl402/DateTimeFormat/prototype/formatRangeToParts/dangi-calendar-dates.js Uncaught exception: relatedYear component of 2000-01-01T00:00Z formatted in dangi is missi
intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js ReferenceError: i is not defined
intl402/DateTimeFormat/prototype/formatRangeToParts/en-US.js ReferenceError: i is not defined
intl402/DateTimeFormat/prototype/formatRangeToParts/fractionalSecondDigits.js Uncaught exception: Expected SameValue(«11», «3») to be true
intl402/DateTimeFormat/prototype/formatRangeToParts/pattern-on-calendar.js Uncaught exception: Expected SameValue(«false», «true») to be true
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-format-with-era.js Uncaught exception: formatting a PlainDate should work
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-ignore-timezone.js TypeError: Cannot read properties of undefined (reading 'value')
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-no-time-clip-weekday.js Uncaught exception: formatRangeToParts should include weekday parts
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-not-overlapping-options.js Uncaught exception: no overlap between dateStyle and PlainTime Expected a TypeError to be
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-resolved-time-zone.js Uncaught exception: Expected [Object {type: "month", value: "8", source: "startRange"}, Ob
intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-throws-with-different-calendars.js Uncaught exception: Expected a RangeError to be thrown but no exception was thrown at all
intl402/DateTimeFormat/prototype/formatRangeToParts/to-datetime-formattable-with-different-arg-kinds.js Uncaught exception: Expected SameValue(«0», «1») to be true
intl402/DateTimeFormat/prototype/formatToParts/chinese-calendar-dates.js Uncaught exception: relatedYear component of 2000-01-01T00:00Z formatted in chinese is mis
intl402/DateTimeFormat/prototype/formatToParts/compare-to-temporal-lunisolar.js Uncaught exception: date = 2049-03-03[u-ca=chinese], monthCode Expected SameValue(«"M03"»,
intl402/DateTimeFormat/prototype/formatToParts/compare-to-temporal.js Uncaught exception: date = 2050-01-31[u-ca=buddhist], year Expected SameValue(«2050», «259
intl402/DateTimeFormat/prototype/formatToParts/dangi-calendar-dates.js Uncaught exception: relatedYear component of 2000-01-01T00:00Z formatted in dangi is missi
intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-long-en.js Uncaught exception: length should be 1, dayPeriod-only formatting for Tue Dec 12 2017 00:0
intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-narrow-en.js Uncaught exception: length should be 1, dayPeriod-only formatting for Tue Dec 12 2017 00:0
intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-short-en.js Uncaught exception: length should be 1, dayPeriod-only formatting for Tue Dec 12 2017 00:0
intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js Uncaught exception: length should be 3, no fractionalSecondDigits round down Expected Same
intl402/DateTimeFormat/prototype/formatToParts/lunisolar-leap-months.js Uncaught exception: chinese calendar date should have year part Expected SameValue(«undefi
intl402/DateTimeFormat/prototype/formatToParts/offset-timezone-correct.js TypeError: Cannot read properties of undefined (reading 'value')
intl402/DateTimeFormat/prototype/formatToParts/pattern-on-calendar.js Uncaught exception: Expected SameValue(«false», «true») to be true
intl402/DateTimeFormat/prototype/formatToParts/related-year-zh.js Uncaught exception: actual[0].type should be relatedYear Expected SameValue(«"month"», «"r
intl402/DateTimeFormat/prototype/formatToParts/related-year.js Uncaught exception: Expected SameValue(«false», «true») to be true
intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-format-with-era.js Uncaught exception: formatting a PlainDate should work
intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-ignore-timezone.js TypeError: Cannot read properties of undefined (reading 'value')
intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-no-time-clip-weekday.js Uncaught exception: formatToParts should include a weekday part Expected SameValue(«undefi
intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-not-overlapping-options.js Uncaught exception: no overlap between dateStyle and PlainTime Expected a TypeError to be
intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-resolved-time-zone.js Uncaught exception: Expected [Object {type: "month", value: "8"}, Object {type: "literal",
intl402/DateTimeFormat/prototype/resolvedOptions/calendar.js Uncaught exception: Resolved calendar Expected SameValue(«"ethiopic-amete-alem"», «"ethioa
intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js Perry ran clean; Node rejected (missed negative)
intl402/DateTimeFormat/prototype/resolvedOptions/resolved-calendar-unicode-extensions-and-options.js Uncaught exception: Resolved calendar for locale=en-u-ca-iso8601 with calendar=invalid Exp
intl402/DateTimeFormat/prototype/resolvedOptions/resolved-hour-cycle-unicode-extensions-and-options.js Uncaught exception: Resolved locale for locale=en-u-hc-h23 with hourCycle=h11 Expected Sam
intl402/DateTimeFormat/prototype/resolvedOptions/resolved-locale-with-hc-unicode.js Uncaught exception: hour12 and hourCycle options and hc Unicode extension value are presen
intl402/DateTimeFormat/prototype/resolvedOptions/resolved-numbering-system-unicode-extensions-and-options.js Uncaught exception: Resolved numberingSystem for locale=en-u-nu-arab with numberingSystem=
intl402/DateTimeFormat/subclassing.js TypeError: undefined is not a function
intl402/DateTimeFormat/timezone-legacy-non-iana.js Perry ran clean; Node rejected (missed negative)
Reproduce
scripts/test262_subset.py --root vendor/test262 --dir intl402/DateTimeFormat --jobs 6
Each path is under vendor/test262/test/; assemble harness + case per test-compat/test262/README.md to run one under perry compile.
Metadata
Metadata
Assignees
Labels
parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystemCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
Activity
fix(intl): #5582 DateTimeFormat formatRange/formatRangeToParts + opti…
fix(intl): #5582 DateTimeFormat formatRange/formatRangeToParts + opti…
fix(intl): #5582 DateTimeFormat formatRange/formatRangeToParts + opti…
fix(intl): #5582 DateTimeFormat formatRange/formatRangeToParts + opti…
ci: allowlist intl.rs in the file-size gate (#5344 Intl batch)
fix(intl): #5582 DateTimeFormat formatRange/formatRangeToParts + opti…
proggeramlug commentedon Jun 24, 2026
Update 2026-06-24: #5601 landed — DateTimeFormat 161 → 137 (formatRange/formatRangeToParts now present).
fix(intl): #5582 — DateTimeFormat option validation, resolvedOptions,…
fix(intl): #5582 — DateTimeFormat option validation, resolvedOptions,…
proggeramlug commentedon Jun 25, 2026
Re-measure 2026-06-25 (main @ 9a3d246): DateTimeFormat 137 → 106 (#5601/#5635 follow-through).
fix(runtime): #5582 — coerce `null` Intl option values per GetOption …
proggeramlug commentedon Jun 27, 2026
Re-measure 2026-06-27 (main @ 393af3c): DateTimeFormat 106 → 102.
[-]test262 intl402: DateTimeFormat (161) — formatRange/formatRangeToParts + option validation[/-][+]test262 intl402/DateTimeFormat — 102 fails (formatRange + option validation)[/+]fix(intl): #5581 — NumberFormat numbering systems, roundingIncrement,…
fix(intl): #5582 — Temporal-aware DateTimeFormat range + timeZoneName…
fix(intl): #5582 — Temporal-aware DateTimeFormat range + timeZoneName…
fix(intl): #5582 — emit timeZoneName part for Temporal.Instant in for…
[-]test262 intl402/DateTimeFormat — 102 fails (formatRange + option validation)[/-][+]test262 intl402/DateTimeFormat — 78 fails (formatRange + option validation)[/+]fix(intl): #5582 — Temporal/DTF overlap check + formatRange uses DTF …
chore: allowlist body_stmt.rs in file-size gate (18 lines over after #…
fix(intl): #5582 — add weekday and era fields to DTF format/formatToP…
fix(intl): #5582 — restore Symbol TypeError in coerce_option_string; …
fix(intl): #5582 — era/timeZoneName must not set DTF needDefaults fla…
proggeramlug commentedon Jul 1, 2026
Superseded by self-contained per-area worklist tickets — each has the complete current failing-test list inline (2026-07-01 sweep), so an agent can open one and work immediately (no history, no re-measure):
#5832 language/class · #5833 language-misc · #5834 built-ins-misc · #5835 intl-small · #5836 RegExp · #5837 NumberFormat · #5838 Array · #5839 Temporal · #5840 DateTimeFormat · #5841 eval-code · #5842 Object · #5843 String · #5844 Proxy · #5845 intl402-misc · #5846 Function · #5847 JSON · #5848 annexB-misc · #5849 Promise.