(returnFiber, newChild, expirationTime)
| 8942 | } |
| 8943 | |
| 8944 | function createChild(returnFiber, newChild, expirationTime) { |
| 8945 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 8946 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 8947 | // we can continue to replace it without aborting even if it is not a text |
| 8948 | // node. |
| 8949 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 8950 | created['return'] = returnFiber; |
| 8951 | return created; |
| 8952 | } |
| 8953 | |
| 8954 | if (typeof newChild === 'object' && newChild !== null) { |
| 8955 | switch (newChild.$$typeof) { |
| 8956 | case REACT_ELEMENT_TYPE: |
| 8957 | { |
| 8958 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 8959 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 8960 | _created['return'] = returnFiber; |
| 8961 | return _created; |
| 8962 | } |
| 8963 | case REACT_PORTAL_TYPE: |
| 8964 | { |
| 8965 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 8966 | _created2['return'] = returnFiber; |
| 8967 | return _created2; |
| 8968 | } |
| 8969 | } |
| 8970 | |
| 8971 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 8972 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 8973 | _created3['return'] = returnFiber; |
| 8974 | return _created3; |
| 8975 | } |
| 8976 | |
| 8977 | throwOnInvalidObjectType(returnFiber, newChild); |
| 8978 | } |
| 8979 | |
| 8980 | { |
| 8981 | if (typeof newChild === 'function') { |
| 8982 | warnOnFunctionType(); |
| 8983 | } |
| 8984 | } |
| 8985 | |
| 8986 | return null; |
| 8987 | } |
| 8988 | |
| 8989 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 8990 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected