Skip to content

Commit 97f8110

Browse files
committed
dry out
1 parent a1a289e commit 97f8110

File tree

4 files changed

+9
-12
lines changed

4 files changed

+9
-12
lines changed

packages/svelte/src/compiler/phases/3-transform/client/visitors/RenderTag.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ export function RenderTag(node, context) {
3636
memoizer.apply();
3737

3838
/** @type {Statement[]} */
39-
const statements = memoizer.sync.map((memo) =>
40-
b.let(memo.id, create_derived(context.state, b.thunk(memo.expression)))
41-
);
39+
const statements = memoizer.deriveds(context.state.analysis.runes);
4240

4341
let snippet_function = build_expression(
4442
context,

packages/svelte/src/compiler/phases/3-transform/client/visitors/SlotElement.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ export function SlotElement(node, context) {
6060
context.state.init.push(...lets);
6161

6262
/** @type {Statement[]} */
63-
const statements = memoizer.sync.map((memo) =>
64-
b.let(memo.id, create_derived(context.state, b.thunk(memo.expression)))
65-
);
63+
const statements = memoizer.deriveds(context.state.analysis.runes);
6664

6765
const props_expression =
6866
spreads.length === 0 ? b.object(props) : b.call('$.spread_props', b.object(props), ...spreads);

packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -447,12 +447,7 @@ export function build_component(node, component_name, context) {
447447
};
448448
}
449449

450-
const statements = [
451-
...snippet_declarations,
452-
...memoizer.sync.map((memo) =>
453-
b.let(memo.id, create_derived(context.state, b.thunk(memo.expression)))
454-
)
455-
];
450+
const statements = [...snippet_declarations, ...memoizer.deriveds(context.state.analysis.runes)];
456451

457452
if (is_component_dynamic) {
458453
const prev = fn;

packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ export class Memoizer {
3939
return all;
4040
}
4141

42+
deriveds(runes = true) {
43+
return this.sync.map((memo) =>
44+
b.let(memo.id, b.call(runes ? '$.derived' : '$.derived_safe_equal', b.thunk(memo.expression)))
45+
);
46+
}
47+
4248
async_ids() {
4349
return this.async.map((memo) => memo.id);
4450
}

0 commit comments

Comments
 (0)