(workInProgress)
| 13249 | } |
| 13250 | |
| 13251 | function performUnitOfWork(workInProgress) { |
| 13252 | // The current, flushed, state of this fiber is the alternate. |
| 13253 | // Ideally nothing should rely on this, but relying on it here |
| 13254 | // means that we don't need an additional field on the work in |
| 13255 | // progress. |
| 13256 | var current = workInProgress.alternate; |
| 13257 | |
| 13258 | // See if beginning this work spawns more work. |
| 13259 | startWorkTimer(workInProgress); |
| 13260 | { |
| 13261 | ReactDebugCurrentFiber.setCurrentFiber(workInProgress); |
| 13262 | } |
| 13263 | |
| 13264 | if (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) { |
| 13265 | stashedWorkInProgressProperties = _assign({}, workInProgress); |
| 13266 | } |
| 13267 | var next = beginWork(current, workInProgress, nextRenderExpirationTime); |
| 13268 | |
| 13269 | { |
| 13270 | ReactDebugCurrentFiber.resetCurrentFiber(); |
| 13271 | } |
| 13272 | if (true && ReactFiberInstrumentation_1.debugTool) { |
| 13273 | ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress); |
| 13274 | } |
| 13275 | |
| 13276 | if (next === null) { |
| 13277 | // If this doesn't spawn new work, complete the current work. |
| 13278 | next = completeUnitOfWork(workInProgress); |
| 13279 | } |
| 13280 | |
| 13281 | ReactCurrentOwner.current = null; |
| 13282 | |
| 13283 | return next; |
| 13284 | } |
| 13285 | |
| 13286 | function workLoop(isAsync) { |
| 13287 | if (!isAsync) { |
no test coverage detected