Skip to content

test262 Temporal (built-ins + intl402) — 56 (self-contained worklist) #5839

Closed

Description

@proggeramlug

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

  1. added
    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
    on Jul 1, 2026
  2. added 3 commits that reference this issue on Jul 2, 2026
  3. proggeramlug commented on Jul 3, 2026

    @proggeramlug
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystem

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions