Skip to content

Commit fd5cfd7

Browse files
authored
fix: correctly set filename on HMR wrappers (#12543)
* fix: correctly set filename on HMR wrappers * changeset
1 parent 346cf96 commit fd5cfd7

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

.changeset/tender-suns-love.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: correctly set filename on HMR wrappers

packages/svelte/src/compiler/phases/3-transform/client/transform-client.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,16 @@ export function client_component(source, analysis, options) {
439439

440440
const hmr = b.block([
441441
b.const(b.id('s'), b.call('$.source', b.id(analysis.name))),
442-
b.const(b.id('filename'), b.member(b.id(analysis.name), b.id('filename'))),
442+
b.const(b.id('$$filename'), b.member(b.id(analysis.name), b.id('$.FILENAME'), true)),
443443
b.const(b.id('$$original'), b.id(analysis.name)),
444444
b.stmt(b.assignment('=', b.id(analysis.name), b.call('$.hmr', b.id('s')))),
445-
b.stmt(b.assignment('=', b.member(b.id(analysis.name), b.id('filename')), b.id('filename'))),
445+
b.stmt(
446+
b.assignment(
447+
'=',
448+
b.member(b.id(analysis.name), b.id('$.FILENAME'), true),
449+
b.id('$$filename')
450+
)
451+
),
446452
// Assign the original component to the wrapper so we can use it on hot reload patching,
447453
// else we would call the HMR function two times
448454
b.stmt(

packages/svelte/tests/snapshot/samples/hmr/_expected/client/index.svelte.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ function Hmr($$anchor) {
1111

1212
if (import.meta.hot) {
1313
const s = $.source(Hmr);
14-
const filename = Hmr.filename;
14+
const $$filename = Hmr[$.FILENAME];
1515
const $$original = Hmr;
1616

1717
Hmr = $.hmr(s);
18-
Hmr.filename = filename;
18+
Hmr[$.FILENAME] = $$filename;
1919
Hmr[$.ORIGINAL] = $$original;
2020

2121
import.meta.hot.accept((module) => {

0 commit comments

Comments
 (0)