svelte 5.55.7 → 5.55.9
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/3-transform/client/visitors/AwaitBlock.js +2 -2
- package/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js +11 -7
- package/src/compiler/phases/3-transform/server/visitors/AwaitBlock.js +8 -1
- package/src/compiler/phases/3-transform/server/visitors/shared/utils.js +21 -12
- package/src/compiler/print/index.js +6 -1
- package/src/constants.js +1 -1
- package/src/internal/client/dom/blocks/await.js +16 -12
- package/src/internal/client/reactivity/async.js +15 -8
- package/src/internal/client/reactivity/batch.js +5 -2
- package/src/internal/client/reactivity/deriveds.js +9 -4
- package/src/internal/client/reactivity/store.js +1 -1
- package/src/internal/client/runtime.js +9 -3
- package/src/reactivity/url-search-params.js +1 -1
- 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.55.
|
|
5
|
+
"version": "5.55.9",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
8
8
|
"engines": {
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"dependencies": {
|
|
158
158
|
"@jridgewell/remapping": "^2.3.4",
|
|
159
159
|
"@jridgewell/sourcemap-codec": "^1.5.0",
|
|
160
|
-
"@sveltejs/acorn-typescript": "^1.0.
|
|
160
|
+
"@sveltejs/acorn-typescript": "^1.0.10",
|
|
161
161
|
"@types/estree": "^1.0.5",
|
|
162
162
|
"@types/trusted-types": "^2.0.7",
|
|
163
163
|
"acorn": "^8.12.1",
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
"clsx": "^2.1.1",
|
|
167
167
|
"devalue": "^5.8.1",
|
|
168
168
|
"esm-env": "^1.2.1",
|
|
169
|
-
"esrap": "^2.2.
|
|
169
|
+
"esrap": "^2.2.9",
|
|
170
170
|
"is-reference": "^3.0.3",
|
|
171
171
|
"locate-character": "^3.0.0",
|
|
172
172
|
"magic-string": "^0.30.11",
|
|
@@ -71,14 +71,14 @@ export function AwaitBlock(node, context) {
|
|
|
71
71
|
'await'
|
|
72
72
|
);
|
|
73
73
|
|
|
74
|
-
if (node.metadata.expression.has_blockers()) {
|
|
74
|
+
if (node.metadata.expression.has_blockers() || node.metadata.expression.has_await) {
|
|
75
75
|
context.state.init.push(
|
|
76
76
|
b.stmt(
|
|
77
77
|
b.call(
|
|
78
78
|
'$.async',
|
|
79
79
|
context.state.node,
|
|
80
80
|
node.metadata.expression.blockers(),
|
|
81
|
-
b.array([]),
|
|
81
|
+
b.array([]), // {#await await ...} is special insofar that the await should not be waited on
|
|
82
82
|
b.arrow([context.state.node], b.block([stmt]))
|
|
83
83
|
)
|
|
84
84
|
)
|
|
@@ -386,13 +386,17 @@ export function VariableDeclaration(node, context) {
|
|
|
386
386
|
* @param {Expression} value
|
|
387
387
|
*/
|
|
388
388
|
function create_state_declarators(declarator, context, value) {
|
|
389
|
+
/**
|
|
390
|
+
* @param {Expression} value
|
|
391
|
+
* @param {string} name
|
|
392
|
+
*/
|
|
393
|
+
const mutable_source = (value, name) => {
|
|
394
|
+
const call = b.call('$.mutable_source', value, context.state.analysis.immutable && b.true);
|
|
395
|
+
return dev ? b.call('$.tag', call, b.literal(name)) : call;
|
|
396
|
+
};
|
|
397
|
+
|
|
389
398
|
if (declarator.id.type === 'Identifier') {
|
|
390
|
-
return [
|
|
391
|
-
b.declarator(
|
|
392
|
-
declarator.id,
|
|
393
|
-
b.call('$.mutable_source', value, context.state.analysis.immutable ? b.true : undefined)
|
|
394
|
-
)
|
|
395
|
-
];
|
|
399
|
+
return [b.declarator(declarator.id, mutable_source(value, declarator.id.name))];
|
|
396
400
|
}
|
|
397
401
|
|
|
398
402
|
const tmp = b.id(context.state.scope.generate('tmp'));
|
|
@@ -414,7 +418,7 @@ function create_state_declarators(declarator, context, value) {
|
|
|
414
418
|
return b.declarator(
|
|
415
419
|
path.node,
|
|
416
420
|
binding?.kind === 'state'
|
|
417
|
-
?
|
|
421
|
+
? mutable_source(value, /** @type {Identifier} */ (path.node).name)
|
|
418
422
|
: value
|
|
419
423
|
);
|
|
420
424
|
})
|
|
@@ -9,12 +9,19 @@ import { block_close, create_child_block } from './shared/utils.js';
|
|
|
9
9
|
* @param {ComponentContext} context
|
|
10
10
|
*/
|
|
11
11
|
export function AwaitBlock(node, context) {
|
|
12
|
+
let expression = /** @type {Expression} */ (context.visit(node.expression));
|
|
13
|
+
if (node.metadata.expression.has_await) {
|
|
14
|
+
// If this is an await expression, turn it into a IIFE so that the result is a promise.
|
|
15
|
+
// {#await await ...} is special insofar that the await should not be waited on.
|
|
16
|
+
expression = b.call(b.arrow([], expression, true));
|
|
17
|
+
}
|
|
18
|
+
|
|
12
19
|
/** @type {Statement} */
|
|
13
20
|
let statement = b.stmt(
|
|
14
21
|
b.call(
|
|
15
22
|
'$.await',
|
|
16
23
|
b.id('$$renderer'),
|
|
17
|
-
|
|
24
|
+
expression,
|
|
18
25
|
b.thunk(
|
|
19
26
|
node.pending ? /** @type {BlockStatement} */ (context.visit(node.pending)) : b.block([])
|
|
20
27
|
),
|
|
@@ -229,18 +229,25 @@ export function build_attribute_value(
|
|
|
229
229
|
? node.data.replace(regex_whitespaces_strict, ' ')
|
|
230
230
|
: node.data;
|
|
231
231
|
} else {
|
|
232
|
-
|
|
233
|
-
b.call(
|
|
234
|
-
'$.stringify',
|
|
235
|
-
transform(
|
|
236
|
-
/** @type {Expression} */ (context.visit(node.expression)),
|
|
237
|
-
node.metadata.expression
|
|
238
|
-
)
|
|
239
|
-
)
|
|
240
|
-
);
|
|
232
|
+
const evaluated = context.state.scope.evaluate(node.expression);
|
|
241
233
|
|
|
242
|
-
|
|
243
|
-
|
|
234
|
+
if (evaluated.is_known) {
|
|
235
|
+
quasi.value.cooked += (evaluated.value ?? '') + '';
|
|
236
|
+
} else {
|
|
237
|
+
const expression = transform(
|
|
238
|
+
/** @type {Expression} */ (context.visit(node.expression)),
|
|
239
|
+
node.metadata.expression
|
|
240
|
+
);
|
|
241
|
+
|
|
242
|
+
expressions.push(
|
|
243
|
+
evaluated.is_string && evaluated.is_defined
|
|
244
|
+
? expression
|
|
245
|
+
: b.call('$.stringify', expression)
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
quasi = b.quasi('', i + 1 === value.length);
|
|
249
|
+
quasis.push(quasi);
|
|
250
|
+
}
|
|
244
251
|
}
|
|
245
252
|
}
|
|
246
253
|
|
|
@@ -248,7 +255,9 @@ export function build_attribute_value(
|
|
|
248
255
|
quasi.value.raw = sanitize_template_string(/** @type {string} */ (quasi.value.cooked));
|
|
249
256
|
}
|
|
250
257
|
|
|
251
|
-
return
|
|
258
|
+
return expressions.length > 0
|
|
259
|
+
? b.template(quasis, expressions)
|
|
260
|
+
: b.literal(/** @type {string} */ (quasi.value.cooked));
|
|
252
261
|
}
|
|
253
262
|
|
|
254
263
|
/**
|
|
@@ -247,7 +247,7 @@ const css_visitors = {
|
|
|
247
247
|
},
|
|
248
248
|
|
|
249
249
|
Percentage(node, context) {
|
|
250
|
-
context.write(
|
|
250
|
+
context.write(node.value);
|
|
251
251
|
},
|
|
252
252
|
|
|
253
253
|
PseudoClassSelector(node, context) {
|
|
@@ -417,6 +417,7 @@ const svelte_visitors = (comments) => ({
|
|
|
417
417
|
const is_block_element =
|
|
418
418
|
child_node.type === 'RegularElement' ||
|
|
419
419
|
child_node.type === 'Component' ||
|
|
420
|
+
child_node.type === 'SvelteBody' ||
|
|
420
421
|
child_node.type === 'SvelteHead' ||
|
|
421
422
|
child_node.type === 'SvelteFragment' ||
|
|
422
423
|
child_node.type === 'SvelteBoundary' ||
|
|
@@ -821,6 +822,10 @@ const svelte_visitors = (comments) => ({
|
|
|
821
822
|
context.write('</style>');
|
|
822
823
|
},
|
|
823
824
|
|
|
825
|
+
SvelteBody(node, context) {
|
|
826
|
+
base_element(node, context, comments);
|
|
827
|
+
},
|
|
828
|
+
|
|
824
829
|
SvelteBoundary(node, context) {
|
|
825
830
|
base_element(node, context, comments);
|
|
826
831
|
},
|
package/src/constants.js
CHANGED
|
@@ -32,7 +32,7 @@ export const ELEMENT_IS_NAMESPACED = 1;
|
|
|
32
32
|
export const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
|
|
33
33
|
export const ELEMENT_IS_INPUT = 1 << 2;
|
|
34
34
|
|
|
35
|
-
export const UNINITIALIZED = Symbol();
|
|
35
|
+
export const UNINITIALIZED = Symbol('uninitialized');
|
|
36
36
|
|
|
37
37
|
// Dev-time component properties
|
|
38
38
|
export const FILENAME = Symbol('filename');
|
|
@@ -7,7 +7,8 @@ import {
|
|
|
7
7
|
hydrating,
|
|
8
8
|
skip_nodes,
|
|
9
9
|
set_hydrate_node,
|
|
10
|
-
set_hydrating
|
|
10
|
+
set_hydrating,
|
|
11
|
+
hydrate_node
|
|
11
12
|
} from '../hydration.js';
|
|
12
13
|
import { queue_micro_task } from '../task.js';
|
|
13
14
|
import { HYDRATION_START_ELSE, UNINITIALIZED } from '../../../../constants.js';
|
|
@@ -15,6 +16,7 @@ import { is_runes } from '../../context.js';
|
|
|
15
16
|
import { Batch, current_batch, flushSync, is_flushing_sync } from '../../reactivity/batch.js';
|
|
16
17
|
import { BranchManager } from './branches.js';
|
|
17
18
|
import { capture, unset_context } from '../../reactivity/async.js';
|
|
19
|
+
import { DEV } from 'esm-env';
|
|
18
20
|
|
|
19
21
|
const PENDING = 0;
|
|
20
22
|
const THEN = 1;
|
|
@@ -42,16 +44,16 @@ export function await_block(node, get_input, pending_fn, then_fn, catch_fn) {
|
|
|
42
44
|
var value = runes ? source(v) : mutable_source(v, false, false);
|
|
43
45
|
var error = runes ? source(v) : mutable_source(v, false, false);
|
|
44
46
|
|
|
47
|
+
if (DEV) {
|
|
48
|
+
value.label = '{#await ...} value';
|
|
49
|
+
error.label = '{#await ...} error';
|
|
50
|
+
}
|
|
51
|
+
|
|
45
52
|
var branches = new BranchManager(node);
|
|
46
53
|
|
|
47
54
|
block(() => {
|
|
48
55
|
var batch = /** @type {Batch} */ (current_batch);
|
|
49
|
-
|
|
50
|
-
// we null out `current_batch` because otherwise `save(...)` will incorrectly restore it —
|
|
51
|
-
// the batch will already have been committed by the time it resolves
|
|
52
|
-
batch.deactivate();
|
|
53
56
|
var input = get_input();
|
|
54
|
-
batch.activate();
|
|
55
57
|
|
|
56
58
|
var destroyed = false;
|
|
57
59
|
|
|
@@ -79,15 +81,17 @@ export function await_block(node, get_input, pending_fn, then_fn, catch_fn) {
|
|
|
79
81
|
// We don't want to restore the previous batch here; {#await} blocks don't follow the async logic
|
|
80
82
|
// we have elsewhere, instead pending/resolve/fail states are each their own batch so to speak.
|
|
81
83
|
restore(false);
|
|
84
|
+
// ...but it might still be set here. That means a `save(...)` has restored it — but that batch will
|
|
85
|
+
// likely already have been committed by the time it resolves, and this resolve should be processed
|
|
86
|
+
// in a separate batch. We're not using batch.deactivate()/activate() above because get_input()
|
|
87
|
+
// could write to sources, which would then incorrectly create a new batch or could mess with
|
|
88
|
+
// async_derived expecting a current_batch to exist.
|
|
89
|
+
if (current_batch === batch) {
|
|
90
|
+
batch.deactivate();
|
|
91
|
+
}
|
|
82
92
|
// Make sure we have a batch, since the branch manager expects one to exist
|
|
83
93
|
Batch.ensure();
|
|
84
94
|
|
|
85
|
-
if (hydrating) {
|
|
86
|
-
// `restore()` could set `hydrating` to `true`, which we very much
|
|
87
|
-
// don't want — we want to restore everything _except_ this
|
|
88
|
-
set_hydrating(false);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
95
|
try {
|
|
92
96
|
fn();
|
|
93
97
|
} finally {
|
|
@@ -303,15 +303,21 @@ export function run(thunks) {
|
|
|
303
303
|
.then(() => {
|
|
304
304
|
restore();
|
|
305
305
|
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
try {
|
|
307
|
+
if (errored) {
|
|
308
|
+
throw errored.error;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (aborted(active)) {
|
|
312
|
+
throw STALE_REACTION;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return fn();
|
|
316
|
+
} finally {
|
|
317
|
+
// We gotta unset context directly in case the function returns a promise, in which case
|
|
318
|
+
// unset_context in .finally() would be too late ...
|
|
319
|
+
unset_context();
|
|
308
320
|
}
|
|
309
|
-
|
|
310
|
-
if (aborted(active)) {
|
|
311
|
-
throw STALE_REACTION;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
return fn();
|
|
315
321
|
})
|
|
316
322
|
.catch(handle_error);
|
|
317
323
|
|
|
@@ -320,6 +326,7 @@ export function run(thunks) {
|
|
|
320
326
|
|
|
321
327
|
promise.finally(() => {
|
|
322
328
|
blocker.settled = true;
|
|
329
|
+
// ... but we also need it after such a promise has resolved in case it restores our context
|
|
323
330
|
unset_context();
|
|
324
331
|
});
|
|
325
332
|
}
|
|
@@ -679,7 +679,9 @@ export class Batch {
|
|
|
679
679
|
batch.discard();
|
|
680
680
|
}
|
|
681
681
|
} else if (sources.length > 0) {
|
|
682
|
-
|
|
682
|
+
// The microtask queue can contain the batch already scheduled to run right
|
|
683
|
+
// after this one is finished, so throwing the invariant would be wrong here.
|
|
684
|
+
if (DEV && !batch.#decrement_queued) {
|
|
683
685
|
invariant(batch.#roots.length === 0, 'Batch has scheduled roots');
|
|
684
686
|
}
|
|
685
687
|
|
|
@@ -732,7 +734,8 @@ export class Batch {
|
|
|
732
734
|
}
|
|
733
735
|
|
|
734
736
|
// Only apply and traverse when we know we triggered async work with marking the effects
|
|
735
|
-
|
|
737
|
+
// and know this won't run anyway right afterwards
|
|
738
|
+
if (batch.#roots.length > 0 && !batch.#decrement_queued) {
|
|
736
739
|
batch.apply();
|
|
737
740
|
|
|
738
741
|
for (var root of batch.#roots) {
|
|
@@ -338,7 +338,12 @@ export function execute_derived(derived) {
|
|
|
338
338
|
var prev_active_effect = active_effect;
|
|
339
339
|
var parent = derived.parent;
|
|
340
340
|
|
|
341
|
-
if (
|
|
341
|
+
if (
|
|
342
|
+
!is_destroying_effect &&
|
|
343
|
+
parent !== null &&
|
|
344
|
+
derived.v !== UNINITIALIZED && // if it was never evaluated before, it's guaranteed to fail downstream, so we try to execute instead
|
|
345
|
+
(parent.f & (DESTROYED | INERT)) !== 0
|
|
346
|
+
) {
|
|
342
347
|
w.derived_inert();
|
|
343
348
|
|
|
344
349
|
return derived.v;
|
|
@@ -447,8 +452,8 @@ export function freeze_derived_effects(derived) {
|
|
|
447
452
|
// make it a noop so it doesn't get called again if the derived
|
|
448
453
|
// is unfrozen. we don't set it to `null`, because the existence
|
|
449
454
|
// of a teardown function is what determines whether the
|
|
450
|
-
// effect runs again during unfreezing
|
|
451
|
-
e.teardown = noop;
|
|
455
|
+
// effect runs again during unfreezing (but not for teardown-only effects)
|
|
456
|
+
if (e.fn !== null) e.teardown = noop;
|
|
452
457
|
e.ac = null;
|
|
453
458
|
|
|
454
459
|
remove_reactions(e, 0);
|
|
@@ -466,7 +471,7 @@ export function unfreeze_derived_effects(derived) {
|
|
|
466
471
|
for (const e of derived.effects) {
|
|
467
472
|
// if the effect was previously frozen — indicated by the presence
|
|
468
473
|
// of a teardown function — unfreeze it
|
|
469
|
-
if (e.teardown) {
|
|
474
|
+
if (e.teardown && e.fn !== null) {
|
|
470
475
|
update_effect(e);
|
|
471
476
|
}
|
|
472
477
|
}
|
|
@@ -21,7 +21,7 @@ export let legacy_is_updating_store = false;
|
|
|
21
21
|
*/
|
|
22
22
|
let is_store_binding = false;
|
|
23
23
|
|
|
24
|
-
let IS_UNMOUNTED = Symbol();
|
|
24
|
+
let IS_UNMOUNTED = Symbol('unmounted');
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy
|
|
@@ -560,9 +560,15 @@ export function get(signal) {
|
|
|
560
560
|
}
|
|
561
561
|
}
|
|
562
562
|
} else {
|
|
563
|
-
//
|
|
564
|
-
//
|
|
565
|
-
|
|
563
|
+
// We're adding a dependency outside the init/update cycle (i.e. after an `await`).
|
|
564
|
+
// We have to deduplicate deps/reactions in this case or remove_reactions could
|
|
565
|
+
// disconnect deps/reactions that are actually still in use (if skip_deps says
|
|
566
|
+
// "disconnect all after this index" and some of the signals are also present in
|
|
567
|
+
// list prior to the cutoff index, i.e. that should be kept).
|
|
568
|
+
active_reaction.deps ??= [];
|
|
569
|
+
if (!includes.call(active_reaction.deps, signal)) {
|
|
570
|
+
active_reaction.deps.push(signal);
|
|
571
|
+
}
|
|
566
572
|
|
|
567
573
|
var reactions = signal.reactions;
|
|
568
574
|
|
|
@@ -4,7 +4,7 @@ import { tag } from '../internal/client/dev/tracing.js';
|
|
|
4
4
|
import { get } from '../internal/client/runtime.js';
|
|
5
5
|
import { get_current_url } from './url.js';
|
|
6
6
|
|
|
7
|
-
export const REPLACE = Symbol();
|
|
7
|
+
export const REPLACE = Symbol('replace');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* A reactive version of the built-in [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object.
|
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
|
}
|