File tree Expand file tree Collapse file tree 4 files changed +17
-6
lines changed
tests/runtime-runes/samples/derived-map Expand file tree Collapse file tree 4 files changed +17
-6
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ ' svelte ' : patch
3+ ---
4+
5+ fix: more exhaustive check during ` SvelteMap.set ` in deriveds
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import { DEV } from 'esm-env';
33import { source , set } from '../internal/client/reactivity/sources.js' ;
44import { get } from '../internal/client/runtime.js' ;
55import { increment } from './utils.js' ;
6+ import { DERIVED } from '../internal/client/constants.js' ;
67
78/**
89 * @template K
@@ -102,12 +103,10 @@ export class SvelteMap extends Map {
102103 increment ( version ) ;
103104 } else if ( prev_res !== value ) {
104105 increment ( s ) ;
105- // If no one listening to this property and is listening to the version, or
106- // the inverse, then we should increment the version to be safe
107- if (
108- ( s . reactions === null && version . reactions !== null ) ||
109- ( s . reactions !== null && version . reactions === null )
110- ) {
106+
107+ // if not every reaction of s is a reaction of version we need to also include version
108+ const needs_version_increase = ! s . reactions ?. every ( ( r ) => version . reactions ?. includes ( r ) ) ;
109+ if ( needs_version_increase ) {
111110 increment ( version ) ;
112111 }
113112 }
Original file line number Diff line number Diff line change @@ -3,6 +3,9 @@ import { test } from '../../test';
33
44export default test ( {
55 html : `Loading` ,
6+ compileOptions : {
7+ // dev: true
8+ } ,
69
710 async test ( { assert, target } ) {
811 await Promise . resolve ( ) ;
Original file line number Diff line number Diff line change 2424 }
2525
2626 const value = $derived (get_async (1 ));
27+ const value2 = $derived (get_async (1 ));
28+ // both values are read before the set
29+ value;
30+ value2;
2731 </script >
2832
2933{#if value instanceof Promise }
You can’t perform that action at this time.
0 commit comments