From 6457effb7b6f569364af1e827a1baea2c1f1965a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Bigio?= Date: Mon, 16 May 2016 10:28:37 -0700 Subject: [PATCH] Avoid clearing out factory on DEV mode Summary: grabbou pointed out this issue. We recently started cleaning out the factory function after module are required to save some memory. This broke HMR on some edge cases because sometimes the factory function may need to be re-executed. This PR just wraps the optimization into `__DEV__` to make sure we don't use it while developing. Closes https://github.com/facebook/react-native/pull/7568 Differential Revision: D3305120 Pulled By: martinbigio fbshipit-source-id: 741cffbb327d118f0bd0ec34dc1af53d4f94880e --- packager/react-packager/src/Resolver/polyfills/require.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packager/react-packager/src/Resolver/polyfills/require.js b/packager/react-packager/src/Resolver/polyfills/require.js index c31ba09509..219a4bad65 100644 --- a/packager/react-packager/src/Resolver/polyfills/require.js +++ b/packager/react-packager/src/Resolver/polyfills/require.js @@ -120,7 +120,11 @@ function loadModuleImplementation(moduleId, module) { // keep args in sync with with defineModuleCode in // packager/react-packager/src/Resolver/index.js factory(global, require, moduleObject, exports); - module.factory = undefined; + + // avoid removing factory in DEV mode as it breaks HMR + if (!__DEV__) { + module.factory = undefined; + } if (__DEV__) { Systrace.endEvent();