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(`

${$.escape(title)}

we don't need to traverse these nodes

or

these

ones

${$.html(content)}

these

trailing

nodes

can

be

completely

ignored

`, 1); export default function State_proxy_literal($$anchor) { - var str = $.state(''); - var tpl = $.state(``); + let str = $.state(''); + let tpl = $.state(``); function reset() { $.set(str, ''); diff --git a/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js index 91efa4a946..4ab7f90c58 100644 --- a/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/state-proxy-literal/_expected/server/index.svelte.js @@ -1,8 +1,8 @@ import * as $ from 'svelte/internal/server'; export default function State_proxy_literal($$renderer) { - var str = ''; - var tpl = ``; + let str = ''; + let tpl = ``; function reset() { str = ''; diff --git a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js index 3b94b9533e..2270005ee0 100644 --- a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/client/index.svelte.js @@ -2,7 +2,7 @@ import 'svelte/internal/disclose-version'; import * as $ from 'svelte/internal/client'; export default function Svelte_element($$anchor, $$props) { - var tag = $.prop($$props, 'tag', 3, 'hr'); + let tag = $.prop($$props, 'tag', 3, 'hr'); var fragment = $.comment(); var node = $.first_child(fragment); diff --git a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/server/index.svelte.js index c9e24b3190..fc97686bb1 100644 --- a/packages/svelte/tests/snapshot/samples/svelte-element/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/svelte-element/_expected/server/index.svelte.js @@ -1,7 +1,7 @@ import * as $ from 'svelte/internal/server'; export default function Svelte_element($$renderer, $$props) { - var { tag = 'hr' } = $$props; + let { tag = 'hr' } = $$props; $.element($$renderer, tag); } \ No newline at end of file diff --git a/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/client/index.svelte.js b/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/client/index.svelte.js index de05f6af20..464435cb0a 100644 --- a/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/client/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/client/index.svelte.js @@ -4,8 +4,8 @@ import * as $ from 'svelte/internal/client'; var root = $.from_html(`

`); export default function Text_nodes_deriveds($$anchor) { - var count1 = 0; - var count2 = 0; + let count1 = 0; + let count2 = 0; function text1() { return count1; diff --git a/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/server/index.svelte.js b/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/server/index.svelte.js index 424fb44bf8..f886f9fbe3 100644 --- a/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/server/index.svelte.js +++ b/packages/svelte/tests/snapshot/samples/text-nodes-deriveds/_expected/server/index.svelte.js @@ -1,8 +1,8 @@ import * as $ from 'svelte/internal/server'; export default function Text_nodes_deriveds($$renderer) { - var count1 = 0; - var count2 = 0; + let count1 = 0; + let count2 = 0; function text1() { return count1;