do no rerun the each block when array change from empty to empty

pull/13553/head
adiguba 2 years ago
parent 233bbecf55
commit 4a5af3aa8f

@ -132,6 +132,8 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
/** @type {Effect | null} */ /** @type {Effect | null} */
var fallback = null; var fallback = null;
var empty = false;
block(() => { block(() => {
var collection = get_collection(); var collection = get_collection();
@ -143,6 +145,13 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
var length = array.length; var length = array.length;
if (empty && length === 0) {
// ignore updates if the array is empty,
// and it already was empty on previous run
return;
}
empty = length === 0;
/** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */ /** `true` if there was a hydration mismatch. Needs to be a `let` or else it isn't treeshaken out */
let mismatch = false; let mismatch = false;

Loading…
Cancel
Save