From affd060e003a582678ee1f27ee9a3b5638cc0041 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 25 Jun 2019 03:21:53 -0700 Subject: [PATCH] Fix module push/pop tracking Reviewed By: threepointone, cpojer Differential Revision: D15983911 fbshipit-source-id: 9006b82984f326f4160a7e526552cab250e33efd --- packages/metro/src/lib/polyfills/require.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/metro/src/lib/polyfills/require.js b/packages/metro/src/lib/polyfills/require.js index ded992e63a..3941812f33 100644 --- a/packages/metro/src/lib/polyfills/require.js +++ b/packages/metro/src/lib/polyfills/require.js @@ -70,8 +70,8 @@ const EMPTY = {}; const {hasOwnProperty} = {}; if (__DEV__) { - var RefreshRegNoop = () => {}; - var RefreshSigNoop = () => type => type; + global.$RefreshReg$ = () => {}; + global.$RefreshSig$ = () => type => type; } function clear(): ModuleList { @@ -351,6 +351,8 @@ function loadModuleImplementation( if (__DEV__) { moduleObject.hot = module.hot; + var prevRefreshReg = global.$RefreshReg$; + var prevRefreshSig = global.$RefreshSig$; if (Refresh != null) { const RefreshRuntime = Refresh; global.$RefreshReg$ = (type, id) => { @@ -358,9 +360,6 @@ function loadModuleImplementation( }; global.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; - } else { - global.$RefreshReg$ = RefreshRegNoop; - global.$RefreshSig$ = RefreshSigNoop; } } moduleObject.id = moduleId; @@ -396,8 +395,6 @@ function loadModuleImplementation( ); } - global.$RefreshReg$ = RefreshRegNoop; - global.$RefreshSig$ = RefreshSigNoop; if (Refresh != null) { const isRefreshBoundary = registerExportsForReactRefresh( Refresh, @@ -427,6 +424,8 @@ function loadModuleImplementation( 'initializingModuleIds is corrupt; something is terribly wrong', ); } + global.$RefreshReg$ = prevRefreshReg; + global.$RefreshSig$ = prevRefreshSig; } } }