Skip to content

Commit 8619d6a

Browse files
authored
Merge pull request #7505 from QwikDev/v2-wrapped-signal-value-serialization
chore: don't serialize wrapped signal value
2 parents 864ac34 + b3c278f commit 8619d6a

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

packages/qwik/src/core/shared/shared-serialization.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -275,18 +275,18 @@ const inflate = (
275275
number,
276276
unknown[],
277277
Map<EffectProperty | string, EffectSubscription> | null,
278-
unknown,
279278
AllSignalFlags,
280279
HostElement,
281280
...EffectSubscription[],
282281
];
283282
signal.$func$ = container.getSyncFn(d[0]);
284283
signal.$args$ = d[1];
285284
signal[_EFFECT_BACK_REF] = d[2];
286-
signal.$untrackedValue$ = d[3];
287-
signal.$flags$ = d[4];
288-
signal.$hostElement$ = d[5];
289-
signal.$effects$ = new Set(d.slice(6) as EffectSubscription[]);
285+
signal.$untrackedValue$ = NEEDS_COMPUTATION;
286+
signal.$flags$ = d[3];
287+
signal.$flags$ |= SignalFlags.INVALID;
288+
signal.$hostElement$ = d[4];
289+
signal.$effects$ = new Set(d.slice(5) as EffectSubscription[]);
290290
break;
291291
}
292292
// Inflating a SerializerSignal is the same as inflating a ComputedSignal
@@ -843,9 +843,10 @@ export const createSerializationContext = (
843843
* SerializerSignal is always serialized if it was already calculated.
844844
*/
845845
const toSerialize =
846-
obj instanceof ComputedSignalImpl &&
847-
!(obj instanceof SerializerSignalImpl) &&
848-
(obj.$flags$ & SignalFlags.INVALID || fastSkipSerialize(obj))
846+
(obj instanceof ComputedSignalImpl &&
847+
!(obj instanceof SerializerSignalImpl) &&
848+
(obj.$flags$ & SignalFlags.INVALID || fastSkipSerialize(obj))) ||
849+
obj instanceof WrappedSignalImpl
849850
? NEEDS_COMPUTATION
850851
: obj.$untrackedValue$;
851852
if (toSerialize !== NEEDS_COMPUTATION) {
@@ -1238,7 +1239,6 @@ function serialize(serializationContext: SerializationContext): void {
12381239
output(TypeIds.WrappedSignal, [
12391240
...serializeWrappingFn(serializationContext, value),
12401241
filterEffectBackRefs(value[_EFFECT_BACK_REF]),
1241-
v,
12421242
value.$flags$,
12431243
value.$hostElement$,
12441244
...(value.$effects$ || []),

packages/qwik/src/core/shared/shared-serialization.unit.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,6 @@ describe('shared-serialization', () => {
377377
Number 3
378378
]
379379
Constant null
380-
Constant NEEDS_COMPUTATION
381380
Number 3
382381
Constant null
383382
]
@@ -392,11 +391,10 @@ describe('shared-serialization', () => {
392391
]
393392
Constant null
394393
Number 3
395-
Number 3
396394
Constant null
397395
]
398396
2 String "foo"
399-
(88 chars)"
397+
(80 chars)"
400398
`);
401399
});
402400
it(title(TypeIds.ComputedSignal), async () => {

0 commit comments

Comments
 (0)