LibJS: Make ToDateDurationRecordWithoutTime infallible

This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/05017b9
This commit is contained in:
Timothy Flynn 2024-12-05 09:53:52 -05:00 committed by Tim Flynn
parent 4f07cddb2d
commit 4cbb5661d0
Notes: github-actions[bot] 2024-12-05 21:07:00 +00:00
4 changed files with 8 additions and 8 deletions

View file

@ -110,7 +110,7 @@ InternalDuration to_internal_duration_record_with_24_hour_days(VM& vm, Duration
}
// 7.5.7 ToDateDurationRecordWithoutTime ( duration ), https://tc39.es/proposal-temporal/#sec-temporal-todatedurationrecordwithouttime
ThrowCompletionOr<DateDuration> to_date_duration_record_without_time(VM& vm, Duration const& duration)
DateDuration to_date_duration_record_without_time(VM& vm, Duration const& duration)
{
// 1. Let internalDuration be ToInternalDurationRecordWith24HourDays(duration).
auto internal_duration = to_internal_duration_record_with_24_hour_days(vm, duration);
@ -118,8 +118,8 @@ ThrowCompletionOr<DateDuration> to_date_duration_record_without_time(VM& vm, Dur
// 2. Let days be truncate(internalDuration.[[Time]] / nsPerDay).
auto days = internal_duration.time.divided_by(NANOSECONDS_PER_DAY).quotient;
// 3. Return ? CreateDateDurationRecord(internalDuration.[[Date]].[[Years]], internalDuration.[[Date]].[[Months]], internalDuration.[[Date]].[[Weeks]], days).
return TRY(create_date_duration_record(vm, duration.years(), duration.months(), duration.weeks(), days.to_double()));
// 3. Return ! CreateDateDurationRecord(internalDuration.[[Date]].[[Years]], internalDuration.[[Date]].[[Months]], internalDuration.[[Date]].[[Weeks]], days).
return MUST(create_date_duration_record(vm, duration.years(), duration.months(), duration.weeks(), days.to_double()));
}
// 7.5.8 TemporalDurationFromInternal ( internalDuration, largestUnit ), https://tc39.es/proposal-temporal/#sec-temporal-temporaldurationfrominternal

View file

@ -112,7 +112,7 @@ struct CalendarNudgeResult {
DateDuration zero_date_duration(VM&);
InternalDuration to_internal_duration_record(VM&, Duration const&);
InternalDuration to_internal_duration_record_with_24_hour_days(VM&, Duration const&);
ThrowCompletionOr<DateDuration> to_date_duration_record_without_time(VM&, Duration const&);
DateDuration to_date_duration_record_without_time(VM&, Duration const&);
ThrowCompletionOr<GC::Ref<Duration>> temporal_duration_from_internal(VM&, InternalDuration const&, Unit largest_unit);
ThrowCompletionOr<DateDuration> create_date_duration_record(VM&, double years, double months, double weeks, double days);
ThrowCompletionOr<DateDuration> adjust_date_duration_record(VM&, DateDuration const&, double days, Optional<double> weeks = {}, Optional<double> months = {});

View file

@ -407,8 +407,8 @@ ThrowCompletionOr<GC::Ref<PlainDate>> add_duration_to_date(VM& vm, ArithmeticOpe
if (operation == ArithmeticOperation::Subtract)
duration = create_negated_temporal_duration(vm, duration);
// 4. Let dateDuration be ? ToDateDurationRecordWithoutTime(duration).
auto date_duration = TRY(to_date_duration_record_without_time(vm, duration));
// 4. Let dateDuration be ToDateDurationRecordWithoutTime(duration).
auto date_duration = to_date_duration_record_without_time(vm, duration);
// 5. Let resolvedOptions be ? GetOptionsObject(options).
auto resolved_options = TRY(get_options_object(vm, options));

View file

@ -323,8 +323,8 @@ ThrowCompletionOr<GC::Ref<PlainYearMonth>> add_duration_to_year_month(VM& vm, Ar
date = intermediate_date;
}
// 12. Let durationToAdd be ? ToDateDurationRecordWithoutTime(duration).
auto duration_to_add = TRY(to_date_duration_record_without_time(vm, duration));
// 12. Let durationToAdd be ToDateDurationRecordWithoutTime(duration).
auto duration_to_add = to_date_duration_record_without_time(vm, duration);
// 13. Let addedDate be ? CalendarDateAdd(calendar, date, durationToAdd, overflow).
auto added_date = TRY(calendar_date_add(vm, calendar, date, duration_to_add, overflow));