diff options
author | Timothy Flynn <trflynn89@pm.me> | 2023-01-27 14:38:48 -0500 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2023-01-28 00:13:46 +0000 |
commit | 9e4dbea0ee26fab3d965ebeef84833698b8af59b (patch) | |
tree | 4ae80976de322e270ad170c35bd6d74a95157846 /Userland/Libraries | |
parent | c59268d15b4c04449a649909f75a24202eb9d8d2 (diff) | |
download | serenity-9e4dbea0ee26fab3d965ebeef84833698b8af59b.zip |
LibJS: Use String::join and String::trim in Temporal AOs
Diffstat (limited to 'Userland/Libraries')
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/Temporal/AbstractOperations.cpp | 6 | ||||
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp | 7 |
2 files changed, 7 insertions, 6 deletions
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<String> 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<Object*> prepare_temporal_fields(VM& vm, Object const& fields, // 4. If requiredFields is partial and any is false, then if (required_fields.has<PrepareTemporalFieldsPartial>() && !any) { // a. Throw a TypeError exception. - // FIXME: Add & use String::join() - return vm.throw_completion<TypeError>(ErrorType::TemporalObjectMustHaveOneOf, DeprecatedString::join(", "sv, field_names)); + return vm.throw_completion<TypeError>(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<String> 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) { |