Skip to content

Commit c7116ca

Browse files
committed
Revert "Sync alien-signals last commit"
This reverts commit 66dd59c.
1 parent 30ccb9f commit c7116ca

File tree

1 file changed

+48
-40
lines changed

1 file changed

+48
-40
lines changed

packages/reactivity/src/effect.ts

Lines changed: 48 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -538,27 +538,31 @@ export function checkDirty(deps: Link): boolean {
538538
if (dep.update()) {
539539
propagate(dep.subs!)
540540
let dirty = true
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
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
553558
}
554-
} else {
555-
sub.dirtyLevel = DirtyLevels.None
556-
}
557-
deps = prevLink.nextDep!
558-
if (deps !== undefined) {
559-
continue top
560-
}
561-
dirty = false
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)
562566
}
563567
return dirty
564568
}
@@ -568,27 +572,31 @@ export function checkDirty(deps: Link): boolean {
568572
const nextDep = deps.nextDep!
569573
if (nextDep === undefined) {
570574
let dirty = false
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
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
583592
}
584-
} else {
585-
sub.dirtyLevel = DirtyLevels.None
586-
}
587-
deps = prevLink.nextDep!
588-
if (deps !== undefined) {
589-
continue top
590-
}
591-
dirty = false
593+
deps = prevLink.nextDep!
594+
if (deps !== undefined) {
595+
continue top
596+
}
597+
sub = prevLink.sub as IComputed
598+
dirty = false
599+
} while (stack > 0)
592600
}
593601
return dirty
594602
}

0 commit comments

Comments
 (0)