Skip to content

fix: SvelteURL search setter uses unnormalized value#17828

Merged
Rich-Harris merged 1 commit intosveltejs:mainfrom
MathiasWP:fix/svelte-url-search-normalization
Feb 27, 2026
Merged

fix: SvelteURL search setter uses unnormalized value#17828
Rich-Harris merged 1 commit intosveltejs:mainfrom
MathiasWP:fix/svelte-url-search-normalization

Conversation

@MathiasWP
Copy link
Copy Markdown
Contributor

Summary

  • The SvelteURL search setter stored the raw input value instead of super.search, unlike every other setter in the class
  • This caused url.search to return incorrect values when the URL API normalizes the input (e.g. adding the ? prefix, or stripping a lone ?)
  • For example: url.search = 'foo=bar' would return 'foo=bar' instead of '?foo=bar'

Test plan

  • Added url.search normalizes value test covering:
    • Setting search without ? prefix
    • Setting search with ? prefix (existing behavior)
    • Setting search to lone ? (normalized to "")
  • All existing reactivity tests pass (46/46)

🤖 Generated with Claude Code

The search setter stored the raw input `value` instead of `super.search`,
unlike every other setter in SvelteURL. This caused `url.search` to return
incorrect values when the URL API normalizes the input (e.g. adding the `?`
prefix or stripping a lone `?`).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Feb 27, 2026

🦋 Changeset detected

Latest commit: a9d558f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
svelte Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@svelte-docs-bot
Copy link
Copy Markdown

Copy link
Copy Markdown
Member

@Rich-Harris Rich-Harris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@Rich-Harris Rich-Harris merged commit 361b32c into sveltejs:main Feb 27, 2026
17 of 18 checks passed
@github-actions github-actions Bot mentioned this pull request Feb 27, 2026
Rich-Harris pushed a commit that referenced this pull request Feb 27, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## svelte@5.53.6

### Patch Changes

- perf: optimize parser hot paths for faster compilation
([#17811](#17811))

- fix: `SvelteMap` incorrectly handles keys with `undefined` values
([#17826](#17826))

- fix: SvelteURL `search` setter now returns the normalized value,
matching native URL behavior
([#17828](#17828))

- fix: visit synthetic value node during ssr
([#17824](#17824))

- fix: always case insensitive event handlers during ssr
([#17822](#17822))

- chore: more efficient effect scheduling
([#17808](#17808))

- perf: optimize compiler analysis phase
([#17823](#17823))

- fix: skip redundant batch.apply
([#17816](#17816))

- chore: null out current_batch before committing branches
([#17809](#17809))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants