1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:58:11 +00:00

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
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&);