svelte 5.49.0 → 5.49.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compiler/index.js +1 -1
- package/elements.d.ts +0 -17
- package/package.json +3 -3
- package/src/compiler/phases/3-transform/client/visitors/EachBlock.js +9 -6
- package/src/compiler/phases/3-transform/client/visitors/HtmlTag.js +9 -5
- package/src/compiler/phases/3-transform/client/visitors/IfBlock.js +9 -5
- package/src/compiler/phases/3-transform/client/visitors/KeyBlock.js +19 -13
- package/src/compiler/phases/3-transform/client/visitors/SvelteElement.js +9 -5
- package/src/compiler/phases/3-transform/server/visitors/RegularElement.js +10 -10
- package/src/compiler/phases/3-transform/server/visitors/SvelteElement.js +1 -1
- package/src/compiler/phases/3-transform/server/visitors/shared/utils.js +2 -3
- package/src/compiler/print/index.js +14 -50
- package/src/internal/client/dom/blocks/branches.js +4 -4
- package/src/internal/client/dom/blocks/each.js +2 -2
- package/src/internal/client/dom/operations.js +53 -20
- package/src/internal/client/dom/template.js +5 -1
- package/src/internal/client/reactivity/batch.js +54 -11
- package/src/internal/server/crypto.js +2 -1
- package/src/internal/server/renderer.js +6 -0
- package/src/version.js +1 -1
- package/types/index.d.ts.map +1 -1
|
@@ -130,11 +130,13 @@ export class Batch {
|
|
|
130
130
|
#maybe_dirty_effects = new Set();
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
|
-
* A
|
|
134
|
-
* is committed — we skip over these during `process
|
|
135
|
-
*
|
|
133
|
+
* A map of branches that still exist, but will be destroyed when this batch
|
|
134
|
+
* is committed — we skip over these during `process`.
|
|
135
|
+
* The value contains child effects that were dirty/maybe_dirty before being reset,
|
|
136
|
+
* so they can be rescheduled if the branch survives.
|
|
137
|
+
* @type {Map<Effect, { d: Effect[], m: Effect[] }>}
|
|
136
138
|
*/
|
|
137
|
-
|
|
139
|
+
#skipped_branches = new Map();
|
|
138
140
|
|
|
139
141
|
is_fork = false;
|
|
140
142
|
|
|
@@ -144,6 +146,38 @@ export class Batch {
|
|
|
144
146
|
return this.is_fork || this.#blocking_pending > 0;
|
|
145
147
|
}
|
|
146
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Add an effect to the #skipped_branches map and reset its children
|
|
151
|
+
* @param {Effect} effect
|
|
152
|
+
*/
|
|
153
|
+
skip_effect(effect) {
|
|
154
|
+
if (!this.#skipped_branches.has(effect)) {
|
|
155
|
+
this.#skipped_branches.set(effect, { d: [], m: [] });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Remove an effect from the #skipped_branches map and reschedule
|
|
161
|
+
* any tracked dirty/maybe_dirty child effects
|
|
162
|
+
* @param {Effect} effect
|
|
163
|
+
*/
|
|
164
|
+
unskip_effect(effect) {
|
|
165
|
+
var tracked = this.#skipped_branches.get(effect);
|
|
166
|
+
if (tracked) {
|
|
167
|
+
this.#skipped_branches.delete(effect);
|
|
168
|
+
|
|
169
|
+
for (var e of tracked.d) {
|
|
170
|
+
set_signal_status(e, DIRTY);
|
|
171
|
+
schedule_effect(e);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
for (e of tracked.m) {
|
|
175
|
+
set_signal_status(e, MAYBE_DIRTY);
|
|
176
|
+
schedule_effect(e);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
147
181
|
/**
|
|
148
182
|
*
|
|
149
183
|
* @param {Effect[]} root_effects
|
|
@@ -172,8 +206,8 @@ export class Batch {
|
|
|
172
206
|
this.#defer_effects(render_effects);
|
|
173
207
|
this.#defer_effects(effects);
|
|
174
208
|
|
|
175
|
-
for (const e of this
|
|
176
|
-
reset_branch(e);
|
|
209
|
+
for (const [e, t] of this.#skipped_branches) {
|
|
210
|
+
reset_branch(e, t);
|
|
177
211
|
}
|
|
178
212
|
} else {
|
|
179
213
|
// append/remove branches
|
|
@@ -220,7 +254,7 @@ export class Batch {
|
|
|
220
254
|
var is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
|
|
221
255
|
var is_skippable_branch = is_branch && (flags & CLEAN) !== 0;
|
|
222
256
|
|
|
223
|
-
var skip = is_skippable_branch || (flags & INERT) !== 0 || this.
|
|
257
|
+
var skip = is_skippable_branch || (flags & INERT) !== 0 || this.#skipped_branches.has(effect);
|
|
224
258
|
|
|
225
259
|
// Inside a `<svelte:boundary>` with a pending snippet,
|
|
226
260
|
// all effects are deferred until the boundary resolves
|
|
@@ -807,7 +841,8 @@ export function schedule_effect(signal) {
|
|
|
807
841
|
var flags = effect.f;
|
|
808
842
|
|
|
809
843
|
// if the effect is being scheduled because a parent (each/await/etc) block
|
|
810
|
-
// updated an internal source,
|
|
844
|
+
// updated an internal source, or because a branch is being unskipped,
|
|
845
|
+
// bail out or we'll cause a second flush
|
|
811
846
|
if (
|
|
812
847
|
is_flushing &&
|
|
813
848
|
effect === active_effect &&
|
|
@@ -887,20 +922,28 @@ export function eager(fn) {
|
|
|
887
922
|
|
|
888
923
|
/**
|
|
889
924
|
* Mark all the effects inside a skipped branch CLEAN, so that
|
|
890
|
-
* they can be correctly rescheduled later
|
|
925
|
+
* they can be correctly rescheduled later. Tracks dirty and maybe_dirty
|
|
926
|
+
* effects so they can be rescheduled if the branch survives.
|
|
891
927
|
* @param {Effect} effect
|
|
928
|
+
* @param {{ d: Effect[], m: Effect[] }} tracked
|
|
892
929
|
*/
|
|
893
|
-
function reset_branch(effect) {
|
|
930
|
+
function reset_branch(effect, tracked) {
|
|
894
931
|
// clean branch = nothing dirty inside, no need to traverse further
|
|
895
932
|
if ((effect.f & BRANCH_EFFECT) !== 0 && (effect.f & CLEAN) !== 0) {
|
|
896
933
|
return;
|
|
897
934
|
}
|
|
898
935
|
|
|
936
|
+
if ((effect.f & DIRTY) !== 0) {
|
|
937
|
+
tracked.d.push(effect);
|
|
938
|
+
} else if ((effect.f & MAYBE_DIRTY) !== 0) {
|
|
939
|
+
tracked.m.push(effect);
|
|
940
|
+
}
|
|
941
|
+
|
|
899
942
|
set_signal_status(effect, CLEAN);
|
|
900
943
|
|
|
901
944
|
var e = effect.first;
|
|
902
945
|
while (e !== null) {
|
|
903
|
-
reset_branch(e);
|
|
946
|
+
reset_branch(e, tracked);
|
|
904
947
|
e = e.next;
|
|
905
948
|
}
|
|
906
949
|
}
|
|
@@ -12,7 +12,8 @@ export async function sha256(data) {
|
|
|
12
12
|
crypto ??= globalThis.crypto?.subtle?.digest
|
|
13
13
|
? globalThis.crypto
|
|
14
14
|
: // @ts-ignore - we don't install node types in the prod build
|
|
15
|
-
|
|
15
|
+
// don't use 'node:crypto' because static analysers will think we rely on node when we don't
|
|
16
|
+
(await import('node:' + 'crypto')).webcrypto;
|
|
16
17
|
|
|
17
18
|
const hash_buffer = await crypto.subtle.digest('SHA-256', text_encoder.encode(data));
|
|
18
19
|
|
|
@@ -11,6 +11,7 @@ import { attributes } from './index.js';
|
|
|
11
11
|
import { get_render_context, with_render_context, init_render_context } from './render-context.js';
|
|
12
12
|
import { sha256 } from './crypto.js';
|
|
13
13
|
import * as devalue from 'devalue';
|
|
14
|
+
import { noop } from '../shared/utils.js';
|
|
14
15
|
|
|
15
16
|
/** @typedef {'head' | 'body'} RendererType */
|
|
16
17
|
/** @typedef {{ [key in RendererType]: string }} AccumulatedContent */
|
|
@@ -162,6 +163,11 @@ export class Renderer {
|
|
|
162
163
|
promises.push(promise);
|
|
163
164
|
}
|
|
164
165
|
|
|
166
|
+
// prevent unhandled rejections, and attach the promise to the renderer instance
|
|
167
|
+
// so that rejections correctly cause rendering to fail
|
|
168
|
+
promise.catch(noop);
|
|
169
|
+
this.promise = promise;
|
|
170
|
+
|
|
165
171
|
return promises;
|
|
166
172
|
}
|
|
167
173
|
|
package/src/version.js
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -275,6 +275,6 @@
|
|
|
275
275
|
null,
|
|
276
276
|
null
|
|
277
277
|
],
|
|
278
|
-
"mappings": ";;;;;;;;;kBAUiBA,2BAA2BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkC/BC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwEhBC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;kBAwBbC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCbC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;aAwBrBC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCfC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BdC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;kBAuBRC,OAAOA;;;;;;;;;;;;;;;;kBAgBPC,eAAeA;;;;;;;;;;;;;;;;aAgBpBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0CPC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCnSLC,cAAcA;;;;;;;;;;;;iBAsBdC,OAAOA;;;;;;;;iBAwBPC,SAASA;;;;;;;;;;;;;;;;;;;;;;iBA0CTC,qBAAqBA;;;;;;;;;;iBA2CrBC,YAAYA;;;;;;;;;;iBAuBZC,WAAWA;iBClNXC,UAAUA;;;;iBC4DVC,gBAAgBA;;;;;MCvEpBC,WAAWA;;;;;
|
|
278
|
+
"mappings": "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",
|
|
279
279
|
"ignoreList": []
|
|
280
280
|
}
|