From fb57c20f28ed0d273f41f1bffb4e6b4e01ec6ee1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 16:40:42 +0100 Subject: [PATCH 1/2] Version Packages (next) (#11858) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 2 ++ packages/svelte/CHANGELOG.md | 8 ++++++++ packages/svelte/package.json | 2 +- packages/svelte/src/version.js | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 4e35411992..9cd7f13211 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -429,11 +429,13 @@ "silly-lies-film", "silly-ways-wash", "silver-points-approve", + "silver-sheep-knock", "six-bears-trade", "six-boats-shave", "sixty-items-crash", "sixty-numbers-hope", "sixty-pandas-rush", + "sixty-plants-cover", "sleepy-cats-eat", "slimy-clouds-talk", "slimy-hairs-impress", diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index 6d65ffa79f..ad4638da81 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,13 @@ # svelte +## 5.0.0-next.148 + +### Patch Changes + +- chore: improve $state.frozen performance in prod ([#11852](https://github.com/sveltejs/svelte/pull/11852)) + +- breaking: removed deferred event updates ([#11855](https://github.com/sveltejs/svelte/pull/11855)) + ## 5.0.0-next.147 ### Patch Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index fa2f7daffe..90b0fec180 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -2,7 +2,7 @@ "name": "svelte", "description": "Cybernetically enhanced web apps", "license": "MIT", - "version": "5.0.0-next.147", + "version": "5.0.0-next.148", "type": "module", "types": "./types/index.d.ts", "engines": { diff --git a/packages/svelte/src/version.js b/packages/svelte/src/version.js index 48147b2b9a..da1ae7c7c5 100644 --- a/packages/svelte/src/version.js +++ b/packages/svelte/src/version.js @@ -6,5 +6,5 @@ * https://svelte.dev/docs/svelte-compiler#svelte-version * @type {string} */ -export const VERSION = '5.0.0-next.147'; +export const VERSION = '5.0.0-next.148'; export const PUBLIC_VERSION = '5'; From ef2d378b6751884e59ba0643ec950277910db161 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 31 May 2024 21:01:47 +0100 Subject: [PATCH 2/2] chore: tweak each block runtime logic (#11862) * chore: tweak each block runtime logic --- .../src/internal/client/dom/blocks/each.js | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/blocks/each.js b/packages/svelte/src/internal/client/dom/blocks/each.js index bef42ea5c4..543473cf31 100644 --- a/packages/svelte/src/internal/client/dom/blocks/each.js +++ b/packages/svelte/src/internal/client/dom/blocks/each.js @@ -394,31 +394,34 @@ function reconcile(array, state, anchor, render_fn, flags, get_key) { const to_destroy = Array.from(seen); - while (current) { + while (current !== null) { to_destroy.push(current); current = current.next; } + var destroy_length = to_destroy.length; - var controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null; + if (destroy_length > 0) { + var controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null; - if (is_animated) { - for (i = 0; i < to_destroy.length; i += 1) { - to_destroy[i].a?.measure(); - } + if (is_animated) { + for (i = 0; i < destroy_length; i += 1) { + to_destroy[i].a?.measure(); + } - for (i = 0; i < to_destroy.length; i += 1) { - to_destroy[i].a?.fix(); + for (i = 0; i < destroy_length; i += 1) { + to_destroy[i].a?.fix(); + } } - } - pause_effects(to_destroy, controlled_anchor, () => { - for (var i = 0; i < to_destroy.length; i += 1) { - var item = to_destroy[i]; - items.delete(item.k); - item.o.remove(); - link(item.prev, item.next); - } - }); + pause_effects(to_destroy, controlled_anchor, () => { + for (var i = 0; i < destroy_length; i += 1) { + var item = to_destroy[i]; + items.delete(item.k); + item.o.remove(); + link(item.prev, item.next); + } + }); + } if (is_animated) { effect(() => {