aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/BunString.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/BunString.cpp')
-rw-r--r--src/bun.js/bindings/BunString.cpp48
1 files changed, 43 insertions, 5 deletions
diff --git a/src/bun.js/bindings/BunString.cpp b/src/bun.js/bindings/BunString.cpp
index f590edd35..4c8ff384e 100644
--- a/src/bun.js/bindings/BunString.cpp
+++ b/src/bun.js/bindings/BunString.cpp
@@ -86,31 +86,69 @@ BunString toString(JSC::JSGlobalObject* globalObject, JSValue value)
return fromJS(globalObject, value);
}
+BunString toStringRef(JSC::JSGlobalObject* globalObject, JSValue value)
+{
+ auto str = value.toWTFString(globalObject);
+ if (str.isEmpty()) {
+ return { BunStringTag::Empty };
+ }
+
+ str.impl()->ref();
+
+ return { BunStringTag::WTFStringImpl, { .wtf = str.impl() } };
+}
+
BunString toString(WTF::String& wtfString)
{
- if (wtfString.length() == 0)
+ if (wtfString.isEmpty())
return { BunStringTag::Empty };
return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } };
}
BunString toString(const WTF::String& wtfString)
{
- if (wtfString.length() == 0)
+ if (wtfString.isEmpty())
return { BunStringTag::Empty };
return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } };
}
BunString toString(WTF::StringImpl* wtfString)
{
- if (wtfString->length() == 0)
+ if (wtfString->isEmpty())
return { BunStringTag::Empty };
return { BunStringTag::WTFStringImpl, { .wtf = wtfString } };
}
+BunString toStringRef(WTF::String& wtfString)
+{
+ if (wtfString.isEmpty())
+ return { BunStringTag::Empty };
+
+ wtfString.impl()->ref();
+ return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } };
+}
+BunString toStringRef(const WTF::String& wtfString)
+{
+ if (wtfString.isEmpty())
+ return { BunStringTag::Empty };
+
+ wtfString.impl()->ref();
+ return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } };
+}
+BunString toStringRef(WTF::StringImpl* wtfString)
+{
+ if (wtfString->isEmpty())
+ return { BunStringTag::Empty };
+
+ wtfString->ref();
+
+ return { BunStringTag::WTFStringImpl, { .wtf = wtfString } };
+}
+
BunString fromString(WTF::String& wtfString)
{
- if (wtfString.length() == 0)
+ if (wtfString.isEmpty())
return { BunStringTag::Empty };
return { BunStringTag::WTFStringImpl, { .wtf = wtfString.impl() } };
@@ -118,7 +156,7 @@ BunString fromString(WTF::String& wtfString)
BunString fromString(WTF::StringImpl* wtfString)
{
- if (wtfString->length() == 0)
+ if (wtfString->isEmpty())
return { BunStringTag::Empty };
return { BunStringTag::WTFStringImpl, { .wtf = wtfString } };