Commit eb6dfc67 authored by Frank Tang's avatar Frank Tang Committed by V8 LUCI CQ

[Temporal] Fix Calendar dateAdd

Sync to spec to allow BalanceDuration to throw.
Spec text:
https://tc39.es/proposal-temporal/#sec-temporal.calendar.prototype.dateadd

PR change:
https://github.com/tc39/proposal-temporal/pull/2094

split from cl/3750098

Bug: v8:11544
Change-Id: I5a73dede2335bcf3f3e61a0ce789555671e5dda5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3824662Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82402}
parent 6e0251f9
......@@ -9968,19 +9968,22 @@ MaybeHandle<JSTemporalPlainDate> JSTemporalCalendar::DateAdd(
isolate, overflow, ToTemporalOverflow(isolate, options, method_name),
Handle<JSTemporalPlainDate>());
// 8. Let balanceResult be ! BalanceDuration(duration.[[Days]],
// 8. Let balanceResult be ? BalanceDuration(duration.[[Days]],
// duration.[[Hours]], duration.[[Minutes]], duration.[[Seconds]],
// duration.[[Milliseconds]], duration.[[Microseconds]],
// duration.[[Nanoseconds]], "day").
TimeDurationRecord balance_result =
TimeDurationRecord balance_result;
MAYBE_ASSIGN_RETURN_ON_EXCEPTION_VALUE(
isolate, balance_result,
BalanceDuration(
isolate, Unit::kDay,
{duration->days().Number(), duration->hours().Number(),
duration->minutes().Number(), duration->seconds().Number(),
duration->milliseconds().Number(), duration->microseconds().Number(),
duration->nanoseconds().Number()},
method_name)
.ToChecked();
method_name),
Handle<JSTemporalPlainDate>());
DateRecordCommon result;
// If calendar.[[Identifier]] is "iso8601", then
if (calendar->calendar_index() == 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment