Skip to content

Commit

Permalink
Restore currentRenderN instead of resetting it
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Mar 5, 2022
1 parent 14309c7 commit 294a975
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 5 deletions.
25 changes: 22 additions & 3 deletions packages/react-reconciler/src/ReactFiberNewContext.new.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,15 @@ import {

const valueCursor: StackCursor<mixed> = createCursor(null);

let rendererCursorDEV: StackCursor<Object | null>;
if (__DEV__) {
rendererCursorDEV = createCursor(null);
}
let renderer2CursorDEV: StackCursor<Object | null>;
if (__DEV__) {
renderer2CursorDEV = createCursor(null);
}

let rendererSigil;
if (__DEV__) {
// Use this to detect multiple renderers using the same context
Expand Down Expand Up @@ -93,6 +102,8 @@ export function pushProvider<T>(

context._currentValue = nextValue;
if (__DEV__) {
push(rendererCursorDEV, context._currentRenderer, providerFiber);

if (
context._currentRenderer !== undefined &&
context._currentRenderer !== null &&
Expand All @@ -110,6 +121,8 @@ export function pushProvider<T>(

context._currentValue2 = nextValue;
if (__DEV__) {
push(renderer2CursorDEV, context._currentRenderer2, providerFiber);

if (
context._currentRenderer2 !== undefined &&
context._currentRenderer2 !== null &&
Expand All @@ -130,18 +143,24 @@ export function popProvider(
providerFiber: Fiber,
): void {
const currentValue = valueCursor.current;
pop(valueCursor, providerFiber);

if (isPrimaryRenderer) {
context._currentValue = currentValue;
if (__DEV__) {
context._currentRenderer = null;
const currentRenderer = rendererCursorDEV.current;
pop(rendererCursorDEV, providerFiber);
context._currentRenderer = currentRenderer;
}
} else {
context._currentValue2 = currentValue;
if (__DEV__) {
context._currentRenderer2 = null;
const currentRenderer2 = renderer2CursorDEV.current;
pop(renderer2CursorDEV, providerFiber);
context._currentRenderer2 = currentRenderer2;
}
}

pop(valueCursor, providerFiber);
}

export function scheduleContextWorkOnParentPath(
Expand Down
17 changes: 15 additions & 2 deletions packages/react-reconciler/src/ReactFiberNewContext.old.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ import {

const valueCursor: StackCursor<mixed> = createCursor(null);

let rendererCursorDEV: StackCursor<mixed>;
if (__DEV__) {
rendererCursorDEV = createCursor(null);
}

let rendererSigil;
if (__DEV__) {
// Use this to detect multiple renderers using the same context
Expand Down Expand Up @@ -93,6 +98,8 @@ export function pushProvider<T>(

context._currentValue = nextValue;
if (__DEV__) {
push(rendererCursorDEV, context._currentRenderer, providerFiber)

if (
context._currentRenderer !== undefined &&
context._currentRenderer !== null &&
Expand All @@ -110,6 +117,8 @@ export function pushProvider<T>(

context._currentValue2 = nextValue;
if (__DEV__) {
push(rendererCursorDEV, context._currentRenderer2, providerFiber)

if (
context._currentRenderer2 !== undefined &&
context._currentRenderer2 !== null &&
Expand All @@ -134,12 +143,16 @@ export function popProvider(
if (isPrimaryRenderer) {
context._currentValue = currentValue;
if (__DEV__) {
context._currentRenderer = null;
const currentRenderer = rendererCursorDEV.current
pop(rendererCursorDEV, providerFiber);
context._currentRenderer = currentRenderer;
}
} else {
context._currentValue2 = currentValue;
if (__DEV__) {
context._currentRenderer2 = null;
const currentRenderer2 = rendererCursorDEV.current
pop(rendererCursorDEV, providerFiber);
context._currentRenderer2 = currentRenderer2;
}
}
}
Expand Down

0 comments on commit 294a975

Please sign in to comment.