Просмотр исходного кода

LibJS: Add ThrowableStringBuilder::to_string to create a new String

This wraps around the base class method to throw an OOM completion.
Timothy Flynn 2 лет назад
Родитель
Сommit
79e81e8a15

+ 9 - 0
Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.cpp

@@ -42,4 +42,13 @@ ThrowCompletionOr<void> ThrowableStringBuilder::append_code_point(u32 value)
     return {};
 }
 
+ThrowCompletionOr<String> ThrowableStringBuilder::to_string() const
+{
+    auto result = StringBuilder::to_string();
+    if (result.is_error())
+        return m_vm.throw_completion<InternalError>(ErrorType::NotEnoughMemoryToAllocate, length());
+
+    return result.release_value();
+}
+
 }

+ 1 - 0
Userland/Libraries/LibJS/Runtime/ThrowableStringBuilder.h

@@ -23,6 +23,7 @@ public:
     ThrowCompletionOr<void> append(StringView);
     ThrowCompletionOr<void> append(Utf16View const&);
     ThrowCompletionOr<void> append_code_point(u32 value);
+    ThrowCompletionOr<String> to_string() const;
 
 private:
     VM& m_vm;