MCPcopy Create free account
hub / github.com/microsoft/SandDance / assignFiberPropertiesInDEV

Function assignFiberPropertiesInDEV

docs/external/js/react-dom.development.js:24202–24255  ·  view source on GitHub ↗
(target, source)

Source from the content-addressed store, hash-verified

24200 } // Used for stashing WIP properties to replay failed work in DEV.
24201
24202 function assignFiberPropertiesInDEV(target, source) {
24203 if (target === null) {
24204 // This Fiber's initial properties will always be overwritten.
24205 // We only use a Fiber to ensure the same hidden class so DEV isn't slow.
24206 target = createFiber(IndeterminateComponent, null, null, NoMode);
24207 } // This is intentionally written as a list of all properties.
24208 // We tried to use Object.assign() instead but this is called in
24209 // the hottest path, and Object.assign() was too slow:
24210 // https://github.com/facebook/react/issues/12502
24211 // This code is DEV-only so size is not a concern.
24212
24213
24214 target.tag = source.tag;
24215 target.key = source.key;
24216 target.elementType = source.elementType;
24217 target.type = source.type;
24218 target.stateNode = source.stateNode;
24219 target.return = source.return;
24220 target.child = source.child;
24221 target.sibling = source.sibling;
24222 target.index = source.index;
24223 target.ref = source.ref;
24224 target.pendingProps = source.pendingProps;
24225 target.memoizedProps = source.memoizedProps;
24226 target.updateQueue = source.updateQueue;
24227 target.memoizedState = source.memoizedState;
24228 target.dependencies = source.dependencies;
24229 target.mode = source.mode;
24230 target.effectTag = source.effectTag;
24231 target.nextEffect = source.nextEffect;
24232 target.firstEffect = source.firstEffect;
24233 target.lastEffect = source.lastEffect;
24234 target.expirationTime = source.expirationTime;
24235 target.childExpirationTime = source.childExpirationTime;
24236 target.alternate = source.alternate;
24237
24238 {
24239 target.actualDuration = source.actualDuration;
24240 target.actualStartTime = source.actualStartTime;
24241 target.selfBaseDuration = source.selfBaseDuration;
24242 target.treeBaseDuration = source.treeBaseDuration;
24243 }
24244
24245 {
24246 target._debugID = source._debugID;
24247 }
24248
24249 target._debugSource = source._debugSource;
24250 target._debugOwner = source._debugOwner;
24251 target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;
24252 target._debugNeedsRemount = source._debugNeedsRemount;
24253 target._debugHookTypes = source._debugHookTypes;
24254 return target;
24255 }
24256
24257 function FiberRootNode(containerInfo, tag, hydrate) {
24258 this.tag = tag;

Callers 1

Calls 1

createFiberFunction · 0.85

Tested by

no test coverage detected