mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 16:18:12 +00:00
LibJS: Allow 'T' prefix in time-only strings
This is a normative change in the Temporal spec.
See: f5e8edf
This commit is contained in:
parent
acce65b52c
commit
6da6da73cc
2 changed files with 12 additions and 9 deletions
|
@ -201,10 +201,10 @@ bool ISO8601Parser::parse_date_time_separator()
|
|||
|| m_state.lexer.consume_specific('t');
|
||||
}
|
||||
|
||||
// https://tc39.es/proposal-temporal/#prod-DurationTimeDesignator
|
||||
bool ISO8601Parser::parse_duration_time_designator()
|
||||
// https://tc39.es/proposal-temporal/#prod-TimeDesignator
|
||||
bool ISO8601Parser::parse_time_designator()
|
||||
{
|
||||
// DurationTimeDesignator : one of
|
||||
// TimeDesignator : one of
|
||||
// T t
|
||||
return m_state.lexer.consume_specific('T')
|
||||
|| m_state.lexer.consume_specific('t');
|
||||
|
@ -812,11 +812,14 @@ bool ISO8601Parser::parse_date_time()
|
|||
bool ISO8601Parser::parse_calendar_time()
|
||||
{
|
||||
// CalendarTime :
|
||||
// TimeSpec TimeZone[opt] Calendar[opt]
|
||||
// TimeDesignator[opt] TimeSpec TimeZone[opt] Calendar[opt]
|
||||
StateTransaction transaction { *this };
|
||||
(void)parse_time_designator();
|
||||
if (!parse_time_spec())
|
||||
return false;
|
||||
(void)parse_time_zone();
|
||||
(void)parse_calendar();
|
||||
transaction.commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -962,11 +965,11 @@ bool ISO8601Parser::parse_duration_hours_part()
|
|||
bool ISO8601Parser::parse_duration_time()
|
||||
{
|
||||
// DurationTime :
|
||||
// DurationTimeDesignator DurationHoursPart
|
||||
// DurationTimeDesignator DurationMinutesPart
|
||||
// DurationTimeDesignator DurationSecondsPart
|
||||
// TimeDesignator DurationHoursPart
|
||||
// TimeDesignator DurationMinutesPart
|
||||
// TimeDesignator DurationSecondsPart
|
||||
StateTransaction transaction { *this };
|
||||
if (!parse_duration_time_designator())
|
||||
if (!parse_time_designator())
|
||||
return false;
|
||||
auto success = parse_duration_hours_part()
|
||||
|| parse_duration_minutes_part()
|
||||
|
|
|
@ -90,7 +90,7 @@ public:
|
|||
[[nodiscard]] bool parse_duration_designator();
|
||||
[[nodiscard]] bool parse_seconds_designator();
|
||||
[[nodiscard]] bool parse_date_time_separator();
|
||||
[[nodiscard]] bool parse_duration_time_designator();
|
||||
[[nodiscard]] bool parse_time_designator();
|
||||
[[nodiscard]] bool parse_weeks_designator();
|
||||
[[nodiscard]] bool parse_years_designator();
|
||||
[[nodiscard]] bool parse_utc_designator();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue