web-platform-tests / web-platform-tests/interop
Temporal API
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 524
- Forks
- 35
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 10
Description
Description
Description
The Temporal API is the modern replacement for the legacy Date object in JavaScript. It provides immutable date/time types, proper time zone support, calendar systems, and nanosecond precision.
Temporal has reached Stage 4 in TC39 and is already shipping in Chrome/Edge and Firefox. Safari/WebKit still lacks full support (or has incomplete support). This creates a significant interoperability gap for a fundamental language feature that developers have been waiting for for many years.
Because Temporal is designed as a full replacement for Date, incomplete support forces developers to either:
- Continue using the broken
DateAPI - Ship large polyfills
- Use feature detection + dual code paths
Making Temporal fully interoperable across all major engines would remove one of the longest-standing pain points in the JavaScript language.
Specification
- TC39 proposal (Stage 4): https://github.com/tc39/proposal-temporal
- Spec text: https://tc39.es/proposal-temporal/
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal
web-feature
https://web-platform-dx.github.io/web-features-explorer/features/temporal/
Tests
Primary test suite lives in Test262:
https://github.com/tc39/test262/tree/main/test/built-ins/Temporal
There are thousands of tests covering the API. While Interop traditionally relies on WPT, Test262 is the authoritative suite for this language feature and is already used by all major engines.
Current Implementation Status (as of September 2026)
- Chrome / Edge: Shipped (Chrome 144+)
- Firefox: Shipped (Firefox 139+)
- Safari / WebKit: Not supported in stable. Support was added in Safari Technology Preview 249 (August 2026) — implementation is in progress but not yet in a stable release.
Additional Signals
Browser bugs:
- WebKit: https://bugs.webkit.org/show_bug.cgi?id=223166
- Chromium: https://issues.chromium.org/issues/401065166
- Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1839673
Developer demand:
- Temporal has been one of the most requested JavaScript features for years (State of JS surveys, GitHub discussions, Stack Overflow, Twitter/X).
- Previous Interop proposal for 2026: https://github.com/web-platform-tests/interop/issues/1022 (closed, not selected).
- Heavy use of polyfills (e.g.
@js-temporal/polyfill) indicates strong real-world demand.
Why it matters for Interop:
- Core language feature (not a niche CSS/API).
- High developer frustration with the current
DateAPI. - Already mature (Stage 4 + extensive Test262 coverage).
- Shipping in two engines already — the remaining gap is mainly Safari.
Suggested Focus
Full interoperability of the Temporal namespace and all its main types:
Temporal.InstantTemporal.ZonedDateTimeTemporal.PlainDate/PlainTime/PlainDateTimeTemporal.DurationTemporal.TimeZone/ Calendar supportTemporal.Now
Specification
https://tc39.es/proposal-temporal/
web-feature
https://web-platform-dx.github.io/web-features-explorer/features/temporal/
Test Links
No dedicated web-platform-tests currently exist for Temporal. The primary and most comprehensive test coverage lives in Test262: https://github.com/tc39/test262/tree/main/test/built-ins/Temporal
Porting or mirroring the key Test262 scenarios into web-platform-tests would likely be needed for Interop scoring — happy to discuss the best approach with the Interop team if this proposal moves forward.
Additional Signals
Browser Bugs
- WebKit: https://bugs.webkit.org/show_bug.cgi?id=223166 (Safari stable: not supported; Safari Technology Preview 249, Aug 2026, added initial support)
- Chromium: https://issues.chromium.org/issues/401065166
- Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1839673
Size and Current State of the Feature
Temporal reached TC39 Stage 4 in March 2026 (part of ECMAScript 2026). Shipping natively in Chrome/Edge 144+ and Firefox 139+. It's a large namespace (Instant, ZonedDateTime, PlainDate/PlainTime/PlainDateTime, Duration, TimeZone/Calendar support, Now) designed to replace the legacy Date object.
Developer Surveys / Other Developer Sentiment
- Consistently ranked among the most-wanted JavaScript features in State of JS surveys over multiple years.
- Previous Interop 2026 proposal: https://github.com/web-platform-tests/interop/issues/1022 (closed, not selected).
- Heavy real-world reliance on polyfills (e.g.,
@js-temporal/polyfill) is itself a signal of pent-up demand.
Site Breakage and Workaround
Sites currently work around missing native support either by continuing to use the error-prone Date API or by shipping large polyfill libraries—both workarounds developers want to retire once Temporal is fully interoperable.
Likely Compatibility Impact
Temporal is a core language feature, not a niche API — full interoperability would remove one of JavaScript's longest-standing pain points and benefit essentially every app that handles dates, times, or time zones.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Interop issue format and the linked Temporal feature data, then inspect the Test262 Temporal suite and existing web-platform-tests coverage. Determine how the Interop project would define scoring for this large namespace and which scenarios need WPT coverage. Done means an agreed scope, test plan, and interoperability criteria for the listed Temporal types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- testing-qa, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100