1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 07:38:10 +00:00

LibJS: Implement Temporal.Duration.from()

...with ParseTemporalDurationString currently TODO()'d.
This commit is contained in:
Linus Groh 2021-07-18 21:44:05 +01:00
parent 7355c23e17
commit 5c77885873
9 changed files with 236 additions and 0 deletions

View file

@ -44,6 +44,21 @@ private:
double m_nanoseconds; // [[Nanoseconds]]
};
// Used by ToTemporalDurationRecord to temporarily hold values
struct TemporalDuration {
double years;
double months;
double weeks;
double days;
double hours;
double minutes;
double seconds;
double milliseconds;
double microseconds;
double nanoseconds;
};
// Used by ToPartialDuration to temporarily hold values
struct PartialDuration {
Optional<double> years;
Optional<double> months;
@ -82,6 +97,8 @@ auto temporal_duration_like_properties = [](VM& vm) {
};
};
Duration* to_temporal_duration(GlobalObject&, Value item);
TemporalDuration to_temporal_duration_record(GlobalObject&, Object& temporal_duration_like);
i8 duration_sign(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds);
bool is_valid_duration(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds);
PartialDuration to_partial_duration(GlobalObject&, Value temporal_duration_like);