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) {
767767 } else if ( is_derived && /** @type {Derived } */ ( signal ) . deps === null ) {
768768 var derived = /** @type {Derived } */ ( signal ) ;
769769 var parent = derived . parent ;
770+ var target = derived ;
770771
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+ }
778783 }
779784 }
780785
You can’t perform that action at this time.
0 commit comments