@@ -398,13 +398,13 @@ function schedule_possible_effect_self_invalidation(signal, effect, root = true)
398398/**
399399 * @template V
400400 * @param {Reaction } reaction
401+ * @param {Reaction | null } [previous_reaction]
401402 * @returns {V }
402403 */
403- export function update_reaction ( reaction ) {
404+ export function update_reaction ( reaction , previous_reaction = active_reaction ) {
404405 var previous_deps = new_deps ;
405406 var previous_skipped_deps = skipped_deps ;
406407 var previous_untracked_writes = untracked_writes ;
407- var previous_reaction = active_reaction ;
408408 var previous_skip_reaction = skip_reaction ;
409409 var previous_reaction_sources = reaction_sources ;
410410 var previous_component_context = component_context ;
@@ -562,9 +562,10 @@ export function remove_reactions(signal, start_index) {
562562
563563/**
564564 * @param {Effect } effect
565+ * @param {Reaction | null } [previous_reaction]
565566 * @returns {void }
566567 */
567- export function update_effect ( effect ) {
568+ export function update_effect ( effect , previous_reaction = active_reaction ) {
568569 var flags = effect . f ;
569570
570571 if ( ( flags & DESTROYED ) !== 0 ) {
@@ -593,7 +594,7 @@ export function update_effect(effect) {
593594 }
594595
595596 execute_effect_teardown ( effect ) ;
596- var teardown = update_reaction ( effect ) ;
597+ var teardown = update_reaction ( effect , previous_reaction ) ;
597598 effect . teardown = typeof teardown === 'function' ? teardown : null ;
598599 effect . wv = write_version ;
599600
@@ -803,7 +804,7 @@ function process_effects(root) {
803804 try {
804805 active_reaction = effect ;
805806 if ( check_dirtiness ( effect ) ) {
806- update_effect ( effect ) ;
807+ update_effect ( effect , previous_active_reaction ) ;
807808 }
808809 } catch ( error ) {
809810 handle_error ( error , effect , null , effect . ctx ) ;
0 commit comments