(newFiber, lastPlacedIndex, newIndex)
| 17202 | } |
| 17203 | |
| 17204 | function placeChild(newFiber, lastPlacedIndex, newIndex) { |
| 17205 | newFiber.index = newIndex; |
| 17206 | |
| 17207 | if (!shouldTrackSideEffects) { |
| 17208 | // Noop. |
| 17209 | return lastPlacedIndex; |
| 17210 | } |
| 17211 | |
| 17212 | var current = newFiber.alternate; |
| 17213 | |
| 17214 | if (current !== null) { |
| 17215 | var oldIndex = current.index; |
| 17216 | |
| 17217 | if (oldIndex < lastPlacedIndex) { |
| 17218 | // This is a move. |
| 17219 | newFiber.effectTag = Placement; |
| 17220 | return lastPlacedIndex; |
| 17221 | } else { |
| 17222 | // This item can stay in place. |
| 17223 | return oldIndex; |
| 17224 | } |
| 17225 | } else { |
| 17226 | // This is an insertion. |
| 17227 | newFiber.effectTag = Placement; |
| 17228 | return lastPlacedIndex; |
| 17229 | } |
| 17230 | } |
| 17231 | |
| 17232 | function placeSingleChild(newFiber) { |
| 17233 | // This is simpler for the single child case. We only need to do a |
no outgoing calls
no test coverage detected