1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 07:17:35 +00:00

LibJS: Implement Temporal.Duration.prototype.with()

This commit is contained in:
Linus Groh 2021-07-16 19:30:52 +01:00
parent 510f668ae3
commit 9aa1e4b885
7 changed files with 253 additions and 0 deletions

View file

@ -6,6 +6,7 @@
#pragma once
#include <AK/Optional.h>
#include <LibJS/Runtime/Object.h>
namespace JS::Temporal {
@ -43,8 +44,22 @@ private:
double m_nanoseconds; // [[Nanoseconds]]
};
struct PartialDuration {
Optional<double> years;
Optional<double> months;
Optional<double> weeks;
Optional<double> days;
Optional<double> hours;
Optional<double> minutes;
Optional<double> seconds;
Optional<double> milliseconds;
Optional<double> microseconds;
Optional<double> nanoseconds;
};
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);
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* new_target = nullptr);
}