From 688a4e49b8d82bb344d7ad5d635e97913d46e63a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 28 Sep 2026 16:17:40 -0400 Subject: [PATCH] fix: preserve location information for `await` wrappers (#18859) Helps with code coverage tools: https://github.com/sveltejs/esrap/pull/124 --- .changeset/major-roses-help.md | 5 +++++ .../phases/3-transform/client/visitors/AwaitExpression.js | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/major-roses-help.md diff --git a/.changeset/major-roses-help.md b/.changeset/major-roses-help.md new file mode 100644 index 0000000000..c3c06792a4 --- /dev/null +++ b/.changeset/major-roses-help.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: preserve location information for `await` wrappers diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js index 9fcc33287c..a3602bbce5 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitExpression.js @@ -18,7 +18,8 @@ export function AwaitExpression(node, context) { // in dev, note which values are read inside a reactive expression, // but don't track them else if (dev && !is_ignored(node, 'await_reactivity_loss')) { - return b.call(b.await(b.call('$.track_reactivity_loss', argument))); + // don't use b.await here, this way we preserve location information + return b.call({ ...node, argument: b.call('$.track_reactivity_loss', argument) }); } return argument === node.argument ? node : { ...node, argument };