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

Function ReactFiberNewContext

code/composition/public/app.js:12642–12691  ·  view source on GitHub ↗
(stack)

Source from the content-addressed store, hash-verified

12640};
12641
12642var ReactFiberNewContext = function (stack) {
12643 var createCursor = stack.createCursor,
12644 push = stack.push,
12645 pop = stack.pop;
12646
12647
12648 var providerCursor = createCursor(null);
12649 var valueCursor = createCursor(null);
12650 var changedBitsCursor = createCursor(0);
12651
12652 var rendererSigil = void 0;
12653 {
12654 // Use this to detect multiple renderers using the same context
12655 rendererSigil = {};
12656 }
12657
12658 function pushProvider(providerFiber) {
12659 var context = providerFiber.type.context;
12660
12661 push(changedBitsCursor, context._changedBits, providerFiber);
12662 push(valueCursor, context._currentValue, providerFiber);
12663 push(providerCursor, providerFiber, providerFiber);
12664
12665 context._currentValue = providerFiber.pendingProps.value;
12666 context._changedBits = providerFiber.stateNode;
12667
12668 {
12669 warning(context._currentRenderer === null || context._currentRenderer === rendererSigil, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');
12670 context._currentRenderer = rendererSigil;
12671 }
12672 }
12673
12674 function popProvider(providerFiber) {
12675 var changedBits = changedBitsCursor.current;
12676 var currentValue = valueCursor.current;
12677
12678 pop(providerCursor, providerFiber);
12679 pop(valueCursor, providerFiber);
12680 pop(changedBitsCursor, providerFiber);
12681
12682 var context = providerFiber.type.context;
12683 context._currentValue = currentValue;
12684 context._changedBits = changedBits;
12685 }
12686
12687 return {
12688 pushProvider: pushProvider,
12689 popProvider: popProvider
12690 };
12691};
12692
12693var ReactFiberStack = function () {
12694 var valueStack = [];

Callers 1

ReactFiberSchedulerFunction · 0.70

Calls 1

createCursorFunction · 0.70

Tested by

no test coverage detected