File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
packages/svelte/src/internal/client Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -767,14 +767,19 @@ export function get(signal) {
767
767
} else if ( is_derived && /** @type {Derived } */ ( signal ) . deps === null ) {
768
768
var derived = /** @type {Derived } */ ( signal ) ;
769
769
var parent = derived . parent ;
770
+ var target = derived ;
770
771
771
- if (
772
- parent !== null &&
773
- ( parent . f & DERIVED ) === 0 &&
774
- ! ( /** @type {Effect } */ ( parent ) . deriveds ?. includes ( derived ) )
775
- ) {
776
- var parent_effect = /** @type {Effect } */ ( parent ) ;
777
- ( parent_effect . deriveds ??= [ ] ) . push ( derived ) ;
772
+ while ( parent !== null ) {
773
+ if ( ( parent . f & DERIVED ) !== 0 ) {
774
+ target = /** @type {Derived } */ ( parent ) ;
775
+ parent = /** @type {Derived } */ ( parent . parent ) ;
776
+ } else {
777
+ if ( ! ( /** @type {Effect } */ ( parent ) . deriveds ?. includes ( target ) ) ) {
778
+ var parent_effect = /** @type {Effect } */ ( parent ) ;
779
+ ( parent_effect . deriveds ??= [ ] ) . push ( target ) ;
780
+ }
781
+ break ;
782
+ }
778
783
}
779
784
}
780
785
You can’t perform that action at this time.
0 commit comments