Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 33ca7b8504a9c34d6fb9b1a8890330f1751de654
https://github.com/WebKit/WebKit/commit/33ca7b8504a9c34d6fb9b1a8890330f1751de654
Author: Yusuke Suzuki <[email protected]>
Date: 2026-06-15 (Mon, 15 Jun 2026)
Changed paths:
M Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp
M Source/JavaScriptCore/runtime/ISO8601.cpp
M Source/JavaScriptCore/runtime/temporal/core/DurationArithmetic.cpp
M Source/JavaScriptCore/runtime/temporal/core/DurationArithmetic.h
M Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.cpp
M Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.h
M Source/JavaScriptCore/runtime/temporal/core/PlainDateTimeCore.cpp
M Source/JavaScriptCore/runtime/temporal/core/ZonedDateTimeCore.cpp
Log Message:
-----------
[JSC] Optimize some of Temporal date operations
https://bugs.webkit.org/show_bug.cgi?id=317091
rdar://179644689
Reviewed by Sosuke Suzuki.
This patch adds several optimizations and cleanup of date related operations.
1. Change balanceISODate -> addDaysToISODate to align to the spec. Also
this makes code clean by getting PlainDate directly.
2. Add fast path to addDaysToISODate, which does not cross the month
with the added days.
3. Add fast path to adjustDateDurationRecord which can quickly check the
only given fields.
4. Add fast path to isDateTimeWithinLimits for known valid range of years.
Test: Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp
* Source/JavaScriptCore/API/tests/TemporalCoreTest.cpp:
(JSC::TemporalCore::testAddDaysToISODate):
(JSC::TemporalCore::testAdjustDateDurationRecord):
(JSC::TemporalCore::testISODateLimits):
(JSC::TemporalCore::runTemporalRSTests):
(JSC::TemporalCore::testBalanceISODate): Deleted.
* Source/JavaScriptCore/runtime/ISO8601.cpp:
(JSC::ISO8601::isDateTimeWithinLimits):
* Source/JavaScriptCore/runtime/temporal/core/DurationArithmetic.cpp:
(JSC::TemporalCore::adjustDateDurationRecord):
(JSC::TemporalCore::computeNudgeWindow):
(JSC::TemporalCore::nudgeToZonedTime):
(JSC::TemporalCore::nudgeToDayOrTime):
* Source/JavaScriptCore/runtime/temporal/core/DurationArithmetic.h:
* Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.cpp:
(JSC::TemporalCore::addDaysToISODate):
(JSC::TemporalCore::isoDateAdd):
(JSC::TemporalCore::diffISODateTime):
(JSC::TemporalCore::balanceISODate): Deleted.
* Source/JavaScriptCore/runtime/temporal/core/ISOArithmetic.h:
* Source/JavaScriptCore/runtime/temporal/core/PlainDateTimeCore.cpp:
(JSC::TemporalCore::differencePlainDateTimeWithRounding):
* Source/JavaScriptCore/runtime/temporal/core/ZonedDateTimeCore.cpp:
(JSC::TemporalCore::differenceZonedDateTime):
Canonical link: https://commits.webkit.org/315205@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications