MCPcopy Create free account
hub / github.com/krasimir/react-in-patterns / ReactFiberNewContext

Function ReactFiberNewContext

code/communication/public/app.js:12539–12588  ·  view source on GitHub ↗
(stack)

Source from the content-addressed store, hash-verified

12537};
12538
12539var ReactFiberNewContext = function (stack) {
12540 var createCursor = stack.createCursor,
12541 push = stack.push,
12542 pop = stack.pop;
12543
12544
12545 var providerCursor = createCursor(null);
12546 var valueCursor = createCursor(null);
12547 var changedBitsCursor = createCursor(0);
12548
12549 var rendererSigil = void 0;
12550 {
12551 // Use this to detect multiple renderers using the same context
12552 rendererSigil = {};
12553 }
12554
12555 function pushProvider(providerFiber) {
12556 var context = providerFiber.type.context;
12557
12558 push(changedBitsCursor, context._changedBits, providerFiber);
12559 push(valueCursor, context._currentValue, providerFiber);
12560 push(providerCursor, providerFiber, providerFiber);
12561
12562 context._currentValue = providerFiber.pendingProps.value;
12563 context._changedBits = providerFiber.stateNode;
12564
12565 {
12566 warning(context._currentRenderer === null || context._currentRenderer === rendererSigil, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');
12567 context._currentRenderer = rendererSigil;
12568 }
12569 }
12570
12571 function popProvider(providerFiber) {
12572 var changedBits = changedBitsCursor.current;
12573 var currentValue = valueCursor.current;
12574
12575 pop(providerCursor, providerFiber);
12576 pop(valueCursor, providerFiber);
12577 pop(changedBitsCursor, providerFiber);
12578
12579 var context = providerFiber.type.context;
12580 context._currentValue = currentValue;
12581 context._changedBits = changedBits;
12582 }
12583
12584 return {
12585 pushProvider: pushProvider,
12586 popProvider: popProvider
12587 };
12588};
12589
12590var ReactFiberStack = function () {
12591 var valueStack = [];

Callers 1

ReactFiberSchedulerFunction · 0.70

Calls 1

createCursorFunction · 0.70

Tested by

no test coverage detected