aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/URLSearchParams.cpp
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-02-13 03:05:26 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-02-13 03:05:26 -0800
commit0db8cdf4e9e79214410454f9225b14f2765bc3c5 (patch)
treee8fa1532fd335cbac4ea6922a63b099ede7b2e87 /src/bun.js/bindings/URLSearchParams.cpp
parent246db4fed0f7cae0e07f27d538c162a80ab07eaf (diff)
downloadbun-0db8cdf4e9e79214410454f9225b14f2765bc3c5.tar.gz
bun-0db8cdf4e9e79214410454f9225b14f2765bc3c5.tar.zst
bun-0db8cdf4e9e79214410454f9225b14f2765bc3c5.zip
Fixes https://github.com/oven-sh/bun/issues/1456
Diffstat (limited to 'src/bun.js/bindings/URLSearchParams.cpp')
-rw-r--r--src/bun.js/bindings/URLSearchParams.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bun.js/bindings/URLSearchParams.cpp b/src/bun.js/bindings/URLSearchParams.cpp
index 9c168b4f6..2b0ffef67 100644
--- a/src/bun.js/bindings/URLSearchParams.cpp
+++ b/src/bun.js/bindings/URLSearchParams.cpp
@@ -26,9 +26,33 @@
#include "DOMURL.h"
#include "wtf/URLParser.h"
+#include "helpers.h"
+#include "JSURLSearchParams.h"
namespace WebCore {
+extern "C" JSC::EncodedJSValue URLSearchParams__create(JSDOMGlobalObject* globalObject, const ZigString* input)
+{
+ String str = Zig::toString(*input);
+ auto result = URLSearchParams::create(str, nullptr);
+ return JSC::JSValue::encode(WebCore::toJSNewlyCreated(globalObject, globalObject, WTFMove(result)));
+}
+
+extern "C" WebCore::URLSearchParams* URLSearchParams__fromJS(JSC::EncodedJSValue value)
+{
+ return WebCoreCast<WebCore::JSURLSearchParams, WebCore::URLSearchParams>(value);
+}
+
+// callback accepting a void* and a const ZigString*, returning void
+typedef void (*URLSearchParams__toStringCallback)(void* ctx, const ZigString* str);
+
+extern "C" void URLSearchParams__toString(WebCore::URLSearchParams* urlSearchParams, void* ctx, URLSearchParams__toStringCallback callback)
+{
+ String str = urlSearchParams->toString();
+ auto zig = Zig::toZigString(str);
+ callback(ctx, &zig);
+}
+
URLSearchParams::URLSearchParams(const String& init, DOMURL* associatedURL)
: m_associatedURL(associatedURL)
, m_pairs(init.startsWith('?') ? WTF::URLParser::parseURLEncodedForm(StringView(init).substring(1)) : WTF::URLParser::parseURLEncodedForm(init))