diff --git a/.changeset/lemon-mails-guess.md b/.changeset/lemon-mails-guess.md new file mode 100644 index 0000000000..9156bac953 --- /dev/null +++ b/.changeset/lemon-mails-guess.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: take async into consideration for dev delegated handlers diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/events.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/events.js index 9485a33b3d..f01bf08694 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/events.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/events.js @@ -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 ); } diff --git a/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/_config.js b/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/_config.js new file mode 100644 index 0000000000..eb5b2a1675 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/_config.js @@ -0,0 +1,9 @@ +import { flushSync } from 'svelte'; +import { test } from '../../test'; + +export default test({ + compileOptions: { + dev: true + }, + async test() {} +}); diff --git a/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/main.svelte b/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/main.svelte new file mode 100644 index 0000000000..bffcad6059 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/event-handler-async-delegated/main.svelte @@ -0,0 +1,8 @@ +