Skip to content

Commit 66dd59c

Browse files
committed
Sync alien-signals last commit
1 parent 78a08bb commit 66dd59c

File tree

1 file changed

+40
-48
lines changed

1 file changed

+40
-48
lines changed

packages/reactivity/src/effect.ts

Lines changed: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -538,31 +538,27 @@ export function checkDirty(deps: Link): boolean {
538538
if (dep.update()) {
539539
propagate(dep.subs!)
540540
let dirty = true
541-
if (stack > 0) {
542-
let sub = deps.sub as IComputed
543-
do {
544-
stack--
545-
const subSubs = sub.subs!
546-
const prevLink = subSubs.prevSub!
547-
subSubs.prevSub = undefined
548-
if (dirty) {
549-
if (sub.update()) {
550-
propagate(subSubs)
551-
deps = prevLink
552-
sub = prevLink.sub as IComputed
553-
dirty = true
554-
continue
555-
}
556-
} else {
557-
sub.dirtyLevel = DirtyLevels.None
541+
while (stack > 0) {
542+
stack--
543+
const sub = deps.sub as IComputed
544+
const subSubs = sub.subs!
545+
const prevLink = subSubs.prevSub!
546+
subSubs.prevSub = undefined
547+
if (dirty) {
548+
if (sub.update()) {
549+
propagate(subSubs)
550+
deps = prevLink
551+
dirty = true
552+
continue
558553
}
559-
deps = prevLink.nextDep!
560-
if (deps !== undefined) {
561-
continue top
562-
}
563-
dirty = false
564-
sub = prevLink.sub as IComputed
565-
} while (stack > 0)
554+
} else {
555+
sub.dirtyLevel = DirtyLevels.None
556+
}
557+
deps = prevLink.nextDep!
558+
if (deps !== undefined) {
559+
continue top
560+
}
561+
dirty = false
566562
}
567563
return dirty
568564
}
@@ -572,31 +568,27 @@ export function checkDirty(deps: Link): boolean {
572568
const nextDep = deps.nextDep!
573569
if (nextDep === undefined) {
574570
let dirty = false
575-
if (stack > 0) {
576-
let sub = deps.sub as IComputed
577-
do {
578-
stack--
579-
const subSubs = sub.subs!
580-
const prevLink = subSubs.prevSub!
581-
subSubs.prevSub = undefined
582-
if (dirty) {
583-
if (sub.update()) {
584-
propagate(subSubs)
585-
deps = prevLink
586-
sub = prevLink.sub as IComputed
587-
dirty = true
588-
continue
589-
}
590-
} else {
591-
sub.dirtyLevel = DirtyLevels.None
592-
}
593-
deps = prevLink.nextDep!
594-
if (deps !== undefined) {
595-
continue top
571+
while (stack > 0) {
572+
stack--
573+
const sub = deps.sub as IComputed
574+
const subSubs = sub.subs!
575+
const prevLink = subSubs.prevSub!
576+
subSubs.prevSub = undefined
577+
if (dirty) {
578+
if (sub.update()) {
579+
propagate(subSubs)
580+
deps = prevLink
581+
dirty = true
582+
continue
596583
}
597-
sub = prevLink.sub as IComputed
598-
dirty = false
599-
} while (stack > 0)
584+
} else {
585+
sub.dirtyLevel = DirtyLevels.None
586+
}
587+
deps = prevLink.nextDep!
588+
if (deps !== undefined) {
589+
continue top
590+
}
591+
dirty = false
600592
}
601593
return dirty
602594
}

0 commit comments

Comments
 (0)