nl_tokens: / * function reuseChildrenEffects ( returnFiber : Fiber firstChild : Fiber ) { let child = firstChild ; do { Ensure that the first and last effect of the parent corresponds to the children s first and last effect . if ( !returnFiber . firstEffect ) { returnFiber . firstEffect = child . firstEffect ; } if ( child . lastEffect ) { if ( returnFiber . lastEffect ) { returnFiber . lastEffect . nextEffect = child . firstEffect ; } returnFiber . lastEffect = child . lastEffect ; } } while ( child = child . sibling ) ; }
pl_tokens: function bailoutOnAlreadyFinishedWork ( current$$1 , workInProgress , renderExpirationTime ) { cancelWorkTimer ( workInProgress ) ; if ( current$$1 !== null ) { // Reuse previous context list workInProgress . firstContextDependency = current$$1 . firstContextDependency ; } if ( enableProfilerTimer ) { // Don't update "base" render times for bailouts. stopProfilerTimerIfRunning ( workInProgress ) ; } // Check if the children have any pending work. var childExpirationTime = workInProgress . childExpirationTime ; if ( childExpirationTime === NoWork || childExpirationTime > renderExpirationTime ) { // The children don't have any work either. We can skip them. // TODO: Once we add back resuming, we should check if the children are // a work-in-progress set. If so, we need to transfer their effects. return null ; } else { // This fiber doesn't have work, but its subtree does. Clone the child // fibers and continue. cloneChildFibers ( current$$1 , workInProgress ) ; return workInProgress . <mask> ; } }