Skip to content

Commit 0ef906c

Browse files
authored
chore: make versioning more consistent (#12058)
1 parent 7a0ce2d commit 0ef906c

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

packages/svelte/src/internal/client/reactivity/deriveds.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ export function update_derived(derived, force_schedule) {
103103
set_signal_status(derived, status);
104104

105105
if (!derived.equals(value)) {
106-
derived.version = increment_version();
107106
derived.v = value;
107+
derived.version = increment_version();
108+
108109
mark_reactions(derived, DIRTY, force_schedule);
109110

110111
if (DEV && force_schedule) {

packages/svelte/src/internal/client/reactivity/sources.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ export function mutate(source, value) {
7878

7979
/**
8080
* @template V
81-
* @param {import('#client').Source<V>} signal
81+
* @param {import('#client').Source<V>} source
8282
* @param {V} value
8383
* @returns {V}
8484
*/
85-
export function set(signal, value) {
86-
var initialized = signal.v !== UNINITIALIZED;
85+
export function set(source, value) {
86+
var initialized = source.v !== UNINITIALIZED;
8787

8888
if (
8989
initialized &&
@@ -94,11 +94,11 @@ export function set(signal, value) {
9494
e.state_unsafe_mutation();
9595
}
9696

97-
if (!signal.equals(value)) {
98-
signal.v = value;
97+
if (!source.equals(value)) {
98+
source.v = value;
99+
source.version = increment_version();
99100

100-
// Increment write version so that unowned signals can properly track dirtiness
101-
signal.version = increment_version();
101+
mark_reactions(source, DIRTY, true);
102102

103103
// If the current signal is running for the first time, it won't have any
104104
// reactions as we only allocate and assign the reactions after the signal
@@ -116,25 +116,23 @@ export function set(signal, value) {
116116
(current_effect.f & CLEAN) !== 0 &&
117117
(current_effect.f & BRANCH_EFFECT) === 0
118118
) {
119-
if (current_dependencies !== null && current_dependencies.includes(signal)) {
119+
if (current_dependencies !== null && current_dependencies.includes(source)) {
120120
set_signal_status(current_effect, DIRTY);
121121
schedule_effect(current_effect);
122122
} else {
123123
if (current_untracked_writes === null) {
124-
set_current_untracked_writes([signal]);
124+
set_current_untracked_writes([source]);
125125
} else {
126-
current_untracked_writes.push(signal);
126+
current_untracked_writes.push(source);
127127
}
128128
}
129129
}
130130

131-
mark_reactions(signal, DIRTY, true);
132-
133131
if (DEV) {
134132
if (is_batching_effect) {
135-
set_last_inspected_signal(/** @type {import('#client').ValueDebug} */ (signal));
133+
set_last_inspected_signal(/** @type {import('#client').ValueDebug} */ (source));
136134
} else {
137-
for (const fn of /** @type {import('#client').ValueDebug} */ (signal).inspect) fn();
135+
for (const fn of /** @type {import('#client').ValueDebug} */ (source).inspect) fn();
138136
}
139137
}
140138
}

0 commit comments

Comments
 (0)