(returnFiber, newChild, expirationTime)
| 17307 | } |
| 17308 | |
| 17309 | function createChild(returnFiber, newChild, expirationTime) { |
| 17310 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 17311 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 17312 | // we can continue to replace it without aborting even if it is not a text |
| 17313 | // node. |
| 17314 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 17315 | created.return = returnFiber; |
| 17316 | return created; |
| 17317 | } |
| 17318 | |
| 17319 | if (typeof newChild === 'object' && newChild !== null) { |
| 17320 | switch (newChild.$$typeof) { |
| 17321 | case REACT_ELEMENT_TYPE: |
| 17322 | { |
| 17323 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 17324 | |
| 17325 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 17326 | _created.return = returnFiber; |
| 17327 | return _created; |
| 17328 | } |
| 17329 | |
| 17330 | case REACT_PORTAL_TYPE: |
| 17331 | { |
| 17332 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 17333 | |
| 17334 | _created2.return = returnFiber; |
| 17335 | return _created2; |
| 17336 | } |
| 17337 | } |
| 17338 | |
| 17339 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 17340 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 17341 | |
| 17342 | _created3.return = returnFiber; |
| 17343 | return _created3; |
| 17344 | } |
| 17345 | |
| 17346 | throwOnInvalidObjectType(returnFiber, newChild); |
| 17347 | } |
| 17348 | |
| 17349 | { |
| 17350 | if (typeof newChild === 'function') { |
| 17351 | warnOnFunctionType(); |
| 17352 | } |
| 17353 | } |
| 17354 | |
| 17355 | return null; |
| 17356 | } |
| 17357 | |
| 17358 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 17359 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected