1
- // Ported from https://github.com/stackblitz/alien-signals/blob/v0.4.4 /src/system.ts
1
+ // Ported from https://github.com/stackblitz/alien-signals/blob/v0.4.5 /src/system.ts
2
2
3
3
export interface IEffect extends Subscriber {
4
4
nextNotify : IEffect | undefined
@@ -42,7 +42,6 @@ export enum SubscriberFlags {
42
42
// 2~5 are using in EffectFlags
43
43
ToCheckDirty = 1 << 6 ,
44
44
Dirty = 1 << 7 ,
45
- Dirtys = SubscriberFlags . ToCheckDirty | SubscriberFlags . Dirty ,
46
45
47
46
DirtyFlagsIndex = 6 ,
48
47
}
@@ -278,7 +277,7 @@ export function checkDirty(deps: Link): boolean {
278
277
continue
279
278
}
280
279
} else {
281
- sub . flags &= ~ SubscriberFlags . Dirtys
280
+ sub . flags &= ~ SubscriberFlags . ToCheckDirty
282
281
}
283
282
deps = prevLink . nextDep !
284
283
if ( deps !== undefined ) {
@@ -297,7 +296,12 @@ export function checkDirty(deps: Link): boolean {
297
296
export function startTrack ( sub : Subscriber ) : void {
298
297
sub . depsTail = undefined
299
298
sub . flags =
300
- ( sub . flags & ~ ( SubscriberFlags . CanPropagate | SubscriberFlags . Dirtys ) ) |
299
+ ( sub . flags &
300
+ ~ (
301
+ SubscriberFlags . CanPropagate |
302
+ SubscriberFlags . ToCheckDirty |
303
+ SubscriberFlags . Dirty
304
+ ) ) |
301
305
SubscriberFlags . Tracking
302
306
}
303
307
@@ -347,11 +351,8 @@ function clearTrack(link: Link): void {
347
351
linkPool = link
348
352
349
353
if ( dep . subs === undefined && 'deps' in dep ) {
350
- if ( 'notify' in dep ) {
351
- dep . flags &= ~ SubscriberFlags . Dirtys
352
- } else {
353
- dep . flags |= SubscriberFlags . Dirty
354
- }
354
+ // dep is never be IEffect in Vue
355
+ dep . flags |= SubscriberFlags . Dirty
355
356
const depDeps = dep . deps
356
357
if ( depDeps !== undefined ) {
357
358
link = depDeps
0 commit comments