fix: take async into consideration for dev delegated handlers (#17710)

Closes #17709

### Before submitting the PR, please make sure you do the following

- [x] It's really useful if your PR references an issue where it is
discussed ahead of time. In many cases, features are absent for a
reason. For large changes, please create an RFC:
https://github.com/sveltejs/rfcs
- [x] Prefix your PR title with `feat:`, `fix:`, `chore:`, or `docs:`.
- [x] This message body should clearly illustrate what problems it
solves.
- [x] Ideally, include a test that fails without this PR but passes with
it.
- [x] If this PR changes code within `packages/svelte/src`, add a
changeset (`npx changeset`).

### Tests and linting

- [x] Run the tests with `pnpm test` and lint the project with `pnpm
lint`
pull/17711/head
Paolo Ricciuti 3 days ago committed by GitHub
parent 7299ffc39f
commit 01f1937a98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: take async into consideration for dev delegated handlers

@ -70,7 +70,8 @@ export function build_event(context, event_name, handler, capture, passive, dele
fn = b.function(
b.id(name),
handler.params,
handler.body.type === 'BlockStatement' ? handler.body : b.block([b.return(handler.body)])
handler.body.type === 'BlockStatement' ? handler.body : b.block([b.return(handler.body)]),
handler.async
);
}

@ -0,0 +1,9 @@
import { flushSync } from 'svelte';
import { test } from '../../test';
export default test({
compileOptions: {
dev: true
},
async test() {}
});

@ -0,0 +1,8 @@
<button
type="button"
onclick={async () => {
await Promise.resolve();
}}
>
Button
</button>
Loading…
Cancel
Save