LibJS: Make PrimitiveString::create() take String/Utf16String by const&

This avoids unnecessary ref-count churn in the case where a string is
already in the VM's string cache.
This commit is contained in:
Andreas Kling 2025-10-04 10:15:57 +02:00 committed by Jelle Raaijmakers
parent 0675c6e3cc
commit 792913e9f7
2 changed files with 4 additions and 4 deletions

View File

@ -24,7 +24,7 @@ namespace JS {
GC_DEFINE_ALLOCATOR(PrimitiveString);
GC_DEFINE_ALLOCATOR(RopeString);
GC::Ref<PrimitiveString> PrimitiveString::create(VM& vm, Utf16String string)
GC::Ref<PrimitiveString> PrimitiveString::create(VM& vm, Utf16String const& string)
{
if (string.is_empty())
return vm.empty_string();
@ -53,7 +53,7 @@ GC::Ref<PrimitiveString> PrimitiveString::create(VM& vm, Utf16FlyString const& s
return create(vm, string.to_utf16_string());
}
GC::Ref<PrimitiveString> PrimitiveString::create(VM& vm, String string)
GC::Ref<PrimitiveString> PrimitiveString::create(VM& vm, String const& string)
{
if (string.is_empty())
return vm.empty_string();

View File

@ -25,11 +25,11 @@ class JS_API PrimitiveString : public Cell {
GC_DECLARE_ALLOCATOR(PrimitiveString);
public:
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, Utf16String);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, Utf16String const&);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, Utf16View const&);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, Utf16FlyString const&);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, String);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, String const&);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, StringView);
[[nodiscard]] static GC::Ref<PrimitiveString> create(VM&, FlyString const&);