[webkit-changes] [WebKit/WebKit] 0c4378: Implement Temporal.PlainDate#{since, until}

Ross Kirsling noreply at github.com
Fri Sep 23 02:19:56 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c4378330b67f1dc802edd25a80a78f446b3be09
      https://github.com/WebKit/WebKit/commit/0c4378330b67f1dc802edd25a80a78f446b3be09
  Author: Ross Kirsling <rkirsling at gmail.com>
  Date:   2022-09-23 (Fri, 23 Sep 2022)

  Changed paths:
    M JSTests/stress/temporal-calendar.js
    M JSTests/stress/temporal-plaindate.js
    M JSTests/test262/config.yaml
    M JSTests/test262/expectations.yaml
    M Source/JavaScriptCore/runtime/TemporalCalendar.cpp
    M Source/JavaScriptCore/runtime/TemporalCalendar.h
    M Source/JavaScriptCore/runtime/TemporalCalendarPrototype.cpp
    M Source/JavaScriptCore/runtime/TemporalObject.cpp
    M Source/JavaScriptCore/runtime/TemporalObject.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/TemporalPlainTime.cpp

  Log Message:
  -----------
  Implement Temporal.PlainDate#{since, until}
https://bugs.webkit.org/show_bug.cgi?id=245550

Reviewed by Yusuke Suzuki.

This patch implements the `since` / `until` methods for PlainDate (and accordingly the `dateUntil` method for Calendar).

Since we haven't implemented `relativeTo` support for Duration yet, we must postpone implementation of:
  1. the path where `smallestUnit` is set to `year`, `month`, or `week`
  2. the entirety of `since` / `until` for PlainDateTime

Otherwise, this completes the "ISO8601-only" implementation for PlainDate and PlainDateTime.

* JSTests/stress/temporal-calendar.js:
* JSTests/stress/temporal-plaindate.js:
* JSTests/test262/config.yaml:
* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/runtime/TemporalCalendar.cpp:
(JSC::TemporalCalendar::isoDateDifference): Added.
(JSC::TemporalCalendar::isoDateCompare): Moved from TemporalPlainDate.
* Source/JavaScriptCore/runtime/TemporalCalendar.h:
* Source/JavaScriptCore/runtime/TemporalCalendarPrototype.cpp:
* Source/JavaScriptCore/runtime/TemporalObject.cpp:
(JSC::extractDifferenceOptions): Moved from TemporalPlainTime.
(JSC::negateTemporalRoundingMode): Added.
* Source/JavaScriptCore/runtime/TemporalObject.h:
* Source/JavaScriptCore/runtime/TemporalPlainDate.cpp:
(JSC::TemporalPlainDate::until): Added.
(JSC::TemporalPlainDate::since): Added.
(JSC::TemporalPlainDate::compare): Moved to TemporalCalendar.
* Source/JavaScriptCore/runtime/TemporalPlainDate.h:
* Source/JavaScriptCore/runtime/TemporalPlainDateConstructor.cpp:
* Source/JavaScriptCore/runtime/TemporalPlainDatePrototype.cpp:
* Source/JavaScriptCore/runtime/TemporalPlainDateTime.cpp:
(JSC::TemporalPlainDateTime::compare):
* Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:
(JSC::TemporalPlainTime::until const):
(JSC::TemporalPlainTime::since const):
(JSC::extractDifferenceOptions): Moved to TemporalObject.

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




More information about the webkit-changes mailing list