(returnFiber, newChild, expirationTime)
| 9069 | } |
| 9070 | |
| 9071 | function createChild(returnFiber, newChild, expirationTime) { |
| 9072 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 9073 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 9074 | // we can continue to replace it without aborting even if it is not a text |
| 9075 | // node. |
| 9076 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 9077 | created['return'] = returnFiber; |
| 9078 | return created; |
| 9079 | } |
| 9080 | |
| 9081 | if (typeof newChild === 'object' && newChild !== null) { |
| 9082 | switch (newChild.$$typeof) { |
| 9083 | case REACT_ELEMENT_TYPE: |
| 9084 | { |
| 9085 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 9086 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 9087 | _created['return'] = returnFiber; |
| 9088 | return _created; |
| 9089 | } |
| 9090 | case REACT_PORTAL_TYPE: |
| 9091 | { |
| 9092 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 9093 | _created2['return'] = returnFiber; |
| 9094 | return _created2; |
| 9095 | } |
| 9096 | } |
| 9097 | |
| 9098 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 9099 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 9100 | _created3['return'] = returnFiber; |
| 9101 | return _created3; |
| 9102 | } |
| 9103 | |
| 9104 | throwOnInvalidObjectType(returnFiber, newChild); |
| 9105 | } |
| 9106 | |
| 9107 | { |
| 9108 | if (typeof newChild === 'function') { |
| 9109 | warnOnFunctionType(); |
| 9110 | } |
| 9111 | } |
| 9112 | |
| 9113 | return null; |
| 9114 | } |
| 9115 | |
| 9116 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 9117 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected