@@ -139,16 +139,14 @@ export function getAllContexts() {
139139 * @returns {void }
140140 */
141141export function push ( props , runes = false , fn ) {
142- var ctx = ( component_context = {
142+ component_context = {
143143 p : component_context ,
144144 c : null ,
145- d : false ,
146145 e : null ,
147- m : false ,
148146 s : props ,
149147 x : null ,
150148 l : null
151- } ) ;
149+ } ;
152150
153151 if ( legacy_mode_flag && ! runes ) {
154152 component_context . l = {
@@ -159,10 +157,6 @@ export function push(props, runes = false, fn) {
159157 } ;
160158 }
161159
162- teardown ( ( ) => {
163- /** @type {ComponentContext } */ ( ctx ) . d = true ;
164- } ) ;
165-
166160 if ( DEV ) {
167161 // component function
168162 component_context . function = fn ;
@@ -176,37 +170,28 @@ export function push(props, runes = false, fn) {
176170 * @returns {T }
177171 */
178172export function pop ( component ) {
179- const context_stack_item = component_context ;
180- if ( context_stack_item !== null ) {
181- if ( component !== undefined ) {
182- context_stack_item . x = component ;
183- }
184- const component_effects = context_stack_item . e ;
185- if ( component_effects !== null ) {
186- var previous_effect = active_effect ;
187- var previous_reaction = active_reaction ;
188- context_stack_item . e = null ;
189- try {
190- for ( var i = 0 ; i < component_effects . length ; i ++ ) {
191- var component_effect = component_effects [ i ] ;
192- set_active_effect ( component_effect . effect ) ;
193- set_active_reaction ( component_effect . reaction ) ;
194- create_user_effect ( component_effect . fn ) ;
195- }
196- } finally {
197- set_active_effect ( previous_effect ) ;
198- set_active_reaction ( previous_reaction ) ;
199- }
200- }
201- component_context = context_stack_item . p ;
202- if ( DEV ) {
203- dev_current_component_function = context_stack_item . p ?. function ?? null ;
173+ var context = /** @type {ComponentContext } */ ( component_context ) ;
174+ var effects = context . e ;
175+
176+ if ( effects !== null ) {
177+ context . e = null ;
178+
179+ for ( var fn of effects ) {
180+ create_user_effect ( fn ) ;
204181 }
205- context_stack_item . m = true ;
206182 }
207- // Micro-optimization: Don't set .a above to the empty object
208- // so it can be garbage-collected when the return here is unused
209- return component || /** @type {T } */ ( { } ) ;
183+
184+ if ( component !== undefined ) {
185+ context . x = component ;
186+ }
187+
188+ component_context = context . p ;
189+
190+ if ( DEV ) {
191+ dev_current_component_function = component_context ?. function ?? null ;
192+ }
193+
194+ return component ?? /** @type {T } */ ( { } ) ;
210195}
211196
212197/** @returns {boolean } */
0 commit comments