@@ -22,7 +22,7 @@ export interface Subscriber {
2222
2323export interface Link {
2424 dep : Dependency | IComputed | IEffect ;
25- sub : IComputed | IEffect ;
25+ sub : Subscriber | IComputed | IEffect ;
2626 trackId : number ;
2727 // Also used as prev update
2828 prevSub : Link | undefined ;
@@ -41,9 +41,7 @@ export const enum DirtyLevels {
4141
4242export namespace System {
4343 export let activeSub : IComputed | IEffect | undefined = undefined ;
44- export let activeEffectScope : IEffect | undefined = undefined ;
4544 export let activeTrackId = 0 ;
46- export let activeEffectScopeTrackId = 0 ;
4745 export let batchDepth = 0 ;
4846 export let lastTrackId = 0 ;
4947 export let queuedEffects : IEffect | undefined = undefined ;
@@ -395,15 +393,15 @@ export namespace Subscriber {
395393 }
396394
397395 export function startTrackDependencies ( sub : IComputed | IEffect ) {
398- const newVersion = system . lastTrackId + 1 ;
396+ const newTrackId = system . lastTrackId + 1 ;
399397 const prevSub = system . activeSub ;
400398
401399 system . activeSub = sub ;
402- system . activeTrackId = newVersion ;
403- system . lastTrackId = newVersion ;
400+ system . activeTrackId = newTrackId ;
401+ system . lastTrackId = newTrackId ;
404402
405403 sub . depsTail = undefined ;
406- sub . trackId = newVersion ;
404+ sub . trackId = newTrackId ;
407405 sub . dirtyLevel = DirtyLevels . None ;
408406
409407 return prevSub ;
@@ -431,43 +429,6 @@ export namespace Subscriber {
431429 sub . trackId = - sub . trackId ;
432430 }
433431
434- export function startTrackEffects ( sub : IEffect ) {
435- const newVersion = system . lastTrackId + 1 ;
436- const prevSub = system . activeEffectScope ;
437-
438- system . activeEffectScope = sub ;
439- system . activeEffectScopeTrackId = newVersion ;
440- system . lastTrackId = newVersion ;
441-
442- sub . depsTail = undefined ;
443- sub . trackId = newVersion ;
444- sub . dirtyLevel = DirtyLevels . None ;
445-
446- return prevSub ;
447- }
448-
449- export function endTrackEffects ( sub : IEffect , prevSub : IEffect | undefined ) {
450- if ( prevSub !== undefined ) {
451- system . activeEffectScope = prevSub ;
452- system . activeEffectScopeTrackId = prevSub . trackId ;
453- } else {
454- system . activeEffectScope = undefined ;
455- system . activeEffectScopeTrackId = 0 ;
456- }
457-
458- const depsTail = sub . depsTail ;
459- if ( depsTail !== undefined ) {
460- if ( depsTail . nextDep !== undefined ) {
461- clearTrack ( depsTail . nextDep ) ;
462- depsTail . nextDep = undefined ;
463- }
464- } else if ( sub . deps !== undefined ) {
465- clearTrack ( sub . deps ) ;
466- sub . deps = undefined ;
467- }
468- sub . trackId = - sub . trackId ;
469- }
470-
471432 export function clearTrack ( link : Link ) {
472433 do {
473434 const dep = link . dep ;
0 commit comments