summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2023-01-27 14:38:48 -0500
committerLinus Groh <mail@linusgroh.de>2023-01-28 00:13:46 +0000
commit9e4dbea0ee26fab3d965ebeef84833698b8af59b (patch)
tree4ae80976de322e270ad170c35bd6d74a95157846 /Userland/Libraries
parentc59268d15b4c04449a649909f75a24202eb9d8d2 (diff)
downloadserenity-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.cpp6
-rw-r--r--Userland/Libraries/LibJS/Runtime/Temporal/TimeZone.cpp7
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) {