Ver Fonte

LibJS: Convert parse_temporal_date_time_string() to ThrowCompletionOr

Linus Groh há 3 anos atrás
pai
commit
3c530dec5a

+ 2 - 2
Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp

@@ -876,7 +876,7 @@ ThrowCompletionOr<TemporalDate> parse_temporal_date_string(GlobalObject& global_
 }
 
 // 13.39 ParseTemporalDateTimeString ( isoString ), https://tc39.es/proposal-temporal/#sec-temporal-parsetemporaldatetimestring
-Optional<ISODateTime> parse_temporal_date_time_string(GlobalObject& global_object, String const& iso_string)
+ThrowCompletionOr<ISODateTime> parse_temporal_date_time_string(GlobalObject& global_object, String const& iso_string)
 {
     // 1. Assert: Type(isoString) is String.
 
@@ -885,7 +885,7 @@ Optional<ISODateTime> parse_temporal_date_time_string(GlobalObject& global_objec
     // TODO
 
     // 3. Let result be ? ParseISODateTime(isoString).
-    auto result = TRY_OR_DISCARD(parse_iso_date_time(global_object, iso_string));
+    auto result = TRY(parse_iso_date_time(global_object, iso_string));
 
     // 4. Return result.
     return result;

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.h

@@ -107,7 +107,7 @@ ThrowCompletionOr<ISODateTime> parse_iso_date_time(GlobalObject&, String const&
 ThrowCompletionOr<TemporalInstant> parse_temporal_instant_string(GlobalObject&, String const& iso_string);
 ThrowCompletionOr<String> parse_temporal_calendar_string(GlobalObject&, String const& iso_string);
 ThrowCompletionOr<TemporalDate> parse_temporal_date_string(GlobalObject&, String const& iso_string);
-Optional<ISODateTime> parse_temporal_date_time_string(GlobalObject&, String const& iso_string);
+ThrowCompletionOr<ISODateTime> parse_temporal_date_time_string(GlobalObject&, String const& iso_string);
 Optional<TemporalDuration> parse_temporal_duration_string(GlobalObject&, String const& iso_string);
 Optional<TemporalTime> parse_temporal_time_string(GlobalObject&, String const& iso_string);
 Optional<TemporalTimeZone> parse_temporal_time_zone_string(GlobalObject&, String const& iso_string);

+ 1 - 4
Userland/Libraries/LibJS/Runtime/Temporal/PlainDateTime.cpp

@@ -204,10 +204,7 @@ PlainDateTime* to_temporal_date_time(GlobalObject& global_object, Value item, Ob
             return {};
 
         // c. Let result be ? ParseTemporalDateTimeString(string).
-        auto maybe_result = parse_temporal_date_time_string(global_object, string);
-        if (vm.exception())
-            return {};
-        result = move(*maybe_result);
+        result = TRY_OR_DISCARD(parse_temporal_date_time_string(global_object, string));
 
         // d. Assert: ! IsValidISODate(result.[[Year]], result.[[Month]], result.[[Day]]) is true.
         VERIFY(is_valid_iso_date(result.year, result.month, result.day));