Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Speed up TimeZone and ZonedDateTime code and tests
Creating Intl.DateTimeFormat instances in V8 is slow and memory heavy. GetFormatterParts and GetCanonicalTimeZoneIdentifier are functions that are called many times when using Temporal, and they used to create new instances of Intl.DateTimeFormat for each call. In this commit, we cache them using the time zone identifier as the key. It should be noted that doing the same to SystemTimeZone was avoided. This is due to the fact that user's time zone may change during the execution of a program. An example: Temporal.now.zonedDateTimeISO() should always output the correct time zone. This shouldn't be a problem for server-side code that usually doesn't (or rather, shouldn't) use the time zone from the environment for calculations. (ported from js-temporal/temporal-polyfill#10)
- Loading branch information