This version roughly corresponds with all the changes made to the Temporal polyfill as of the October 2021 TC39 Plenary meeting.
Breaking changes:
- Timezones now require a
getOffsetNanosecondsFor
method, and no longer fall back to the intrinsic definition (previously provided byTemporal.Timezone#getOffsetNanosecondsFor
) if not provided. (08346dc5, see also proposal-temporal polyfill PR) - Disallow Z designators when parsing strings for Plain Temporal types (f3f8a994, see also Spec PR)
- Allow ISO strings with "Z" + a bracketed IANA name (70bd9898, see also Spec PR)
- Emit ES2020 builds for newer browsers, and emit ES5 for older browsers. (2331468d, 9e95c62b)
- Temporal.Duration constructor will now throw if given a non-integer (9df5d068, see also Spec PR)
- Remove support for sub-minute offsets in ISO strings (766e5037, see also Spec PR, Spec PR)
- Throw TypeError on missing options from Duration.total (4ec075f0, see also Spec PR)
- Reject non-integer Duration fields in Duration.with() (e6b2488d, see also Spec PR)
- Ensure an Object is returned from calendar.mergeFields() (4e63f25f, see also Spec PR)
Bug fixes:
- Fix GetFormatterParts for Firefox Nightly (47f9132f)
- Fix TS types of RoundTo and TotalOf (3008a670)
- Fix crash setting
day
outside current JPN era (6d3588c3, see also proposal-temporal polyfill PR) - Copy options object for PlainYearMonth.{add,subtract} and InterpretTemporalDateTimeFields to prevent user-modified objects from interfering with later operations. (bafa1bdf, see also Spec PR)
- Validate input to Calendar.prototype.fields (7ebc700e, see also Spec PR)
- Stop observably calling into
getPossibleInstantsFor
inInterpretISODateTimeOffset
(5448e59f, see also Spec PR) - Call
CalendarEquals
correctly (07ea694e, see also proposal-temporal polyfill PR) - Fix arithmetic issues when using non-ISO months (079a3325, see also proposal-temporal polyfill PR)
- Regex: tighten matching of month and day values in datesplit (b5736546, see also proposal-temporal polyfill PR)
- Fix TS types for required CalendarProtocol methods (0ee4581f, see also proposal-temporal polyfill PR)
Non-breaking changes:
- Various
#round
and#total
methods now accept string parameters or options bags. Strings are interpreted as thesmallestUnit
option (orunit
forTemporal.Duration#total
). (068e801f, see also Spec PR) - Add @@toStringTag to TS types (41ab6bc0)
- Accept string Calendar names in PlainMonthDay and PlainYearMonth constructors (27b4c7e8)
- Make options optional in Calendar method TS types (3a09d00d)
- Align implementation of RoundDuration with adjusted spec text (4a0d0264, see also Spec PR)
Other:
- Bump various dependencies (47701107, f5427de9, 310d9d8b)
- Allow launching and debugging tests (both Demitasse and Test262 suites) from the VSCode debug panel (960d9b76, 7f7c19a1, 4ec6568e, edcc668b)
- Run the Test262 test suite against this polyfill, for various configurations of the resulting build artifact (2331468d, 666c69da, 429273ec, ff937782, f885253f)
- Remove various pieces of unused code, and add CI testing to detect unused code in PR review (67f9f6bb, 63bdfcd1)
- Drop the dependency on es-abstract (d24575f2, ad7e2e3a, 5b1bc5e2)
- The polyfill's source was ported to TypeScript (12e4d529, ac78fd9d, 53f32e0f, 06b806c9, 66fdc765, 50b1c34b, 4724b017, 947a8a5e, fdbf7e01, fa60af6a, da753f2f, f4db8b0b, 4a38420d)
- Document the release process for this polyfill (c55818b6)