summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/url_search_params.ts5
-rw-r--r--js/url_search_params_test.ts8
2 files changed, 13 insertions, 0 deletions
diff --git a/js/url_search_params.ts b/js/url_search_params.ts
index 9f4621b7b..13b272476 100644
--- a/js/url_search_params.ts
+++ b/js/url_search_params.ts
@@ -19,6 +19,11 @@ export class URLSearchParams {
return;
}
+ if (init instanceof URLSearchParams) {
+ this.params = init.params;
+ return;
+ }
+
// Overload: record<USVString, USVString>
for (const key of Object.keys(init)) {
this.append(key, init[key]);
diff --git a/js/url_search_params_test.ts b/js/url_search_params_test.ts
index 8da11382f..0bce1166c 100644
--- a/js/url_search_params_test.ts
+++ b/js/url_search_params_test.ts
@@ -22,6 +22,14 @@ test(function urlSearchParamsInitRecord(): void {
assertEquals(searchParams.toString(), "a=54&b=true");
});
+test(function urlSearchParamsInit(): void {
+ const params1 = new URLSearchParams("a=b");
+ assertEquals(params1.toString(), "a=b");
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const params2 = new URLSearchParams(params1 as any);
+ assertEquals(params2.toString(), "a=b");
+});
+
test(function urlSearchParamsAppendSuccess(): void {
const searchParams = new URLSearchParams();
searchParams.append("a", "true");