fix: try finally pop render

svelte-custom-renderer
paoloricciuti 1 week ago
parent 17e37a51bc
commit 9b97b7fbf7

@ -277,6 +277,7 @@ export class Boundary {
queue_micro_task(() => { queue_micro_task(() => {
var pop_renderer = push_renderer(this.#effect.r); var pop_renderer = push_renderer(this.#effect.r);
try {
var fragment = (this.#offscreen_fragment = create_fragment()); var fragment = (this.#offscreen_fragment = create_fragment());
var anchor = create_text(); var anchor = create_text();
var handled = false; var handled = false;
@ -314,8 +315,9 @@ export class Boundary {
this.#resolve(/** @type {Batch} */ (current_batch)); this.#resolve(/** @type {Batch} */ (current_batch));
} }
} finally {
pop_renderer?.(); pop_renderer?.();
}
}); });
} }

@ -98,6 +98,7 @@ export class BranchManager {
var pop_renderer = push_renderer(this.#renderer); var pop_renderer = push_renderer(this.#renderer);
try {
var key = /** @type {Key} */ (this.#batches.get(batch)); var key = /** @type {Key} */ (this.#batches.get(batch));
var onscreen = this.#onscreen.get(key); var onscreen = this.#onscreen.get(key);
@ -181,8 +182,9 @@ export class BranchManager {
on_destroy(); on_destroy();
} }
} }
} finally {
pop_renderer?.(); pop_renderer?.();
}
}; };
/** /**

@ -273,6 +273,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
var pop_renderer = push_renderer(renderer); var pop_renderer = push_renderer(renderer);
try {
state.pending.delete(batch); state.pending.delete(batch);
state.fallback = fallback; state.fallback = fallback;
@ -295,9 +296,10 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
}); });
} }
} }
} finally {
pop_renderer?.(); pop_renderer?.();
} }
}
/** /**
* @param {Batch} batch * @param {Batch} batch

@ -753,6 +753,7 @@ export function move_effect(effect, fragment) {
var pop_renderer = push_renderer(effect.r); var pop_renderer = push_renderer(effect.r);
try {
/** @type {TemplateNode | null} */ /** @type {TemplateNode | null} */
var node = effect.nodes.start; var node = effect.nodes.start;
var end = effect.nodes.end; var end = effect.nodes.end;
@ -764,6 +765,7 @@ export function move_effect(effect, fragment) {
append_child(fragment, node); append_child(fragment, node);
node = next; node = next;
} }
} finally {
pop_renderer?.(); pop_renderer?.();
}
} }

Loading…
Cancel
Save