(returnFiber, newChild, expirationTime)
| 8393 | } |
| 8394 | |
| 8395 | function createChild(returnFiber, newChild, expirationTime) { |
| 8396 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 8397 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 8398 | // we can continue to replace it without aborting even if it is not a text |
| 8399 | // node. |
| 8400 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 8401 | created['return'] = returnFiber; |
| 8402 | return created; |
| 8403 | } |
| 8404 | |
| 8405 | if (typeof newChild === 'object' && newChild !== null) { |
| 8406 | switch (newChild.$$typeof) { |
| 8407 | case REACT_ELEMENT_TYPE: |
| 8408 | { |
| 8409 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 8410 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 8411 | _created['return'] = returnFiber; |
| 8412 | return _created; |
| 8413 | } |
| 8414 | case REACT_PORTAL_TYPE: |
| 8415 | { |
| 8416 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 8417 | _created2['return'] = returnFiber; |
| 8418 | return _created2; |
| 8419 | } |
| 8420 | } |
| 8421 | |
| 8422 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 8423 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 8424 | _created3['return'] = returnFiber; |
| 8425 | return _created3; |
| 8426 | } |
| 8427 | |
| 8428 | throwOnInvalidObjectType(returnFiber, newChild); |
| 8429 | } |
| 8430 | |
| 8431 | { |
| 8432 | if (typeof newChild === 'function') { |
| 8433 | warnOnFunctionType(); |
| 8434 | } |
| 8435 | } |
| 8436 | |
| 8437 | return null; |
| 8438 | } |
| 8439 | |
| 8440 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 8441 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected