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

Function ReactFiberNewContext

code/third-party/public/app.js:11737–11786  ·  view source on GitHub ↗
(stack)

Source from the content-addressed store, hash-verified

11735};
11736
11737var ReactFiberNewContext = function (stack) {
11738 var createCursor = stack.createCursor,
11739 push = stack.push,
11740 pop = stack.pop;
11741
11742
11743 var providerCursor = createCursor(null);
11744 var valueCursor = createCursor(null);
11745 var changedBitsCursor = createCursor(0);
11746
11747 var rendererSigil = void 0;
11748 {
11749 // Use this to detect multiple renderers using the same context
11750 rendererSigil = {};
11751 }
11752
11753 function pushProvider(providerFiber) {
11754 var context = providerFiber.type.context;
11755
11756 push(changedBitsCursor, context._changedBits, providerFiber);
11757 push(valueCursor, context._currentValue, providerFiber);
11758 push(providerCursor, providerFiber, providerFiber);
11759
11760 context._currentValue = providerFiber.pendingProps.value;
11761 context._changedBits = providerFiber.stateNode;
11762
11763 {
11764 warning(context._currentRenderer === null || context._currentRenderer === rendererSigil, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');
11765 context._currentRenderer = rendererSigil;
11766 }
11767 }
11768
11769 function popProvider(providerFiber) {
11770 var changedBits = changedBitsCursor.current;
11771 var currentValue = valueCursor.current;
11772
11773 pop(providerCursor, providerFiber);
11774 pop(valueCursor, providerFiber);
11775 pop(changedBitsCursor, providerFiber);
11776
11777 var context = providerFiber.type.context;
11778 context._currentValue = currentValue;
11779 context._changedBits = changedBits;
11780 }
11781
11782 return {
11783 pushProvider: pushProvider,
11784 popProvider: popProvider
11785 };
11786};
11787
11788var ReactFiberStack = function () {
11789 var valueStack = [];

Callers 1

ReactFiberSchedulerFunction · 0.70

Calls 1

createCursorFunction · 0.70

Tested by

no test coverage detected