From 79e81e8a15270a85f05a98bfca38702f44fcf586 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sat, 14 Jan 2023 10:30:18 -0500 Subject: [PATCH] LibJS: Add ThrowableStringBuilder::to_string to create a new String This wraps around the base class method to throw an OOM completion. --- .../Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp | 9 +++++++++ .../Libraries/LibJS/Runtime/ThrowableStringBuilder.h | 1 + 2 files changed, 10 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp b/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp index 91bee7aadf..763a0513db 100644 --- a/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp +++ b/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp @@ -42,4 +42,13 @@ ThrowCompletionOr ThrowableStringBuilder::append_code_point(u32 value) return {}; } +ThrowCompletionOr ThrowableStringBuilder::to_string() const +{ + auto result = StringBuilder::to_string(); + if (result.is_error()) + return m_vm.throw_completion(ErrorType::NotEnoughMemoryToAllocate, length()); + + return result.release_value(); +} + } diff --git a/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.h b/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.h index 08ca7eb2fa..39d5e91054 100644 --- a/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.h +++ b/Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.h @@ -23,6 +23,7 @@ public: ThrowCompletionOr append(StringView); ThrowCompletionOr append(Utf16View const&); ThrowCompletionOr append_code_point(u32 value); + ThrowCompletionOr to_string() const; private: VM& m_vm;