From d01b746d8810890250995084dcd7b97f870286b1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 4 Oct 2020 17:36:12 +0200 Subject: [PATCH] LibJS: Add StringOrSymbol constructor that takes a FlyString This avoids refcount churn from implicit conversion in some places. --- Libraries/LibJS/Runtime/StringOrSymbol.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Libraries/LibJS/Runtime/StringOrSymbol.h b/Libraries/LibJS/Runtime/StringOrSymbol.h index 6939194183..bb4aba3e7a 100644 --- a/Libraries/LibJS/Runtime/StringOrSymbol.h +++ b/Libraries/LibJS/Runtime/StringOrSymbol.h @@ -26,6 +26,7 @@ #pragma once +#include #include #include #include @@ -58,6 +59,13 @@ public: static_cast(m_ptr)->ref(); } + StringOrSymbol(const FlyString& string) + : m_ptr(string.impl()) + { + ASSERT(!string.is_null()); + static_cast(m_ptr)->ref(); + } + ~StringOrSymbol() { if (is_string())