Repository navigation
test262 Temporal (built-ins + intl402) — 56 (self-contained worklist) #5839
Description
Self-contained worklist — 56 failing. Snapshot 2026-07-01 full sweep (perry 0.5.1209, node v26.3.0). Everything you need is in this issue; no history to read, no re-measure to start.
Temporal range/precision validation, Duration rounding (exact-multiple-of-larger-unit), and toLocaleString formatting. built-ins/Temporal is scored Perry-only (Node lacks Temporal). Crates: perry-stdlib (Temporal), perry-runtime.
Setup (any box)
git clone https://github.com/PerryTS/perry && cd perry
cargo build --release -p perry -p perry-runtime-static -p perry-stdlib-static
git clone --depth 1 https://github.com/tc39/test262 vendor/test262 # checkout test-compat/test262/pinned-sha.txt
# node on PATH (differential oracle). See test-compat/test262/README.md.Measure/verify: scripts/test262_subset.py --root vendor/test262 --dir built-ins/Temporal intl402/Temporal --jobs 8 (the .failures.txt sidecar lists failures; diff before/after for zero-regression).
Failure reasons
| n | reason |
|---|---|
| 6 | Uncaught exception: Duration.p.toString() should not us |
| 5 | RangeError: calendar mismatch: the value's calendar dif |
| 4 | Uncaught exception: P1M weeks..months ceil: weeks resul |
| 4 | Uncaught exception: output for hourCycle: h24 should in |
| 4 | Uncaught exception: Expected a TypeError to be thrown b |
| 3 | Uncaught exception: P7D days..weeks ceil: days result: |
| 2 | Uncaught exception: check expected value (µs) Expected |
| 2 | Uncaught exception: P1Y months..years ceil: months resu |
| 2 | Uncaught exception: default locale is determined by Int |
| 2 | Uncaught exception: de-AT locale has a 24-hour format |
| 2 | Uncaught exception: datetime.toLocaleString("en", { day |
| 2 | Uncaught exception: calendar mismatch even when instanc |
All 56 failing cases (path — reason)
built-ins/Temporal/Duration/prototype/round/exact-multiple-of-larger-unit-plaindate.js Uncaught exception: P31D weeks..months ceil: weeks result: Expected SameValue(«1
built-ins/Temporal/Duration/prototype/round/exact-multiple-of-larger-unit-zoned.js Uncaught exception: P7D days..weeks ceil: days result: Expected SameValue(«1», «
built-ins/Temporal/Duration/prototype/round/precision-exact-in-balance-time-duration.js Uncaught exception: check expected value (µs) Expected SameValue(«8.692288669465
built-ins/Temporal/Duration/prototype/total/precision-exact-mathematical-values-5.js Uncaught exception: check expected value (µs) Expected SameValue(«8.692288669465
built-ins/Temporal/Instant/prototype/since/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
built-ins/Temporal/Instant/prototype/until/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
built-ins/Temporal/PlainDate/prototype/since/exact-multiple-of-larger-unit.js Uncaught exception: P1M weeks..months ceil: weeks result: Expected SameValue(«1»
built-ins/Temporal/PlainDate/prototype/until/exact-multiple-of-larger-unit.js Uncaught exception: P1M weeks..months ceil: weeks result: Expected SameValue(«1»
built-ins/Temporal/PlainDateTime/prototype/since/exact-multiple-of-larger-unit.js Uncaught exception: P1M weeks..months ceil: weeks result: Expected SameValue(«1»
built-ins/Temporal/PlainDateTime/prototype/since/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
built-ins/Temporal/PlainDateTime/prototype/until/exact-multiple-of-larger-unit.js Uncaught exception: P1M weeks..months ceil: weeks result: Expected SameValue(«1»
built-ins/Temporal/PlainDateTime/prototype/until/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
built-ins/Temporal/PlainYearMonth/prototype/since/exact-multiple-of-larger-unit.js Uncaught exception: P1Y months..years ceil: months result: Expected SameValue(«2
built-ins/Temporal/PlainYearMonth/prototype/until/exact-multiple-of-larger-unit.js Uncaught exception: P1Y months..years ceil: months result: Expected SameValue(«2
built-ins/Temporal/ZonedDateTime/prototype/since/exact-multiple-of-larger-unit.js Uncaught exception: P7D days..weeks ceil: days result: Expected SameValue(«1», «
built-ins/Temporal/ZonedDateTime/prototype/since/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
built-ins/Temporal/ZonedDateTime/prototype/until/exact-multiple-of-larger-unit.js Uncaught exception: P7D days..weeks ceil: days result: Expected SameValue(«1», «
built-ins/Temporal/ZonedDateTime/prototype/until/float64-representable-integer.js Uncaught exception: Duration.p.toString() should not use more precise internal r
intl402/Temporal/Duration/prototype/toLocaleString/returns-same-results-as-DurationFormat.js Uncaught exception: locale="undefined", options="undefined", duration=""P1Y2M3W4
intl402/Temporal/Instant/prototype/toLocaleString/basic.js Uncaught exception: Expected SameValue(«"11/18/1976, 2:23:30 PM"», «"11/18/1976"
intl402/Temporal/Instant/prototype/toLocaleString/dateStyle-timeStyle-undefined.js Uncaught exception: dateStyle undefined is the same as being absent Expected Sam
intl402/Temporal/Instant/prototype/toLocaleString/dateStyle.js Uncaught exception: dateStyle: long writes month of Ramadan out in full
intl402/Temporal/Instant/prototype/toLocaleString/hourcycle.js Uncaught exception: output for hourCycle: h24 should include 24:00:00 Expected S
intl402/Temporal/Instant/prototype/toLocaleString/locales-undefined.js Uncaught exception: default locale is determined by Intl.DateTimeFormat Expected
intl402/Temporal/Instant/prototype/toLocaleString/option-timezonename-short.js Uncaught exception: expected "11/18/1976, 2:23:30 PM" to be shorter than "11/18/
intl402/Temporal/Instant/prototype/toLocaleString/options-conflict.js Uncaught exception: instant.toLocaleString("en", { dayPeriod: "short", dateStyl
intl402/Temporal/Instant/prototype/toLocaleString/options-undefined.js Uncaught exception: default locale is determined by Intl.DateTimeFormat Expected
intl402/Temporal/PlainDate/from/hebrew-keviah.js Uncaught exception: Expected SameValue(«false», «true») to be true
intl402/Temporal/PlainDate/prototype/toLocaleString/dateStyle.js RangeError: calendar mismatch: the value's calendar differs from the locale cale
intl402/Temporal/PlainDate/prototype/toLocaleString/datestyle-and-timestyle.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
intl402/Temporal/PlainDateTime/prototype/toLocaleString/basic.js Uncaught exception: de-AT locale has a 24-hour format
intl402/Temporal/PlainDateTime/prototype/toLocaleString/dateStyle.js RangeError: calendar mismatch: the value's calendar differs from the locale cale
intl402/Temporal/PlainDateTime/prototype/toLocaleString/hourcycle.js Uncaught exception: output for hourCycle: h24 should include 24:00:00 Expected S
intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-conflict.js Uncaught exception: datetime.toLocaleString("en", { dayPeriod: "short", dateSty
intl402/Temporal/PlainMonthDay/prototype/toLocaleString/calendar-mismatch.js Uncaught exception: calendar mismatch even when instance has the ISO calendar Ex
intl402/Temporal/PlainMonthDay/prototype/toLocaleString/dateStyle.js RangeError: calendar mismatch: the value's calendar differs from the locale cale
intl402/Temporal/PlainMonthDay/prototype/toLocaleString/datestyle-and-timestyle.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
intl402/Temporal/PlainTime/prototype/toLocaleString/basic.js Uncaught exception: de-AT locale has a 24-hour format
intl402/Temporal/PlainTime/prototype/toLocaleString/datestyle-and-timestyle.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
intl402/Temporal/PlainTime/prototype/toLocaleString/era.js Uncaught exception: toLocaleString on a PlainTime with era option should work
intl402/Temporal/PlainTime/prototype/toLocaleString/hourcycle.js Uncaught exception: output for hourCycle: h24 should include 24:00:00 Expected S
intl402/Temporal/PlainTime/prototype/toLocaleString/lone-options-accepted.js Uncaught exception: PlainTime.toLocaleString should format lone option {"fractio
intl402/Temporal/PlainTime/prototype/toLocaleString/options-conflict.js Uncaught exception: time.toLocaleString("en", { dayPeriod: "short", timeStyle:
intl402/Temporal/PlainYearMonth/prototype/toLocaleString/calendar-mismatch.js Uncaught exception: calendar mismatch even when instance has the ISO calendar Ex
intl402/Temporal/PlainYearMonth/prototype/toLocaleString/dateStyle.js RangeError: calendar mismatch: the value's calendar differs from the locale cale
intl402/Temporal/PlainYearMonth/prototype/toLocaleString/datestyle-and-timestyle.js Uncaught exception: Expected a TypeError to be thrown but no exception was throw
intl402/Temporal/ZonedDateTime/prototype/round/round-dst-boundaries.js Uncaught exception: Expected SameValue(«0», «1n») to be true
intl402/Temporal/ZonedDateTime/prototype/round/same-date-starts-twice.js RangeError: ZonedDateTime is outside the expected day bounds
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/dateStyle.js RangeError: calendar mismatch: the value's calendar differs from the locale cale
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/default-includes-time-and-time-zone-name.js Uncaught exception: ZonedDateTime formatted with no options 12/26/2024, 11:46:40
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/hourcycle.js Uncaught exception: output for hourCycle: h24 should include 24:00:00 Expected S
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/offset-time-zones.js Uncaught exception: Expected true but got false
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-conflict.js Uncaught exception: datetime.toLocaleString("en", { dayPeriod: "short", dateSty
intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-timeZoneName-affects-instance-time-zone.js Uncaught exception: formats with different timeZoneName options should be differ
intl402/Temporal/ZonedDateTime/prototype/toString/dst-roundingmode-halfexpand.js Uncaught exception: Expected SameValue(«0», «1n») to be true
intl402/Temporal/ZonedDateTime/prototype/with/dst-defaults.js RangeError: Offsets could not be determined without disambiguation
Workflow
Pick a coherent single-root subcluster, localize (cargo run --release -- f.ts --trace hir --focus <fn> / --trace llvm), fix, verify listed cases pass AND re-run the slice for zero regressions. Code-only PR (no Cargo.toml/Cargo.lock version bump, no CLAUDE.md Current-Version, no CHANGELOG — maintainer folds metadata). cargo fmt --all -- --check + bash scripts/check_file_size.sh must pass (files < 2000 lines). Reference this issue. Never reference internal infrastructure hostnames.
Activity
fix(runtime): #5839 — PlainYearMonth/PlainMonthDay toLocaleString rej…
chore: bump version to 0.5.1212, add changelog for #5839 fix
fix(runtime): #5839 — PlainYearMonth/PlainMonthDay toLocaleString rej…
proggeramlug commentedon Jul 3, 2026
Refreshed after the 2026-07-03 full sweep (parity 96.3%). Superseded by #5900 — same Temporal worklist with current counts, folded-in regressions, and the complete failing-test list inline.