@@ -204,24 +204,13 @@ function hadNoMutationsEffects(current: null | Fiber, completedWork: Fiber) {
204204  return  true ; 
205205} 
206206
207- let  appendAllChildren :  ( 
207+ function  appendAllChildren ( 
208208  parent : Instance , 
209209  workInProgress : Fiber , 
210210  needsVisibilityToggle : boolean , 
211211  isHidden : boolean , 
212- )  =>  void ; 
213- let  updateHostContainer ; 
214- let  updateHostComponent ; 
215- let  updateHostText ; 
216- if  ( supportsMutation )  { 
217-   // Mutation mode 
218- 
219-   appendAllChildren  =  function  ( 
220-     parent : Instance , 
221-     workInProgress : Fiber , 
222-     needsVisibilityToggle : boolean , 
223-     isHidden : boolean , 
224-   )  { 
212+ )  { 
213+   if  ( supportsMutation )  { 
225214    // We only have the top Fiber that was created but we need recurse down its 
226215    // children to find all the terminal nodes. 
227216    let  node  =  workInProgress . child ; 
@@ -258,73 +247,7 @@ if (supportsMutation) {
258247      node . sibling . return  =  node . return ; 
259248      node  =  node . sibling ; 
260249    } 
261-   } ; 
262- 
263-   updateHostContainer =  function  ( 
264-     current : null  |  Fiber , 
265-     workInProgress : Fiber , 
266-   )  { 
267-     // Noop 
268-   } ; 
269-   updateHostComponent  =  function  ( 
270-     current : Fiber , 
271-     workInProgress : Fiber , 
272-     type : Type , 
273-     newProps : Props , 
274-   )  { 
275-     // If we have an alternate, that means this is an update and we need to 
276-     // schedule a side-effect to do the updates. 
277-     const  oldProps  =  current . memoizedProps ; 
278-     if  ( oldProps  ===  newProps )  { 
279-       // In mutation mode, this is sufficient for a bailout because 
280-       // we won't touch this node even if children changed. 
281-       return ; 
282-     } 
283- 
284-     // If we get updated because one of our children updated, we don't 
285-     // have newProps so we'll have to reuse them. 
286-     // TODO: Split the update API as separate for the props vs. children. 
287-     // Even better would be if children weren't special cased at all tho. 
288-     const  instance : Instance  =  workInProgress . stateNode ; 
289-     const  currentHostContext  =  getHostContext ( ) ; 
290-     // TODO: Experiencing an error where oldProps is null. Suggests a host 
291-     // component is hitting the resume path. Figure out why. Possibly 
292-     // related to `hidden`. 
293-     const  updatePayload  =  prepareUpdate ( 
294-       instance , 
295-       type , 
296-       oldProps , 
297-       newProps , 
298-       currentHostContext , 
299-     ) ; 
300-     // TODO: Type this specific to this type of component. 
301-     workInProgress . updateQueue  =  ( updatePayload : any ) ; 
302-     // If the update payload indicates that there is a change or if there 
303-     // is a new ref we mark this as an update. All the work is done in commitWork. 
304-     if  ( updatePayload )  { 
305-       markUpdate ( workInProgress ) ; 
306-     } 
307-   } ; 
308-   updateHostText  =  function  ( 
309-     current : Fiber , 
310-     workInProgress : Fiber , 
311-     oldText : string , 
312-     newText : string , 
313-   )  { 
314-     // If the text differs, mark it as an update. All the work in done in commitWork. 
315-     if  ( oldText  !==  newText )  { 
316-       markUpdate ( workInProgress ) ; 
317-     } 
318-   } ; 
319- }  else  if  ( supportsPersistence )  { 
320-   // Persistent host tree mode 
321- 
322-   appendAllChildren  =  function  ( 
323-     parent : Instance , 
324-     workInProgress : Fiber , 
325-     needsVisibilityToggle : boolean , 
326-     isHidden : boolean , 
327-   )  { 
250+   }  else  if  ( supportsPersistence )  { 
328251    // We only have the top Fiber that was created but we need recurse down its 
329252    // children to find all the terminal nodes. 
330253    let  node  =  workInProgress . child ; 
@@ -383,15 +306,17 @@ if (supportsMutation) {
383306      node . sibling . return  =  node . return ; 
384307      node  =  node . sibling ; 
385308    } 
386-   } ; 
387- 
388-   // An unfortunate fork of appendAllChildren because we have two different parent types. 
389-   const  appendAllChildrenToContainer  =  function  ( 
390-     containerChildSet : ChildSet , 
391-     workInProgress : Fiber , 
392-     needsVisibilityToggle : boolean , 
393-     isHidden : boolean , 
394-   )  { 
309+   } 
310+ } 
311+ 
312+ // An unfortunate fork of appendAllChildren because we have two different parent types. 
313+ function  appendAllChildrenToContainer ( 
314+   containerChildSet : ChildSet , 
315+   workInProgress : Fiber , 
316+   needsVisibilityToggle : boolean , 
317+   isHidden : boolean , 
318+ )  { 
319+   if  ( supportsPersistence )  { 
395320    // We only have the top Fiber that was created but we need recurse down its 
396321    // children to find all the terminal nodes. 
397322    let  node  =  workInProgress . child ; 
@@ -457,11 +382,10 @@ if (supportsMutation) {
457382      node . sibling . return  =  node . return ; 
458383      node  =  node . sibling ; 
459384    } 
460-   } ; 
461-   updateHostContainer =  function  ( 
462-     current : null  |  Fiber , 
463-     workInProgress : Fiber , 
464-   )  { 
385+   } 
386+ } 
387+ function  updateHostContainer ( current : null  |  Fiber ,  workInProgress : Fiber )  { 
388+   if  ( supportsPersistence )  { 
465389    const  portalOrRoot : { 
466390      containerInfo : Container , 
467391      pendingChildren : ChildSet , 
@@ -480,13 +404,48 @@ if (supportsMutation) {
480404      markUpdate ( workInProgress ) ; 
481405      finalizeContainerChildren ( container ,  newChildSet ) ; 
482406    } 
483-   } ; 
484-   updateHostComponent  =  function  ( 
485-     current : Fiber , 
486-     workInProgress : Fiber , 
487-     type : Type , 
488-     newProps : Props , 
489-   )  { 
407+   } 
408+ } 
409+ function  updateHostComponent ( 
410+   current : Fiber , 
411+   workInProgress : Fiber , 
412+   type : Type , 
413+   newProps : Props , 
414+ )  { 
415+   if  ( supportsMutation )  { 
416+     // If we have an alternate, that means this is an update and we need to 
417+     // schedule a side-effect to do the updates. 
418+     const  oldProps  =  current . memoizedProps ; 
419+     if  ( oldProps  ===  newProps )  { 
420+       // In mutation mode, this is sufficient for a bailout because 
421+       // we won't touch this node even if children changed. 
422+       return ; 
423+     } 
424+ 
425+     // If we get updated because one of our children updated, we don't 
426+     // have newProps so we'll have to reuse them. 
427+     // TODO: Split the update API as separate for the props vs. children. 
428+     // Even better would be if children weren't special cased at all tho. 
429+     const  instance : Instance  =  workInProgress . stateNode ; 
430+     const  currentHostContext  =  getHostContext ( ) ; 
431+     // TODO: Experiencing an error where oldProps is null. Suggests a host 
432+     // component is hitting the resume path. Figure out why. Possibly 
433+     // related to `hidden`. 
434+     const  updatePayload  =  prepareUpdate ( 
435+       instance , 
436+       type , 
437+       oldProps , 
438+       newProps , 
439+       currentHostContext , 
440+     ) ; 
441+     // TODO: Type this specific to this type of component. 
442+     workInProgress . updateQueue  =  ( updatePayload : any ) ; 
443+     // If the update payload indicates that there is a change or if there 
444+     // is a new ref we mark this as an update. All the work is done in commitWork. 
445+     if  ( updatePayload )  { 
446+       markUpdate ( workInProgress ) ; 
447+     } 
448+   }  else  if  ( supportsPersistence )  { 
490449    const  currentInstance  =  current . stateNode ; 
491450    const  oldProps  =  current . memoizedProps ; 
492451    // If there are no effects associated with this node, then none of our children had any updates. 
@@ -541,13 +500,20 @@ if (supportsMutation) {
541500      // If children might have changed, we have to add them all to the set. 
542501      appendAllChildren ( newInstance ,  workInProgress ,  false ,  false ) ; 
543502    } 
544-   } ; 
545-   updateHostText  =  function  ( 
546-     current : Fiber , 
547-     workInProgress : Fiber , 
548-     oldText : string , 
549-     newText : string , 
550-   )  { 
503+   } 
504+ } 
505+ function  updateHostText ( 
506+   current : Fiber , 
507+   workInProgress : Fiber , 
508+   oldText : string , 
509+   newText : string , 
510+ )  { 
511+   if  ( supportsMutation )  { 
512+     // If the text differs, mark it as an update. All the work in done in commitWork. 
513+     if  ( oldText  !==  newText )  { 
514+       markUpdate ( workInProgress ) ; 
515+     } 
516+   }  else  if  ( supportsPersistence )  { 
551517    if  ( oldText  !==  newText )  { 
552518      // If the text content differs, we'll create a new text instance for it. 
553519      const  rootContainerInstance  =  getRootHostContainer ( ) ; 
@@ -564,31 +530,7 @@ if (supportsMutation) {
564530    }  else  { 
565531      workInProgress . stateNode  =  current . stateNode ; 
566532    } 
567-   } ; 
568- }  else  { 
569-   // No host operations 
570-   updateHostContainer  =  function  ( 
571-     current : null  |  Fiber , 
572-     workInProgress : Fiber , 
573-   )  { 
574-     // Noop 
575-   } ; 
576-   updateHostComponent  =  function  ( 
577-     current : Fiber , 
578-     workInProgress : Fiber , 
579-     type : Type , 
580-     newProps : Props , 
581-   )  { 
582-     // Noop 
583-   } ; 
584-   updateHostText  =  function  ( 
585-     current : Fiber , 
586-     workInProgress : Fiber , 
587-     oldText : string , 
588-     newText : string , 
589-   )  { 
590-     // Noop 
591-   } ; 
533+   } 
592534} 
593535
594536function  cutOffTailIfNeeded ( 
0 commit comments