pull/18791/merge
cui fliter 22 hours ago committed by GitHub
commit 3937616e2a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: avoid tracking SvelteURLSearchParams during URL updates

@ -42,7 +42,7 @@ export class SvelteURLSearchParams extends URLSearchParams {
if (!this.#url || this.#updating) return;
this.#updating = true;
const search = this.toString();
const search = super.toString();
this.#url.search = search && `?${search}`;
this.#updating = false;

@ -115,6 +115,24 @@ test('url.searchParams', () => {
cleanup();
});
test('url.searchParams writes do not create a reactive dependency', () => {
const url = new SvelteURL('https://svelte.dev');
let runs = 0;
const cleanup = effect_root(() => {
render_effect(() => {
runs += 1;
url.searchParams.set('foo', 'bar');
});
});
flushSync();
assert.equal(runs, 1);
cleanup();
});
test('url.searchParams.set updates url when duplicate values collapse to the same joined string', () => {
const url = new SvelteURL('https://svelte.dev?a=ab&a=c');
const log: any = [];

Loading…
Cancel
Save