Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c9647b14e97b537ef936327ab0e821f6b3c74e56
      
https://github.com/WebKit/WebKit/commit/c9647b14e97b537ef936327ab0e821f6b3c74e56
  Author: Yijia Huang <[email protected]>
  Date:   2026-06-29 (Mon, 29 Jun 2026)

  Changed paths:
    A JSTests/stress/temporal-non-iso-era-codes.js
    A JSTests/stress/temporal-plain-date-add-time-rollover.js
    M Source/JavaScriptCore/runtime/TemporalCalendar.cpp
    M Source/JavaScriptCore/runtime/TemporalCalendar.h
    M Source/JavaScriptCore/runtime/TemporalPlainDate.cpp
    M Source/JavaScriptCore/runtime/TemporalPlainDate.h
    M Source/JavaScriptCore/runtime/TemporalPlainDateConstructor.cpp
    M Source/JavaScriptCore/runtime/TemporalPlainDatePrototype.cpp
    M Source/JavaScriptCore/runtime/TemporalPlainDateTime.cpp
    M Source/JavaScriptCore/runtime/TemporalPlainDateTime.h
    M Source/JavaScriptCore/runtime/TemporalPlainDateTimeConstructor.cpp
    M Source/JavaScriptCore/runtime/temporal/core/CalendarICUBridge.cpp

  Log Message:
  -----------
  [JSC][Temporal] Polish Temporal.PlainDate: spec alignment, era and date-add 
fixes
https://bugs.webkit.org/show_bug.cgi?id=318138
rdar://180958190

Reviewed by Yusuke Suzuki.

Annotate every Temporal.PlainDate operation against the Stage 4
spec; rename toPlainDate to validateAndCreateISODateRecord.

Two real bugs fixed:

* Non-ISO PlainDate.add({hours: 24}) was a no-op. AddDurationToDate
Step 4 (ToDateDurationRecordWithoutTime — rolls 24h into one day)
was only applied on the ISO path. Hoisted so both branches roll
time fields; delete the now-unused addDurationToDate helper.
* Era codes for coptic/ethiopic ("ce"/"bce" -> "am") and indian
("saka" -> "shaka") diverged from temporal_rs / icu4x. Fixed in
both forward and reverse maps.

Refactors: differenceTemporalPlainDate becomes a DifferenceOperation
template taking JSValue options; until()/since() are one-liners. Dead
Duration-taking tryCreateIfValid overloads, parse<>, and fromObject
removed. Single-caller toString(JSValue) inlined into its prototype
host function.

Added a FIXME notes that bare "islamic" is still accepted on JSC but rejected on
V8 — deferred to the Calendar internals phase.

Tests:
JSTests/stress/temporal-non-iso-era-codes.js
JSTests/stress/temporal-plain-date-add-time-rollover.js

Canonical link: https://commits.webkit.org/316092@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to