mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 15:37:47 +00:00
LibJS: Implement the required AOs for Temporal.Duration.compare
This commit is contained in:
parent
98b9a75591
commit
29072f4b09
9 changed files with 413 additions and 5 deletions
|
@ -109,6 +109,14 @@ struct RoundedDuration {
|
|||
double remainder;
|
||||
};
|
||||
|
||||
// Used by UnbalanceDurationRelative to temporarily hold values
|
||||
struct UnbalancedDuration {
|
||||
double years;
|
||||
double months;
|
||||
double weeks;
|
||||
double days;
|
||||
};
|
||||
|
||||
// Table 7: Properties of a TemporalDurationLike, https://tc39.es/proposal-temporal/#table-temporal-temporaldurationlike-properties
|
||||
|
||||
template<typename StructT, typename ValueT>
|
||||
|
@ -141,8 +149,10 @@ bool is_valid_duration(double years, double months, double weeks, double days, d
|
|||
ThrowCompletionOr<PartialDuration> to_partial_duration(GlobalObject&, Value temporal_duration_like);
|
||||
ThrowCompletionOr<Duration*> create_temporal_duration(GlobalObject&, double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds, FunctionObject const* new_target = nullptr);
|
||||
Duration* create_negated_temporal_duration(GlobalObject& global_object, Duration const& duration);
|
||||
ThrowCompletionOr<double> calculate_offset_shift(GlobalObject&, Value relative_to_value, double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds);
|
||||
BigInt* total_duration_nanoseconds(GlobalObject&, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, BigInt const& nanoseconds, double offset_shift);
|
||||
ThrowCompletionOr<BalancedDuration> balance_duration(GlobalObject&, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, BigInt const& nanoseconds, String const& largest_unit, Object* relative_to = nullptr);
|
||||
ThrowCompletionOr<UnbalancedDuration> unbalance_duration_relative(GlobalObject&, double years, double months, double weeks, double days, String const& largest_unit, Value relative_to);
|
||||
ThrowCompletionOr<MoveRelativeDateResult> move_relative_date(GlobalObject&, Object& calendar, PlainDateTime& relative_to, Duration& duration);
|
||||
ThrowCompletionOr<ZonedDateTime*> move_relative_zoned_date_time(GlobalObject&, ZonedDateTime&, double years, double months, double weeks, double days);
|
||||
ThrowCompletionOr<RoundedDuration> round_duration(GlobalObject&, double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds, u32 increment, StringView unit, StringView rounding_mode, Object* relative_to_object = nullptr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue