(returnFiber, newChild, expirationTime)
| 9104 | } |
| 9105 | |
| 9106 | function createChild(returnFiber, newChild, expirationTime) { |
| 9107 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 9108 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 9109 | // we can continue to replace it without aborting even if it is not a text |
| 9110 | // node. |
| 9111 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 9112 | created['return'] = returnFiber; |
| 9113 | return created; |
| 9114 | } |
| 9115 | |
| 9116 | if (typeof newChild === 'object' && newChild !== null) { |
| 9117 | switch (newChild.$$typeof) { |
| 9118 | case REACT_ELEMENT_TYPE: |
| 9119 | { |
| 9120 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 9121 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 9122 | _created['return'] = returnFiber; |
| 9123 | return _created; |
| 9124 | } |
| 9125 | case REACT_PORTAL_TYPE: |
| 9126 | { |
| 9127 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 9128 | _created2['return'] = returnFiber; |
| 9129 | return _created2; |
| 9130 | } |
| 9131 | } |
| 9132 | |
| 9133 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 9134 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 9135 | _created3['return'] = returnFiber; |
| 9136 | return _created3; |
| 9137 | } |
| 9138 | |
| 9139 | throwOnInvalidObjectType(returnFiber, newChild); |
| 9140 | } |
| 9141 | |
| 9142 | { |
| 9143 | if (typeof newChild === 'function') { |
| 9144 | warnOnFunctionType(); |
| 9145 | } |
| 9146 | } |
| 9147 | |
| 9148 | return null; |
| 9149 | } |
| 9150 | |
| 9151 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 9152 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected