Skip to content

Commit 5bd6c37

Browse files
authored
perf: Use memoized zone for universal zone validation (#1066)
* Use memoized zone for universal zone validation * Add a benchmark for DateTime#toLocaleString in utc
1 parent 50b5b1b commit 5bd6c37

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

benchmarks/datetime.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ function runDateTimeSuite() {
5454
.add("DateTime#toLocaleString", () => {
5555
dt.toLocaleString();
5656
})
57+
.add("DateTime#toLocaleString in utc", () => {
58+
dt.toUTC().toLocaleString();
59+
})
5760
.add("DateTime#toRelativeCalendar", () => {
5861
dt.toRelativeCalendar({ base: DateTime.now(), locale: "fi" });
5962
})

src/impl/locale.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,7 @@ class PolyDateFormatter {
181181
// - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata
182182
const gmtOffset = -1 * (dt.offset / 60);
183183
const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;
184-
const isOffsetZoneSupported = IANAZone.isValidZone(offsetZ);
185-
if (dt.offset !== 0 && isOffsetZoneSupported) {
184+
if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {
186185
z = offsetZ;
187186
this.dt = dt;
188187
} else {

0 commit comments

Comments
 (0)