LibJS: Fix ambiguity in FractionalPart grammar

This is a normative change in the Temporal spec.

See: 0f11bd6
This commit is contained in:
Linus Groh 2021-12-18 17:28:04 +00:00
commit 4b7f716f21
Notes: sideshowbarker 2024-07-17 22:38:56 +09:00
3 changed files with 12 additions and 25 deletions

View file

@ -430,29 +430,17 @@ bool ISO8601Parser::parse_fractional_part()
return true;
}
// https://tc39.es/proposal-temporal/#prod-TimeFractionalPart
bool ISO8601Parser::parse_time_fractional_part()
{
// TimeFractionalPart :
// FractionalPart
StateTransaction transaction { *this };
if (!parse_fractional_part())
return false;
m_state.parse_result.time_fractional_part = transaction.parsed_string_view();
transaction.commit();
return true;
}
// https://tc39.es/proposal-temporal/#prod-Fraction
bool ISO8601Parser::parse_fraction()
{
// Fraction :
// DecimalSeparator TimeFractionalPart
// DecimalSeparator FractionalPart
StateTransaction transaction { *this };
if (!parse_decimal_separator())
return false;
if (!parse_time_fractional_part())
if (!parse_fractional_part())
return false;
m_state.parse_result.fractional_part = transaction.parsed_string_view();
transaction.commit();
return true;
}