(current, workInProgress, nextChildren, renderExpirationTime)
| 16889 | } |
| 16890 | |
| 16891 | function reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime) { |
| 16892 | if (current === null) { |
| 16893 | // If this is a fresh new component that hasn't been rendered yet, we |
| 16894 | // won't update its child set by applying minimal side-effects. Instead, |
| 16895 | // we will add them all to the child before it gets rendered. That means |
| 16896 | // we can optimize this reconciliation pass by not tracking side-effects. |
| 16897 | workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime); |
| 16898 | } else { |
| 16899 | // If the current child is the same as the work in progress, it means that |
| 16900 | // we haven't yet started any work on these children. Therefore, we use |
| 16901 | // the clone algorithm to create a copy of all the current children. |
| 16902 | // If we had any progressed work already, that is invalid at this point so |
| 16903 | // let's throw it out. |
| 16904 | workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderExpirationTime); |
| 16905 | } |
| 16906 | } |
| 16907 | |
| 16908 | function forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderExpirationTime) { |
| 16909 | // This function is fork of reconcileChildren. It's used in cases where we |
no test coverage detected