LibJS: Add a PrimitiveString::create overload for FlyString

This is to disambiguate this type from the StringView overload.
This commit is contained in:
Timothy Flynn 2023-03-18 10:57:12 -04:00 committed by Jelle Raaijmakers
parent 2671d4280f
commit 0d0b87fd46
Notes: sideshowbarker 2024-07-17 09:49:33 +09:00
2 changed files with 7 additions and 0 deletions

View file

@ -6,6 +6,7 @@
*/
#include <AK/CharacterTypes.h>
#include <AK/FlyString.h>
#include <AK/Utf16View.h>
#include <AK/Utf8View.h>
#include <LibJS/Runtime/AbstractOperations.h>
@ -188,6 +189,11 @@ NonnullGCPtr<PrimitiveString> PrimitiveString::create(VM& vm, String string)
return *new_string;
}
NonnullGCPtr<PrimitiveString> PrimitiveString::create(VM& vm, FlyString const& string)
{
return create(vm, string.to_string());
}
ThrowCompletionOr<NonnullGCPtr<PrimitiveString>> PrimitiveString::create(VM& vm, StringView string)
{
return create(vm, TRY_OR_THROW_OOM(vm, String::from_utf8(string)));

View file

@ -25,6 +25,7 @@ class PrimitiveString final : public Cell {
public:
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, Utf16String);
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, String);
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, FlyString const&);
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, DeprecatedString);
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, DeprecatedFlyString const&);
[[nodiscard]] static NonnullGCPtr<PrimitiveString> create(VM&, PrimitiveString&, PrimitiveString&);