svelte 5.56.1 → 5.56.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/package.json +3 -3
- package/src/compiler/phases/2-analyze/visitors/shared/element.js +1 -0
- package/src/internal/client/dom/blocks/async.js +2 -0
- package/src/internal/client/reactivity/async.js +4 -4
- package/src/internal/client/reactivity/batch.js +16 -4
- package/src/internal/client/runtime.js +6 -0
- package/src/version.js +1 -1
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "svelte",
|
|
3
3
|
"description": "Cybernetically enhanced web apps",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "5.56.
|
|
5
|
+
"version": "5.56.2",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
8
8
|
"engines": {
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"source-map": "^0.7.4",
|
|
154
154
|
"tinyglobby": "^0.2.12",
|
|
155
155
|
"typescript": "^5.5.4",
|
|
156
|
-
"vitest": "^
|
|
156
|
+
"vitest": "^4.1.7",
|
|
157
157
|
"web-features": "^3.29.0"
|
|
158
158
|
},
|
|
159
159
|
"dependencies": {
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"clsx": "^2.1.1",
|
|
169
169
|
"devalue": "^5.8.1",
|
|
170
170
|
"esm-env": "^1.2.1",
|
|
171
|
-
"esrap": "^2.2.
|
|
171
|
+
"esrap": "^2.2.11",
|
|
172
172
|
"is-reference": "^3.0.3",
|
|
173
173
|
"locate-character": "^3.0.0",
|
|
174
174
|
"magic-string": "^0.30.11",
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
set_hydrating,
|
|
10
10
|
skip_nodes
|
|
11
11
|
} from '../hydration.js';
|
|
12
|
+
import { assign_nodes } from '../template.js';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* @param {TemplateNode} node
|
|
@@ -23,6 +24,7 @@ export function async(node, blockers = [], expressions = [], fn) {
|
|
|
23
24
|
if (was_hydrating) {
|
|
24
25
|
hydrate_next();
|
|
25
26
|
end = skip_nodes(false);
|
|
27
|
+
assign_nodes(node, end); // Necessary if this wraps the sole child of a block, else end marker can be wrong
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
if (expressions.length === 0 && blockers.every((b) => b.settled)) {
|
|
@@ -181,10 +181,10 @@ export async function save(promise) {
|
|
|
181
181
|
* @returns {Promise<() => T>}
|
|
182
182
|
*/
|
|
183
183
|
export async function track_reactivity_loss(promise) {
|
|
184
|
-
var
|
|
184
|
+
var previous_reactivity_loss_tracker = reactivity_loss_tracker;
|
|
185
185
|
// Ensure that unrelated reads after an async operation is kicked off don't cause false positives
|
|
186
186
|
queueMicrotask(() => {
|
|
187
|
-
if (reactivity_loss_tracker ===
|
|
187
|
+
if (reactivity_loss_tracker === previous_reactivity_loss_tracker) {
|
|
188
188
|
set_reactivity_loss_tracker(null);
|
|
189
189
|
}
|
|
190
190
|
});
|
|
@@ -192,12 +192,12 @@ export async function track_reactivity_loss(promise) {
|
|
|
192
192
|
var value = await promise;
|
|
193
193
|
|
|
194
194
|
return () => {
|
|
195
|
-
set_reactivity_loss_tracker(
|
|
195
|
+
set_reactivity_loss_tracker(previous_reactivity_loss_tracker);
|
|
196
196
|
// While this can result in false negatives it also guards against the more important
|
|
197
197
|
// false positives that would occur if this is the last in a chain of async operations,
|
|
198
198
|
// and the reactivity_loss_tracker would then stay around until the next async operation happens.
|
|
199
199
|
queueMicrotask(() => {
|
|
200
|
-
if (reactivity_loss_tracker ===
|
|
200
|
+
if (reactivity_loss_tracker === previous_reactivity_loss_tracker) {
|
|
201
201
|
set_reactivity_loss_tracker(null);
|
|
202
202
|
}
|
|
203
203
|
});
|
|
@@ -41,6 +41,7 @@ import { set_signal_status } from './status.js';
|
|
|
41
41
|
import { legacy_is_updating_store } from './store.js';
|
|
42
42
|
import { invariant } from '../../shared/dev.js';
|
|
43
43
|
import { log_effect_tree } from '../dev/debug.js';
|
|
44
|
+
import { OBSOLETE } from './deriveds.js';
|
|
44
45
|
|
|
45
46
|
/** @type {Batch | null} */
|
|
46
47
|
let first_batch = null;
|
|
@@ -511,6 +512,10 @@ export class Batch {
|
|
|
511
512
|
if (d) deferred.promise.then(d.resolve).catch(d.reject);
|
|
512
513
|
}
|
|
513
514
|
|
|
515
|
+
// Clear them or else those that are still pending might get rejected on discard (after merged-into batch is done).
|
|
516
|
+
// This can happen when batch Y merged into X and Y has a pending boundary and therefore still-pending async deriveds inside.
|
|
517
|
+
batch.async_deriveds.clear();
|
|
518
|
+
|
|
514
519
|
// Mark is not guaranteed not touch these, so we transfer them
|
|
515
520
|
this.transfer_effects(batch.#dirty_effects, batch.#maybe_dirty_effects);
|
|
516
521
|
|
|
@@ -629,6 +634,10 @@ export class Batch {
|
|
|
629
634
|
for (const fn of this.#discard_callbacks) fn(this);
|
|
630
635
|
this.#discard_callbacks.clear();
|
|
631
636
|
|
|
637
|
+
for (const deferred of this.async_deriveds.values()) {
|
|
638
|
+
deferred.reject(OBSOLETE);
|
|
639
|
+
}
|
|
640
|
+
|
|
632
641
|
this.#unlink();
|
|
633
642
|
this.#deferred?.resolve();
|
|
634
643
|
}
|
|
@@ -677,12 +686,15 @@ export class Batch {
|
|
|
677
686
|
}
|
|
678
687
|
}
|
|
679
688
|
|
|
680
|
-
|
|
689
|
+
var current = [...batch.current.keys()].filter(
|
|
690
|
+
(source) => !(/** @type {[any, boolean]} */ (batch.current.get(source))[1])
|
|
691
|
+
);
|
|
692
|
+
|
|
693
|
+
// If not started yet or no sources to update (which is e.g. possible for the very first batch) then bail
|
|
694
|
+
if (!batch.#started || current.length === 0) continue;
|
|
681
695
|
|
|
682
696
|
// Re-run async/block effects that depend on distinct values changed in both batches (ignoring deriveds)
|
|
683
|
-
var others =
|
|
684
|
-
(s) => !(/** @type {[any, boolean]} */ (batch.current.get(s))[1]) && !this.current.has(s)
|
|
685
|
-
);
|
|
697
|
+
var others = current.filter((source) => !this.current.has(source));
|
|
686
698
|
|
|
687
699
|
if (others.length === 0) {
|
|
688
700
|
if (is_earlier) {
|
|
@@ -51,6 +51,7 @@ import {
|
|
|
51
51
|
batch_values,
|
|
52
52
|
current_batch,
|
|
53
53
|
flushSync,
|
|
54
|
+
previous_batch,
|
|
54
55
|
schedule_effect
|
|
55
56
|
} from './reactivity/batch.js';
|
|
56
57
|
import { handle_error } from './error-handling.js';
|
|
@@ -581,6 +582,11 @@ export function get(signal) {
|
|
|
581
582
|
if (
|
|
582
583
|
!untracking &&
|
|
583
584
|
reactivity_loss_tracker &&
|
|
585
|
+
// By checking that current/previous batch are null we filter out false positives.
|
|
586
|
+
// reactivity_loss_tracker is only reset after a microtask, so if a flush happens
|
|
587
|
+
// before that, we get warnings for things we shouldn't warn on.
|
|
588
|
+
current_batch === null &&
|
|
589
|
+
previous_batch === null &&
|
|
584
590
|
!reactivity_loss_tracker.warned &&
|
|
585
591
|
(reactivity_loss_tracker.effect.f & REACTION_IS_UPDATING) === 0 &&
|
|
586
592
|
!reactivity_loss_tracker.effect_deps.has(signal)
|
package/src/version.js
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -273,6 +273,6 @@
|
|
|
273
273
|
null,
|
|
274
274
|
null
|
|
275
275
|
],
|
|
276
|
-
"mappings": ";;;;;;;;;kBAUiBA,2BAA2BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmC/BC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwEhBC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;kBAwBbC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCbC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;aAwBrBC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCfC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BdC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;kBAuBRC,OAAOA;;;;;;;;;;;;;;;;kBAgBPC,eAAeA;;;;;;;;;;;;;;;;aAgBpBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+CPC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCzSLC,cAAcA;;;;;;;;;;;;iBAsBdC,OAAOA;;;;;;;;iBAwBPC,SAASA;;;;;;;;;;;;;;;;;;;;;;iBA0CTC,qBAAqBA;;;;;;;;;;iBA2CrBC,YAAYA;;;;;;;;;;iBAuBZC,WAAWA;iBClNXC,UAAUA;;;;iBC4DVC,gBAAgBA;;;;;MCvEpBC,WAAWA;;;;;
|
|
276
|
+
"mappings": "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",
|
|
277
277
|
"ignoreList": []
|
|
278
278
|
}
|