Skip to content

Commit 1366932

Browse files
authored
cleanup a bunch of internal runtime logic (#10446)
1 parent 89123a8 commit 1366932

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

packages/svelte/src/internal/client/runtime.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1091,7 +1091,7 @@ export function mark_subtree_inert(signal, inert, visited_blocks = new Set()) {
10911091
if (type === IF_BLOCK) {
10921092
const condition_effect = block.e;
10931093
if (condition_effect !== null && block !== current_block) {
1094-
mark_subtree_inert(condition_effect, inert);
1094+
mark_subtree_inert(condition_effect, inert, visited_blocks);
10951095
}
10961096
const consequent_effect = block.ce;
10971097
if (consequent_effect !== null && block.v) {

packages/svelte/src/internal/client/transitions.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -649,12 +649,16 @@ export function trigger_transitions(transitions, target_direction, from) {
649649
mark_subtree_inert(effect, false);
650650
} else if (target_direction === 'key') {
651651
if (direction === 'key') {
652-
transition.p = transition.i(/** @type {DOMRect} */ (from));
652+
if (!transition.p) {
653+
transition.p = transition.i(/** @type {DOMRect} */ (from));
654+
}
653655
transition.in();
654656
}
655657
} else {
656658
if (direction === 'out' || direction === 'both') {
657-
transition.p = transition.i();
659+
if (!transition.p) {
660+
transition.p = transition.i();
661+
}
658662
outros.push(transition.o);
659663
}
660664
transition.d.inert = true;

packages/svelte/tests/runtime-legacy/samples/transition-js-if-block-bidi/_config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default test({
1717

1818
component.visible = false;
1919
// @ts-expect-error
20-
assert.equal(global.count, 2);
20+
assert.equal(global.count, 1);
2121

2222
raf.tick(500);
2323
assert.equal(div.foo, 0.25);

0 commit comments

Comments
 (0)