mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:32:46 +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
	
	 Linus Groh
						Linus Groh