mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 07:17:35 +00:00
LibJS: Add the ToTemporalTime AO and stub the ParseTemporalTimeString AO
This AO is required for a bunch of PlainTime related methods. As part of this change the `TemporalTime` record was renamed to `UnregulatedTemporalTime` and a new `TemporalTime` record that matches the other Temporal parse result records was added. This also has the added benefit of getting rid of a would be round-trip cast from integer to double and back in `ParseTemporalTimeString`.
This commit is contained in:
parent
32fc81c186
commit
f6370fe3f7
5 changed files with 147 additions and 17 deletions
|
@ -51,7 +51,7 @@ struct DaysAndTime {
|
|||
u16 nanosecond;
|
||||
};
|
||||
|
||||
struct TemporalTime {
|
||||
struct UnregulatedTemporalTime {
|
||||
double hour;
|
||||
double minute;
|
||||
double second;
|
||||
|
@ -81,12 +81,13 @@ auto temporal_time_like_properties = [](VM& vm) {
|
|||
};
|
||||
};
|
||||
|
||||
PlainTime* to_temporal_time(GlobalObject&, Value item, Optional<StringView> overflow = {});
|
||||
Optional<TemporalTime> regulate_time(GlobalObject&, double hour, double minute, double second, double millisecond, double microsecond, double nanosecond, StringView overflow);
|
||||
bool is_valid_time(double hour, double minute, double second, double millisecond, double microsecond, double nanosecond);
|
||||
DaysAndTime balance_time(i64 hour, i64 minute, i64 second, i64 millisecond, i64 microsecond, i64 nanosecond);
|
||||
TemporalTime constrain_time(double hour, double minute, double second, double millisecond, double microsecond, double nanosecond);
|
||||
PlainTime* create_temporal_time(GlobalObject&, u8 hour, u8 minute, u8 second, u16 millisecond, u16 microsecond, u16 nanosecond, FunctionObject* new_target = nullptr);
|
||||
Optional<TemporalTime> to_temporal_time_record(GlobalObject&, Object& temporal_time_like);
|
||||
Optional<UnregulatedTemporalTime> to_temporal_time_record(GlobalObject&, Object& temporal_time_like);
|
||||
i8 compare_temporal_time(u8 hour1, u8 minute1, u8 second1, u16 millisecond1, u16 microsecond1, u16 nanosecond1, u8 hour2, u8 minute2, u8 second2, u16 millisecond2, u16 microsecond2, u16 nanosecond2);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue