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

Reply via email to