The Temporal proposal provides a
replacement for Date
, a long standing pain-point in the JavaScript language.
This blog post
describes some of the history and motivation behind the proposal. The
Temporal API itself is well docmented on
MDN.
Temporal reached Stage 3 of the TC39 process in March 2021. Reaching Stage 3 means that the specification is considered complete, and that the proposal is ready for implementation.
SpiderMonkey began our implementation that same month, with the initial work tracked in Bug 1519167. Incredibly, our implementation was not developed by Mozilla employees, but was contributed entirely by a single volunteer, André Bargull. That initial bug consisted of 99 patches, but the work did not stop there, as the specification continued to evolve as problems were found during implementation. Beyond contributing to SpiderMonkey, André filed close to 200 issues against the specification. Bug 1840374 is just one example of the massive amount of work required to keep up to date with the specification.
As of Firefox 139, we’ve enabled our Temporal implementation by default, making us the first browser to ship it. Sometimes it can seem like the ideas of open source, community, and volunteer contributors are a thing of the past, but the example of Temporal shows that volunteers can still have a meaningful impact both on Firefox and on the JavaScript language as a whole.
Interested in contributing?
Not every proposal is as large as Temporal, and we welcome contributions of all shapes and sizes. If you’re interested in contributing to SpiderMonkey, please have a look at our mentored bugs. You don’t have to be an expert :). If your interests are more on the specification side, you can also check out how to contribute to TC39.