Skip to content

Regression: Awaiting inside an async function assigned to const broken since 5.39.0 #16809

@KieranP

Description

@KieranP

Describe the bug

Prior to 5.39.0, awaiting an async function inside a function assigned to a @const worked without issue. From 5.39.0 onward, even though console logging shows that both the parent and child functions are getting called with the right values, the actual component doesn't seem to be updating/rerendering, as if the activeTab assignment did nothing.

Things that seem to change behavior:

  • Moving the await doSomething() before the activeTab = tab.id fixes it (but in our case, doSomething actually relies on activeTab being changed first, so this doesn't work for us)
  • Making switchTab a function in the script section (instead of inline) and then using <button onclick={() => switchTab(tab)}> fixed it, this is what we have done to fix things on our end

Reproduction

Works on 5.38.10: https://svelte.dev/playground/9edd553009364fc7b6f6031a756b7acf?version=5.38.10
Broken from 5.39.0: https://svelte.dev/playground/9edd553009364fc7b6f6031a756b7acf?version=5.39.0
Broken in latest: https://svelte.dev/playground/9edd553009364fc7b6f6031a756b7acf?version=latest

(switch from Tab 1 to 2 to 3. Working version changes text all the time, broken version gets stuck after one click)

Logs

System Info

System:
    OS: macOS 15.6.1
    CPU: (14) arm64 Apple M4 Pro
    Memory: 534.53 MB / 24.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 22.15.1 - ~/.asdf/installs/nodejs/22.15.1/bin/node
    Yarn: 1.22.22 - ~/.asdf/installs/nodejs/22.15.1/bin/yarn
    npm: 10.9.2 - ~/.asdf/plugins/nodejs/shims/npm
    pnpm: 10.17.0 - ~/.asdf/installs/nodejs/22.15.1/bin/pnpm
  Browsers:
    Brave Browser: 140.1.82.170
    Chrome: 140.0.7339.186
    Safari: 18.6
  npmPackages:
    svelte: ^5.39.3 => 5.39.3

Severity

annoyance

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions