diff --git a/packages/svelte/src/compiler/phases/3-transform/shared/transform-async.js b/packages/svelte/src/compiler/phases/3-transform/shared/transform-async.js
index b77ecacea7..88d8e8b982 100644
--- a/packages/svelte/src/compiler/phases/3-transform/shared/transform-async.js
+++ b/packages/svelte/src/compiler/phases/3-transform/shared/transform-async.js
@@ -77,8 +77,15 @@ export function transform_body(program, awaited_statements, runner, transform, h
}
if (node.type === 'VariableDeclaration') {
- for (const declarator of node.declarations) {
- push(declarator);
+ if (
+ !awaited &&
+ node.declarations.every((declarator) => !awaited_statements.get(declarator)?.has_await)
+ ) {
+ out.push(/** @type {ESTree.VariableDeclaration} */ (transform(node)));
+ } else {
+ for (const declarator of node.declarations) {
+ push(declarator);
+ }
}
} else {
push(node);
diff --git a/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/client/index.svelte.js
index 17a32e4cc7..4045ad4bf4 100644
--- a/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/client/index.svelte.js
@@ -3,9 +3,9 @@ import 'svelte/internal/flags/async';
import * as $ from 'svelte/internal/client';
export default function Async_each_hoisting($$anchor) {
- var first = Promise.resolve(1);
- var second = Promise.resolve(2);
- var third = Promise.resolve(3);
+ const first = Promise.resolve(1);
+ const second = Promise.resolve(2);
+ const third = Promise.resolve(3);
var fragment = $.comment();
var node = $.first_child(fragment);
diff --git a/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/server/index.svelte.js
index 10fa06e860..43fe9414eb 100644
--- a/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/async-each-hoisting/_expected/server/index.svelte.js
@@ -2,9 +2,9 @@ import 'svelte/internal/flags/async';
import * as $ from 'svelte/internal/server';
export default function Async_each_hoisting($$renderer) {
- var first = Promise.resolve(1);
- var second = Promise.resolve(2);
- var third = Promise.resolve(3);
+ const first = Promise.resolve(1);
+ const second = Promise.resolve(2);
+ const third = Promise.resolve(3);
$$renderer.push(``);
diff --git a/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/client/index.svelte.js
index a78d8911cd..52820c1652 100644
--- a/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/client/index.svelte.js
@@ -4,8 +4,8 @@ import * as $ from 'svelte/internal/client';
var root = $.from_html(` `, 1);
export default function Await_block_scope($$anchor) {
- var counter = $.proxy({ count: 0 });
- var promise = $.derived(() => Promise.resolve(counter));
+ let counter = $.proxy({ count: 0 });
+ const promise = $.derived(() => Promise.resolve(counter));
function increment() {
counter.count += 1;
diff --git a/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/server/index.svelte.js
index 98ca5214ec..e9bf215dcd 100644
--- a/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/await-block-scope/_expected/server/index.svelte.js
@@ -1,8 +1,8 @@
import * as $ from 'svelte/internal/server';
export default function Await_block_scope($$renderer) {
- var counter = { count: 0 };
- var promise = Promise.resolve(counter);
+ let counter = { count: 0 };
+ const promise = Promise.resolve(counter);
function increment() {
counter.count += 1;
diff --git a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js
index f3850d1471..a87a356d58 100644
--- a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/client/index.svelte.js
@@ -13,8 +13,8 @@ const snippet = ($$anchor) => {
var root = $.from_html(` `, 1);
export default function Bind_component_snippet($$anchor) {
- var value = $.state('');
- var _snippet = snippet;
+ let value = $.state('');
+ const _snippet = snippet;
var fragment = root();
var node = $.first_child(fragment);
diff --git a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js
index 8fb72c3da0..2ef3a429ba 100644
--- a/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/bind-component-snippet/_expected/server/index.svelte.js
@@ -6,8 +6,8 @@ function snippet($$renderer) {
}
export default function Bind_component_snippet($$renderer) {
- var value = '';
- var _snippet = snippet;
+ let value = '';
+ const _snippet = snippet;
let $$settled = true;
let $$inner_renderer;
diff --git a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js
index 6fb7cbf183..d84b674f88 100644
--- a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/client/main.svelte.js
@@ -4,10 +4,10 @@ import * as $ from 'svelte/internal/client';
var root = $.from_html(`
`, 3);
export default function Main($$anchor) {
- var // needs to be a snapshot test because jsdom does auto-correct the attribute casing
- x = 'test';
+ // needs to be a snapshot test because jsdom does auto-correct the attribute casing
+ let x = 'test';
- var y = () => 'test';
+ let y = () => 'test';
var fragment = root();
var div = $.first_child(fragment);
diff --git a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/server/main.svelte.js b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/server/main.svelte.js
index b14eca288a..1ff8402974 100644
--- a/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/server/main.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/dynamic-attributes-casing/_expected/server/main.svelte.js
@@ -1,10 +1,10 @@
import * as $ from 'svelte/internal/server';
export default function Main($$renderer) {
- var // needs to be a snapshot test because jsdom does auto-correct the attribute casing
- x = 'test';
+ // needs to be a snapshot test because jsdom does auto-correct the attribute casing
+ let x = 'test';
- var y = () => 'test';
+ let y = () => 'test';
$$renderer.push(` `);
}
\ No newline at end of file
diff --git a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js
index ff1ca35dac..218951b836 100644
--- a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/client/index.svelte.js
@@ -2,13 +2,13 @@ import 'svelte/internal/disclose-version';
import * as $ from 'svelte/internal/client';
export default function Function_prop_no_getter($$anchor) {
- var count = $.state(0);
+ let count = $.state(0);
function onmouseup() {
$.set(count, $.get(count) + 2);
}
- var plusOne = (num) => num + 1;
+ const plusOne = (num) => num + 1;
Button($$anchor, {
onmousedown: () => $.set(count, $.get(count) + 1),
diff --git a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js
index 9dc5acb576..855ae30d21 100644
--- a/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/function-prop-no-getter/_expected/server/index.svelte.js
@@ -1,13 +1,13 @@
import * as $ from 'svelte/internal/server';
export default function Function_prop_no_getter($$renderer) {
- var count = 0;
+ let count = 0;
function onmouseup() {
count += 2;
}
- var plusOne = (num) => num + 1;
+ const plusOne = (num) => num + 1;
Button($$renderer, {
onmousedown: () => count += 1,
diff --git a/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/client/index.svelte.js
index 3cc5c882e1..7025c788be 100644
--- a/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/client/index.svelte.js
@@ -4,8 +4,8 @@ import * as $ from 'svelte/internal/client';
var root = $.from_html(` `, 1);
export default function Nullish_coallescence_omittance($$anchor) {
- var name = 'world';
- var count = $.state(0);
+ let name = 'world';
+ let count = $.state(0);
var fragment = root();
var h1 = $.first_child(fragment);
diff --git a/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/server/index.svelte.js
index 5f979a8a69..a7e580acb8 100644
--- a/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/nullish-coallescence-omittance/_expected/server/index.svelte.js
@@ -1,8 +1,8 @@
import * as $ from 'svelte/internal/server';
export default function Nullish_coallescence_omittance($$renderer) {
- var name = 'world';
- var count = 0;
+ let name = 'world';
+ let count = 0;
$$renderer.push(`
Hello, world!
123
Hello, world
`);
}
\ No newline at end of file
diff --git a/packages/svelte/tests/snapshot/samples/props-identifier/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/props-identifier/_expected/client/index.svelte.js
index 2844643b45..5a46b9bbef 100644
--- a/packages/svelte/tests/snapshot/samples/props-identifier/_expected/client/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/props-identifier/_expected/client/index.svelte.js
@@ -4,7 +4,7 @@ import * as $ from 'svelte/internal/client';
export default function Props_identifier($$anchor, $$props) {
$.push($$props, true);
- var props = $.rest_props($$props, ['$$slots', '$$events', '$$legacy']);
+ let props = $.rest_props($$props, ['$$slots', '$$events', '$$legacy']);
$$props.a;
props[a];
diff --git a/packages/svelte/tests/snapshot/samples/props-identifier/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/props-identifier/_expected/server/index.svelte.js
index e021288345..6db24ac621 100644
--- a/packages/svelte/tests/snapshot/samples/props-identifier/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/props-identifier/_expected/server/index.svelte.js
@@ -2,7 +2,7 @@ import * as $ from 'svelte/internal/server';
export default function Props_identifier($$renderer, $$props) {
$$renderer.component(($$renderer) => {
- var { $$slots, $$events, ...props } = $$props;
+ let { $$slots, $$events, ...props } = $$props;
props.a;
props[a];
diff --git a/packages/svelte/tests/snapshot/samples/skip-static-subtree/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/skip-static-subtree/_expected/server/index.svelte.js
index 56af168518..7a9f6193d7 100644
--- a/packages/svelte/tests/snapshot/samples/skip-static-subtree/_expected/server/index.svelte.js
+++ b/packages/svelte/tests/snapshot/samples/skip-static-subtree/_expected/server/index.svelte.js
@@ -1,7 +1,7 @@
import * as $ from 'svelte/internal/server';
export default function Skip_static_subtree($$renderer, $$props) {
- var { title, content } = $$props;
+ let { title, content } = $$props;
$$renderer.push(`