Skip to content

Commit 4a5a0b1

Browse files
authored
fix: ensure onMount correctly fires when new expressions are used (#14049)
* fix: ensure onMount correctly fires when used externally * fix root context * fix root context * revert * alternative fix
1 parent cdec39a commit 4a5a0b1

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

.changeset/early-hounds-float.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: ensure onMount correctly fires when new expressions are used

packages/svelte/src/compiler/phases/2-analyze/visitors/NewExpression.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ export function NewExpression(node, context) {
1111
w.perf_avoid_inline_class(node);
1212
}
1313

14+
context.state.analysis.needs_context = true;
15+
1416
context.next();
1517
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { test } from '../../test';
2+
3+
export default test({
4+
async test({ assert, logs }) {
5+
assert.deepEqual(logs, ['mounted']);
6+
}
7+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script module>
2+
import { onMount } from 'svelte';
3+
4+
class MyClass {
5+
constructor() {
6+
onMount(() => console.log('mounted'));
7+
}
8+
}
9+
</script>
10+
11+
<script>
12+
new MyClass();
13+
</script>

0 commit comments

Comments
 (0)