Skip to content

Commit a8bf2e1

Browse files
committed
Update index.ts
1 parent f772dac commit a8bf2e1

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

src/index.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createReactiveSystem, ReactiveFlags, type Link, type ReactiveNode } from './system.js';
1+
import { createReactiveSystem, ReactiveFlags, type ReactiveNode } from './system.js';
22

33
interface EffectScopeNode extends ReactiveNode {
44
}
@@ -74,13 +74,7 @@ const {
7474
if ('getter' in node) {
7575
if (node.depsTail !== undefined) {
7676
node.flags = ReactiveFlags.Mutable | ReactiveFlags.Dirty;
77-
let link: Link | undefined = node.depsTail;
78-
node.depsTail = undefined;
79-
while (link !== undefined) {
80-
const prev: Link | undefined = link.prevDep;
81-
unlink(link, node);
82-
link = prev;
83-
}
77+
disposeAllDepsInReverse(node);
8478
}
8579
}
8680
else if ('currentValue' in node) {
@@ -421,18 +415,22 @@ function effectOper(this: EffectNode): void {
421415

422416
function effectScopeOper(this: EffectScopeNode): void {
423417
this.flags = ReactiveFlags.None;
424-
let link = this.depsTail;
425-
while (link !== undefined) {
426-
const prev = link.prevDep;
427-
unlink(link, this);
428-
link = prev;
429-
}
418+
disposeAllDepsInReverse(this);
430419
const sub = this.subs;
431420
if (sub !== undefined) {
432421
unlink(sub);
433422
}
434423
}
435424

425+
function disposeAllDepsInReverse(sub: ReactiveNode): void {
426+
let link = sub.depsTail;
427+
while (link !== undefined) {
428+
const prev = link.prevDep;
429+
unlink(link, sub);
430+
link = prev;
431+
}
432+
}
433+
436434
function purgeDeps(sub: ReactiveNode) {
437435
const depsTail = sub.depsTail;
438436
let dep = depsTail !== undefined ? depsTail.nextDep : sub.deps;

0 commit comments

Comments
 (0)