(returnFiber, newChild, expirationTime)
| 8302 | } |
| 8303 | |
| 8304 | function createChild(returnFiber, newChild, expirationTime) { |
| 8305 | if (typeof newChild === 'string' || typeof newChild === 'number') { |
| 8306 | // Text nodes don't have keys. If the previous node is implicitly keyed |
| 8307 | // we can continue to replace it without aborting even if it is not a text |
| 8308 | // node. |
| 8309 | var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime); |
| 8310 | created['return'] = returnFiber; |
| 8311 | return created; |
| 8312 | } |
| 8313 | |
| 8314 | if (typeof newChild === 'object' && newChild !== null) { |
| 8315 | switch (newChild.$$typeof) { |
| 8316 | case REACT_ELEMENT_TYPE: |
| 8317 | { |
| 8318 | var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime); |
| 8319 | _created.ref = coerceRef(returnFiber, null, newChild); |
| 8320 | _created['return'] = returnFiber; |
| 8321 | return _created; |
| 8322 | } |
| 8323 | case REACT_PORTAL_TYPE: |
| 8324 | { |
| 8325 | var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime); |
| 8326 | _created2['return'] = returnFiber; |
| 8327 | return _created2; |
| 8328 | } |
| 8329 | } |
| 8330 | |
| 8331 | if (isArray$1(newChild) || getIteratorFn(newChild)) { |
| 8332 | var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null); |
| 8333 | _created3['return'] = returnFiber; |
| 8334 | return _created3; |
| 8335 | } |
| 8336 | |
| 8337 | throwOnInvalidObjectType(returnFiber, newChild); |
| 8338 | } |
| 8339 | |
| 8340 | { |
| 8341 | if (typeof newChild === 'function') { |
| 8342 | warnOnFunctionType(); |
| 8343 | } |
| 8344 | } |
| 8345 | |
| 8346 | return null; |
| 8347 | } |
| 8348 | |
| 8349 | function updateSlot(returnFiber, oldFiber, newChild, expirationTime) { |
| 8350 | // Update the fiber if the keys match, otherwise return null. |
no test coverage detected