#67
· 2024-08-20
· JavaScript, Temporal
Temporal is an ECMAScript proposal to add new date and time APIs to JavaScript.
It has been in the making for a long time by now.
The proposal's repository appeared in 2017 and a lot of activity happened within the last four years.
One topic that took a while was the IETF standardization of string formats used in zone annotations.
But that has been completed at the end of 2023.
In mid 2024, a scope reduction was discussed at the meetings of TC39.
Apparently, some implementors have reservations about the proposal's size and complexity.
As a result, some parts of the proposal were removed and may be added in future proposals instead.
But now, finally, it looks like we may soon see Temporal within browsers and other JavaScript engines.
Until recently, implementors were not allowed to ship Temporal implementations without hiding them behind a flag.
But that restriction was removed from Temporal's README in January.
And in the July meeting of TC39, it was noted that Temporal implementations may ship unflagged.
Even better, the work-in-progress implementations of Temporal in SpiderMonkey (Firefox), V8 (Chrome), and JavaScriptCore (Safari) already pass many of the required feature tests.
One remaining open issue is the final normative specification text for ECMAScript Temporal, though.
But we may already see first implementations and polyfills hopefully soon.
Thanks to everybody involved in the process!
#66
· 2024-07-08
· JavaScript, Temporal
The meeting of Ecma TC39 in June 2024 discussed the Temporal proposal that has been in the works for a long time by now.
Unfortunately, the discussion was not about being able to publish it soon. Instead, a scope reduction was proposed.
Apparently, implementors (Google, Apple, Mozilla) have reservations about the proposal's scope size and complexity.
Further information and the exact discussions that took place presumably were not publicly available so far. But now, there is an open PR to add these to the usual repository that contains TC39 meeting notes.
Conclusion: The committee reached consensus that the Temporal proposal is apparently too big. Some parts of it need to be stripped for now and may be reconsidered in follow-up proposals.
Specifically, the following parts will be removed from the current proposal:
Temporal.Calendar
- user calendars
Temporal.TimeZone
- user time zones
getISOFields()
methods
withPlainDate()
methods
PlainTime
’s toPlainDateTime
and toZonedDateTime
methods
epochSeconds
properties
epochMicroseconds
properties
Instant.fromEpochSeconds
Instant.fromEpochMicroseconds
PlainDateTime
and ZonedDateTime
’s toPlainYearMonth
and toPlainMonthDay
methods
Instant
’s toZonedDateTime
method
Now.zonedDateTime
Now.plainDateTime
Now.plainDate
relativeTo
option from Duration.add
.
Let's hope that at least the subset of Temporal can be published as a standard soon. Ideally with ECMAScript 2025.