浏览代码

LibJS: Add a PrimitiveString::create overload for FlyString

This is to disambiguate this type from the StringView overload.
Timothy Flynn 2 年之前
父节点
当前提交
0d0b87fd46

+ 6 - 0
Userland/Libraries/LibJS/Runtime/PrimitiveString.cpp

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

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

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