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