From faa9adf2ab77e04f78568129e8811491cd1896a4 Mon Sep 17 00:00:00 2001 From: David Aurelio Date: Thu, 21 Apr 2016 06:48:27 -0700 Subject: [PATCH] Allow for falsy module exports Reviewed By: javache Differential Revision: D3207353 fb-gh-sync-id: 3e23eb9cc9facea7993ce684f87ff4b7b0003a1c fbshipit-source-id: 3e23eb9cc9facea7993ce684f87ff4b7b0003a1c --- react-packager/src/Resolver/polyfills/require-unbundle.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/react-packager/src/Resolver/polyfills/require-unbundle.js b/react-packager/src/Resolver/polyfills/require-unbundle.js index c2cddad6..70cd1139 100644 --- a/react-packager/src/Resolver/polyfills/require-unbundle.js +++ b/react-packager/src/Resolver/polyfills/require-unbundle.js @@ -27,13 +27,16 @@ function define(moduleId, factory) { modules[moduleId] = { factory, hasError: false, + isInitialized: false, exports: undefined, }; } function require(moduleId) { const module = modules[moduleId]; - return module && module.exports || loadModule(moduleId, module); + return module && module.isInitialized + ? module.exports + : loadModule(moduleId, module); } function guardedLoadModule(moduleId, module) { @@ -68,6 +71,7 @@ function loadModuleImplementation(moduleId, module) { } const exports = module.exports = {}; + module.isInitialized = true; const {factory} = module; try { if (__DEV__) { @@ -83,6 +87,7 @@ function loadModuleImplementation(moduleId, module) { } return (module.exports = moduleObject.exports); } catch (e) { + module.isInitialized = false; module.hasError = true; module.exports = undefined; }