From b4745ca72b63f1e5c9291bd030e6d0a28c23bcb7 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Tue, 13 Dec 2016 17:26:19 -0800 Subject: [PATCH] HostRoot no longer pops context provider in complete phase Also added an invariant warning to guard against context being popped too many times. --- src/renderers/shared/fiber/ReactFiberCompleteWork.js | 1 - src/renderers/shared/fiber/ReactFiberContext.js | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderers/shared/fiber/ReactFiberCompleteWork.js b/src/renderers/shared/fiber/ReactFiberCompleteWork.js index 84af8a456d84..2cd438812480 100644 --- a/src/renderers/shared/fiber/ReactFiberCompleteWork.js +++ b/src/renderers/shared/fiber/ReactFiberCompleteWork.js @@ -202,7 +202,6 @@ module.exports = function( return null; case HostRoot: { workInProgress.memoizedProps = workInProgress.pendingProps; - popContextProvider(); const fiberRoot = (workInProgress.stateNode : FiberRoot); if (fiberRoot.pendingContext) { fiberRoot.context = fiberRoot.pendingContext; diff --git a/src/renderers/shared/fiber/ReactFiberContext.js b/src/renderers/shared/fiber/ReactFiberContext.js index 2479939e9b39..4fdb8e2ec31d 100644 --- a/src/renderers/shared/fiber/ReactFiberContext.js +++ b/src/renderers/shared/fiber/ReactFiberContext.js @@ -77,6 +77,7 @@ function isContextProvider(fiber : Fiber) : boolean { exports.isContextProvider = isContextProvider; function popContextProvider() : void { + invariant(index > -1, 'Unexpected context pop'); contextStack[index] = emptyObject; didPerformWorkStack[index] = false; index--;