svelte 5.43.10 → 5.43.11
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/package.json +1 -1
- package/src/internal/client/dev/tracing.js +4 -2
- package/src/internal/client/dom/blocks/branches.js +30 -3
- package/src/internal/client/reactivity/batch.js +18 -2
- package/src/internal/client/reactivity/sources.js +17 -9
- package/src/internal/flags/index.js +3 -0
- package/src/version.js +1 -1
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -57,8 +57,10 @@ function log_entry(signal, entry) {
|
|
|
57
57
|
|
|
58
58
|
if (dirty && signal.updated) {
|
|
59
59
|
for (const updated of signal.updated.values()) {
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
if (updated.error) {
|
|
61
|
+
// eslint-disable-next-line no-console
|
|
62
|
+
console.log(updated.error);
|
|
63
|
+
}
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
66
|
|
|
@@ -24,12 +24,35 @@ export class BranchManager {
|
|
|
24
24
|
/** @type {Map<Batch, Key>} */
|
|
25
25
|
#batches = new Map();
|
|
26
26
|
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Map of keys to effects that are currently rendered in the DOM.
|
|
29
|
+
* These effects are visible and actively part of the document tree.
|
|
30
|
+
* Example:
|
|
31
|
+
* ```
|
|
32
|
+
* {#if condition}
|
|
33
|
+
* foo
|
|
34
|
+
* {:else}
|
|
35
|
+
* bar
|
|
36
|
+
* {/if}
|
|
37
|
+
* ```
|
|
38
|
+
* Can result in the entries `true->Effect` and `false->Effect`
|
|
39
|
+
* @type {Map<Key, Effect>}
|
|
40
|
+
*/
|
|
28
41
|
#onscreen = new Map();
|
|
29
42
|
|
|
30
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Similar to #onscreen with respect to the keys, but contains branches that are not yet
|
|
45
|
+
* in the DOM, because their insertion is deferred.
|
|
46
|
+
* @type {Map<Key, Branch>}
|
|
47
|
+
*/
|
|
31
48
|
#offscreen = new Map();
|
|
32
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Keys of effects that are currently outroing
|
|
52
|
+
* @type {Set<Key>}
|
|
53
|
+
*/
|
|
54
|
+
#outroing = new Set();
|
|
55
|
+
|
|
33
56
|
/**
|
|
34
57
|
* Whether to pause (i.e. outro) on change, or destroy immediately.
|
|
35
58
|
* This is necessary for `<svelte:element>`
|
|
@@ -58,6 +81,7 @@ export class BranchManager {
|
|
|
58
81
|
if (onscreen) {
|
|
59
82
|
// effect is already in the DOM — abort any current outro
|
|
60
83
|
resume_effect(onscreen);
|
|
84
|
+
this.#outroing.delete(key);
|
|
61
85
|
} else {
|
|
62
86
|
// effect is currently offscreen. put it in the DOM
|
|
63
87
|
var offscreen = this.#offscreen.get(key);
|
|
@@ -96,7 +120,8 @@ export class BranchManager {
|
|
|
96
120
|
// outro/destroy all onscreen effects...
|
|
97
121
|
for (const [k, effect] of this.#onscreen) {
|
|
98
122
|
// ...except the one that was just committed
|
|
99
|
-
|
|
123
|
+
// or those that are already outroing (else the transition is aborted and the effect destroyed right away)
|
|
124
|
+
if (k === key || this.#outroing.has(k)) continue;
|
|
100
125
|
|
|
101
126
|
const on_destroy = () => {
|
|
102
127
|
const keys = Array.from(this.#batches.values());
|
|
@@ -113,10 +138,12 @@ export class BranchManager {
|
|
|
113
138
|
destroy_effect(effect);
|
|
114
139
|
}
|
|
115
140
|
|
|
141
|
+
this.#outroing.delete(k);
|
|
116
142
|
this.#onscreen.delete(k);
|
|
117
143
|
};
|
|
118
144
|
|
|
119
145
|
if (this.#transition || !onscreen) {
|
|
146
|
+
this.#outroing.add(k);
|
|
120
147
|
pause_effect(effect, on_destroy, false);
|
|
121
148
|
} else {
|
|
122
149
|
on_destroy();
|
|
@@ -608,6 +608,8 @@ function flush_effects() {
|
|
|
608
608
|
var was_updating_effect = is_updating_effect;
|
|
609
609
|
is_flushing = true;
|
|
610
610
|
|
|
611
|
+
var source_stacks = DEV ? new Set() : null;
|
|
612
|
+
|
|
611
613
|
try {
|
|
612
614
|
var flush_count = 0;
|
|
613
615
|
set_is_updating_effect(true);
|
|
@@ -633,8 +635,10 @@ function flush_effects() {
|
|
|
633
635
|
}
|
|
634
636
|
|
|
635
637
|
for (const update of updates.values()) {
|
|
636
|
-
|
|
637
|
-
|
|
638
|
+
if (update.error) {
|
|
639
|
+
// eslint-disable-next-line no-console
|
|
640
|
+
console.error(update.error);
|
|
641
|
+
}
|
|
638
642
|
}
|
|
639
643
|
}
|
|
640
644
|
|
|
@@ -643,12 +647,24 @@ function flush_effects() {
|
|
|
643
647
|
|
|
644
648
|
batch.process(queued_root_effects);
|
|
645
649
|
old_values.clear();
|
|
650
|
+
|
|
651
|
+
if (DEV) {
|
|
652
|
+
for (const source of batch.current.keys()) {
|
|
653
|
+
/** @type {Set<Source>} */ (source_stacks).add(source);
|
|
654
|
+
}
|
|
655
|
+
}
|
|
646
656
|
}
|
|
647
657
|
} finally {
|
|
648
658
|
is_flushing = false;
|
|
649
659
|
set_is_updating_effect(was_updating_effect);
|
|
650
660
|
|
|
651
661
|
last_scheduled_effect = null;
|
|
662
|
+
|
|
663
|
+
if (DEV) {
|
|
664
|
+
for (const source of /** @type {Set<Source>} */ (source_stacks)) {
|
|
665
|
+
source.updated = null;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
652
668
|
}
|
|
653
669
|
}
|
|
654
670
|
|
|
@@ -188,18 +188,26 @@ export function internal_set(source, value) {
|
|
|
188
188
|
|
|
189
189
|
if (DEV) {
|
|
190
190
|
if (tracing_mode_flag || active_effect !== null) {
|
|
191
|
-
|
|
191
|
+
source.updated ??= new Map();
|
|
192
192
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
193
|
+
// For performance reasons, when not using $inspect.trace, we only start collecting stack traces
|
|
194
|
+
// after the same source has been updated more than 5 times in the same flush cycle.
|
|
195
|
+
const count = (source.updated.get('')?.count ?? 0) + 1;
|
|
196
|
+
source.updated.set('', { error: /** @type {any} */ (null), count });
|
|
196
197
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
if (tracing_mode_flag || count > 5) {
|
|
199
|
+
const error = get_stack('updated at');
|
|
200
|
+
|
|
201
|
+
if (error !== null) {
|
|
202
|
+
let entry = source.updated.get(error.stack);
|
|
201
203
|
|
|
202
|
-
|
|
204
|
+
if (!entry) {
|
|
205
|
+
entry = { error, count: 0 };
|
|
206
|
+
source.updated.set(error.stack, entry);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
entry.count++;
|
|
210
|
+
}
|
|
203
211
|
}
|
|
204
212
|
}
|
|
205
213
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/** True if experimental.async=true */
|
|
1
2
|
export let async_mode_flag = false;
|
|
3
|
+
/** True if we're not certain that we only have Svelte 5 code in the compilation */
|
|
2
4
|
export let legacy_mode_flag = false;
|
|
5
|
+
/** True if $inspect.trace is used */
|
|
3
6
|
export let tracing_mode_flag = false;
|
|
4
7
|
|
|
5
8
|
export function enable_async_mode_flag() {
|
package/src/version.js
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -263,6 +263,6 @@
|
|
|
263
263
|
null,
|
|
264
264
|
null
|
|
265
265
|
],
|
|
266
|
-
"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;;;;iBCtJXC,gBAAgBA;;;;;MCvEpBC,WAAWA;;;;;iBCkjBPC,SAASA;;;;;;;;;;;;;;;;;;
|
|
266
|
+
"mappings": "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",
|
|
267
267
|
"ignoreList": []
|
|
268
268
|
}
|