@@ -209,7 +209,13 @@ function notify(e: Effect | EffectScope) {
209209function run ( e : Effect | EffectScope , flags : ReactiveFlags ) : void {
210210 if (
211211 flags & 16 satisfies ReactiveFlags . Dirty
212- || ( flags & 32 satisfies ReactiveFlags . Pending && checkDirty ( e . deps ! , e ) )
212+ || (
213+ flags & 32 satisfies ReactiveFlags . Pending
214+ && (
215+ checkDirty ( e . deps ! , e )
216+ || ( e . flags = flags & ~ ( 32 satisfies ReactiveFlags . Pending ) , false )
217+ )
218+ )
213219 ) {
214220 const prev = setCurrentSub ( e ) ;
215221 startTracking ( e ) ;
@@ -220,8 +226,6 @@ function run(e: Effect | EffectScope, flags: ReactiveFlags): void {
220226 endTracking ( e ) ;
221227 }
222228 return ;
223- } else if ( flags & 32 satisfies ReactiveFlags . Pending ) {
224- e . flags = flags & ~ ( 32 satisfies ReactiveFlags . Pending ) ;
225229 }
226230 let link = e . deps ;
227231 while ( link !== undefined ) {
@@ -248,16 +252,20 @@ function computedOper<T>(this: Computed<T>): T {
248252 const flags = this . flags ;
249253 if (
250254 flags & 16 satisfies ReactiveFlags . Dirty
251- || ( flags & 32 satisfies ReactiveFlags . Pending && checkDirty ( this . deps ! , this ) )
255+ || (
256+ flags & 32 satisfies ReactiveFlags . Pending
257+ && (
258+ checkDirty ( this . deps ! , this )
259+ || ( this . flags = flags & ~ ( 32 satisfies ReactiveFlags . Pending ) , false )
260+ )
261+ )
252262 ) {
253263 if ( updateComputed ( this ) ) {
254264 const subs = this . subs ;
255265 if ( subs !== undefined ) {
256266 shallowPropagate ( subs ) ;
257267 }
258268 }
259- } else if ( flags & 32 satisfies ReactiveFlags . Pending ) {
260- this . flags = flags & ~ ( 32 satisfies ReactiveFlags . Pending ) ;
261269 }
262270 if ( activeSub !== undefined ) {
263271 link ( this , activeSub ) ;
0 commit comments