@@ -105,7 +105,6 @@ export class Derived<
105105 registerOnGraph (
106106 deps : ReadonlyArray < Derived < any > | Store < any > > = this . options . deps ,
107107 ) {
108- const toSort = new Set < Array < Derived < unknown > > > ( )
109108 for ( const dep of deps ) {
110109 if ( dep instanceof Derived ) {
111110 // First register the intermediate derived value if it's not already registered
@@ -116,12 +115,10 @@ export class Derived<
116115 // Register the derived as related derived to the store
117116 let relatedLinkedDerivedVals = __storeToDerived . get ( dep )
118117 if ( ! relatedLinkedDerivedVals ) {
119- relatedLinkedDerivedVals = [ this as never ]
118+ relatedLinkedDerivedVals = new Set ( )
120119 __storeToDerived . set ( dep , relatedLinkedDerivedVals )
121- } else if ( ! relatedLinkedDerivedVals . includes ( this as never ) ) {
122- relatedLinkedDerivedVals . push ( this as never )
123- toSort . add ( relatedLinkedDerivedVals )
124120 }
121+ relatedLinkedDerivedVals . add ( this as never )
125122
126123 // Register the store as a related store to this derived
127124 let relatedStores = __derivedToStore . get ( this as never )
@@ -132,16 +129,6 @@ export class Derived<
132129 relatedStores . add ( dep )
133130 }
134131 }
135- for ( const arr of toSort ) {
136- // First sort deriveds by dependency order
137- arr . sort ( ( a , b ) => {
138- // If a depends on b, b should go first
139- if ( a instanceof Derived && a . options . deps . includes ( b ) ) return 1
140- // If b depends on a, a should go first
141- if ( b instanceof Derived && b . options . deps . includes ( a ) ) return - 1
142- return 0
143- } )
144- }
145132 }
146133
147134 unregisterFromGraph (
@@ -153,10 +140,7 @@ export class Derived<
153140 } else if ( dep instanceof Store ) {
154141 const relatedLinkedDerivedVals = __storeToDerived . get ( dep )
155142 if ( relatedLinkedDerivedVals ) {
156- relatedLinkedDerivedVals . splice (
157- relatedLinkedDerivedVals . indexOf ( this as never ) ,
158- 1 ,
159- )
143+ relatedLinkedDerivedVals . delete ( this as never )
160144 }
161145
162146 const relatedStores = __derivedToStore . get ( this as never )
0 commit comments