(returnFiber, newChild, expirationTime)
| 13747 | } |
| 13748 | |
| 13749 | function createChild(returnFiber, newChild, expirationTime) { |
| 13750 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 13751 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 13752 | // we can continue to replace it without aborting even if it is not a text |
| 13753 | // node. |
| 13754 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 13755 | created.return = returnFiber; |
| 13756 | return created; |
| 13757 | } |
| 13758 | |
| 13759 | if (typeof newChild === 'object' && newChild !== null) { |
| 13760 | switch (newChild.$$typeof) { |
| 13761 | case REACT_ELEMENT_TYPE: |
| 13762 | { |
| 13763 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 13764 | |
| 13765 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 13766 | _created.return = returnFiber; |
| 13767 | return _created; |
| 13768 | } |
| 13769 | |
| 13770 | case REACT_PORTAL_TYPE: |
| 13771 | { |
| 13772 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 13773 | |
| 13774 | _created2.return = returnFiber; |
| 13775 | return _created2; |
| 13776 | } |
| 13777 | } |
| 13778 | |
| 13779 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 13780 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 13781 | |
| 13782 | _created3.return = returnFiber; |
| 13783 | return _created3; |
| 13784 | } |
| 13785 | |
| 13786 | throwOnInvalidObjectType(returnFiber, newChild); |
| 13787 | } |
| 13788 | |
| 13789 | { |
| 13790 | if (typeof newChild === 'function') { |
| 13791 | warnOnFunctionType(); |
| 13792 | } |
| 13793 | } |
| 13794 | |
| 13795 | return null; |
| 13796 | } |
| 13797 | |
| 13798 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 13799 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected