diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp index 5f76482571..ffc8e13f11 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp @@ -853,8 +853,7 @@ ThrowCompletionOr format_seconds_string_part(VM& vm, u8 second, u16 mill fraction_string = TRY_OR_THROW_OOM(vm, String::formatted("{:09}", fraction)); // c. Set fraction to the longest possible substring of fraction starting at position 0 and not ending with the code unit 0x0030 (DIGIT ZERO). - // FIXME: Add String::trim() - fraction_string = TRY_OR_THROW_OOM(vm, String::from_utf8(fraction_string.bytes_as_string_view().trim("0"sv, TrimMode::Right))); + fraction_string = TRY_OR_THROW_OOM(vm, fraction_string.trim("0"sv, TrimMode::Right)); } // 6. Else, else { @@ -1806,8 +1805,7 @@ ThrowCompletionOr prepare_temporal_fields(VM& vm, Object const& fields, // 4. If requiredFields is partial and any is false, then if (required_fields.has() && !any) { // a. Throw a TypeError exception. - // FIXME: Add & use String::join() - return vm.throw_completion(ErrorType::TemporalObjectMustHaveOneOf, DeprecatedString::join(", "sv, field_names)); + return vm.throw_completion(ErrorType::TemporalObjectMustHaveOneOf, TRY_OR_THROW_OOM(vm, String::join(", "sv, field_names))); } // 5. Return result. diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp index 6645f4d7a2..954695a501 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp @@ -202,10 +202,13 @@ ThrowCompletionOr format_time_zone_offset_string(VM& vm, double offset_n // 11. If nanoseconds ≠ 0, then if (nanoseconds != 0) { // a. Let fraction be ToZeroPaddedDecimalString(nanoseconds, 9). + auto fraction = TRY_OR_THROW_OOM(vm, String::formatted("{:09}", nanoseconds)); + // b. Set fraction to the longest possible substring of fraction starting at position 0 and not ending with the code unit 0x0030 (DIGIT ZERO). + fraction = TRY_OR_THROW_OOM(vm, fraction.trim("0"sv, TrimMode::Right)); + // c. Let post be the string-concatenation of the code unit 0x003A (COLON), s, the code unit 0x002E (FULL STOP), and fraction. - // FIXME: Add String::trim() - builder.appendff(":{:02}.{}", seconds, TRY_OR_THROW_OOM(vm, String::from_utf8(TRY_OR_THROW_OOM(vm, String::formatted("{:09}", nanoseconds)).bytes_as_string_view().trim("0"sv, TrimMode::Right)))); + builder.appendff(":{:02}.{}", seconds, fraction); } // 12. Else if seconds ≠ 0, then else if (seconds != 0) {