(returnFiber, newChild, expirationTime)
| 9320 | } |
| 9321 | |
| 9322 | function createChild(returnFiber, newChild, expirationTime) { |
| 9323 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 9324 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 9325 | // we can continue to replace it without aborting even if it is not a text |
| 9326 | // node. |
| 9327 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 9328 | created['return'] = returnFiber; |
| 9329 | return created; |
| 9330 | } |
| 9331 | |
| 9332 | if (typeof newChild === 'object' && newChild !== null) { |
| 9333 | switch (newChild.$$typeof) { |
| 9334 | case REACT_ELEMENT_TYPE: |
| 9335 | { |
| 9336 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 9337 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 9338 | _created['return'] = returnFiber; |
| 9339 | return _created; |
| 9340 | } |
| 9341 | case REACT_PORTAL_TYPE: |
| 9342 | { |
| 9343 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 9344 | _created2['return'] = returnFiber; |
| 9345 | return _created2; |
| 9346 | } |
| 9347 | } |
| 9348 | |
| 9349 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 9350 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 9351 | _created3['return'] = returnFiber; |
| 9352 | return _created3; |
| 9353 | } |
| 9354 | |
| 9355 | throwOnInvalidObjectType(returnFiber, newChild); |
| 9356 | } |
| 9357 | |
| 9358 | { |
| 9359 | if (typeof newChild === 'function') { |
| 9360 | warnOnFunctionType(); |
| 9361 | } |
| 9362 | } |
| 9363 | |
| 9364 | return null; |
| 9365 | } |
| 9366 | |
| 9367 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 9368 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected