(workInProgress)
| 13465 | } |
| 13466 | |
| 13467 | function performUnitOfWork(workInProgress) { |
| 13468 | // The current, flushed, state of this fiber is the alternate. |
| 13469 | // Ideally nothing should rely on this, but relying on it here |
| 13470 | // means that we don't need an additional field on the work in |
| 13471 | // progress. |
| 13472 | var current = workInProgress.alternate; |
| 13473 | |
| 13474 | // See if beginning this work spawns more work. |
| 13475 | startWorkTimer(workInProgress); |
| 13476 | { |
| 13477 | ReactDebugCurrentFiber.setCurrentFiber(workInProgress); |
| 13478 | } |
| 13479 | |
| 13480 | if (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) { |
| 13481 | stashedWorkInProgressProperties = _assign({}, workInProgress); |
| 13482 | } |
| 13483 | var next = beginWork(current, workInProgress, nextRenderExpirationTime); |
| 13484 | |
| 13485 | { |
| 13486 | ReactDebugCurrentFiber.resetCurrentFiber(); |
| 13487 | } |
| 13488 | if (true && ReactFiberInstrumentation_1.debugTool) { |
| 13489 | ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress); |
| 13490 | } |
| 13491 | |
| 13492 | if (next === null) { |
| 13493 | // If this doesn't spawn new work, complete the current work. |
| 13494 | next = completeUnitOfWork(workInProgress); |
| 13495 | } |
| 13496 | |
| 13497 | ReactCurrentOwner.current = null; |
| 13498 | |
| 13499 | return next; |
| 13500 | } |
| 13501 | |
| 13502 | function workLoop(isAsync) { |
| 13503 | if (!isAsync) { |
no test coverage detected