(returnFiber, newChild, expirationTime)
| 8430 | } |
| 8431 | |
| 8432 | function createChild(returnFiber, newChild, expirationTime) { |
| 8433 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 8434 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 8435 | // we can continue to replace it without aborting even if it is not a text |
| 8436 | // node. |
| 8437 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 8438 | created['return'] = returnFiber; |
| 8439 | return created; |
| 8440 | } |
| 8441 | |
| 8442 | if (typeof newChild === 'object' && newChild !== null) { |
| 8443 | switch (newChild.$$typeof) { |
| 8444 | case REACT_ELEMENT_TYPE: |
| 8445 | { |
| 8446 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 8447 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 8448 | _created['return'] = returnFiber; |
| 8449 | return _created; |
| 8450 | } |
| 8451 | case REACT_PORTAL_TYPE: |
| 8452 | { |
| 8453 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 8454 | _created2['return'] = returnFiber; |
| 8455 | return _created2; |
| 8456 | } |
| 8457 | } |
| 8458 | |
| 8459 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 8460 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 8461 | _created3['return'] = returnFiber; |
| 8462 | return _created3; |
| 8463 | } |
| 8464 | |
| 8465 | throwOnInvalidObjectType(returnFiber, newChild); |
| 8466 | } |
| 8467 | |
| 8468 | { |
| 8469 | if (typeof newChild === 'function') { |
| 8470 | warnOnFunctionType(); |
| 8471 | } |
| 8472 | } |
| 8473 | |
| 8474 | return null; |
| 8475 | } |
| 8476 | |
| 8477 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 8478 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected