diff options
Diffstat (limited to 'src/bun.js/bindings/URLSearchParams.cpp')
-rw-r--r-- | src/bun.js/bindings/URLSearchParams.cpp | 24 |
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)) |