From 9ce4f4b364f77d275b4d7a408063aa2ade9f941e Mon Sep 17 00:00:00 2001 From: Rory Duncan Date: Fri, 19 Dec 2025 05:25:34 -0800 Subject: [PATCH 1/3] Add support for SearchParams.has(name, value) overload --- packages/kit/src/utils/url.js | 4 ++-- packages/kit/src/utils/url.spec.js | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/kit/src/utils/url.js b/packages/kit/src/utils/url.js index 7ea2c9d100f1..43713a4f99fa 100644 --- a/packages/kit/src/utils/url.js +++ b/packages/kit/src/utils/url.js @@ -98,9 +98,9 @@ export function make_trackable(url, callback, search_params_callback, allow_hash value: new Proxy(tracked.searchParams, { get(obj, key) { if (key === 'get' || key === 'getAll' || key === 'has') { - return (/**@type {string}*/ param) => { + return (/** @type {string} */ param, /** @type {string[]} */ ...rest) => { search_params_callback(param); - return obj[key](param); + return obj[key](param, ...rest); }; } diff --git a/packages/kit/src/utils/url.spec.js b/packages/kit/src/utils/url.spec.js index 55865c413468..4ad5244833f2 100644 --- a/packages/kit/src/utils/url.spec.js +++ b/packages/kit/src/utils/url.spec.js @@ -172,6 +172,29 @@ describe('make_trackable', (test) => { url.searchParams.entries(); assert.ok(tracked); }); + + test('tracks search params when using has(name, value) overload', () => { + let tracked = false; + const tracked_search_params = new Set(); + const url = make_trackable( + new URL('https://svelte.dev/docs/kit?foo=1&foo=2'), + () => { + tracked = true; + }, + (search_param) => { + tracked_search_params.add(search_param); + } + ); + + // has(name, value) should track the param and return correct result + assert.equal(url.searchParams.has('foo', '1'), true); + assert.ok(!tracked); + assert.ok(tracked_search_params.has('foo')); + + // value argument should be forwarded correctly (not just checking name existence) + assert.equal(url.searchParams.has('foo', '3'), false); + assert.ok(!tracked); + }); }); describe('disable_search', (test) => { From 46020e43bf12689855ac0c4f19be900ceeca0273 Mon Sep 17 00:00:00 2001 From: Rory Duncan Date: Fri, 19 Dec 2025 06:14:26 -0800 Subject: [PATCH 2/3] generate changeset --- .changeset/sharp-tires-work.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/sharp-tires-work.md diff --git a/.changeset/sharp-tires-work.md b/.changeset/sharp-tires-work.md new file mode 100644 index 000000000000..8a5bcb17feb6 --- /dev/null +++ b/.changeset/sharp-tires-work.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: support for SearchParams.has(name, value) overload From e5b0d43bc6c2e206f233629caac035996cc46d5a Mon Sep 17 00:00:00 2001 From: Elliott Johnson Date: Tue, 23 Dec 2025 19:45:32 -0700 Subject: [PATCH 3/3] Update .changeset/sharp-tires-work.md --- .changeset/sharp-tires-work.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sharp-tires-work.md b/.changeset/sharp-tires-work.md index 8a5bcb17feb6..4e5124f78c18 100644 --- a/.changeset/sharp-tires-work.md +++ b/.changeset/sharp-tires-work.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -fix: support for SearchParams.has(name, value) overload +fix: support for `URLSearchParams.has(name, value)` overload