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

Function ReactFiberNewContext

code/dependency-injection/public/app.js:12597–12646  ·  view source on GitHub ↗
(stack)

Source from the content-addressed store, hash-verified

12595};
12596
12597var ReactFiberNewContext = function (stack) {
12598 var createCursor = stack.createCursor,
12599 push = stack.push,
12600 pop = stack.pop;
12601
12602
12603 var providerCursor = createCursor(null);
12604 var valueCursor = createCursor(null);
12605 var changedBitsCursor = createCursor(0);
12606
12607 var rendererSigil = void 0;
12608 {
12609 // Use this to detect multiple renderers using the same context
12610 rendererSigil = {};
12611 }
12612
12613 function pushProvider(providerFiber) {
12614 var context = providerFiber.type.context;
12615
12616 push(changedBitsCursor, context._changedBits, providerFiber);
12617 push(valueCursor, context._currentValue, providerFiber);
12618 push(providerCursor, providerFiber, providerFiber);
12619
12620 context._currentValue = providerFiber.pendingProps.value;
12621 context._changedBits = providerFiber.stateNode;
12622
12623 {
12624 warning(context._currentRenderer === null || context._currentRenderer === rendererSigil, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');
12625 context._currentRenderer = rendererSigil;
12626 }
12627 }
12628
12629 function popProvider(providerFiber) {
12630 var changedBits = changedBitsCursor.current;
12631 var currentValue = valueCursor.current;
12632
12633 pop(providerCursor, providerFiber);
12634 pop(valueCursor, providerFiber);
12635 pop(changedBitsCursor, providerFiber);
12636
12637 var context = providerFiber.type.context;
12638 context._currentValue = currentValue;
12639 context._changedBits = changedBits;
12640 }
12641
12642 return {
12643 pushProvider: pushProvider,
12644 popProvider: popProvider
12645 };
12646};
12647
12648var ReactFiberStack = function () {
12649 var valueStack = [];

Callers 1

ReactFiberSchedulerFunction · 0.70

Calls 1

createCursorFunction · 0.70

Tested by

no test coverage detected