From d5ceb4175b7bbcbd2893a45170379c388e5f98ae Mon Sep 17 00:00:00 2001 From: David Aurelio Date: Tue, 10 May 2016 09:36:54 -0700 Subject: [PATCH] =?UTF-8?q?Allow=20already=20loaded=20modules=20to=20be=20?= =?UTF-8?q?`require`=E2=80=99d=20by=20name=20string=20in=20dev=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: The code to require modules by their name (rather than their numeric ID) was buggy, because it didn’t check whether the module factory was already executed and the module already existed. This diff checks the already loaded modules, too, when loading modules by name. Reviewed By: lexs Differential Revision: D3281350 fbshipit-source-id: cef236e152fe5484f21c877d6cee37433fa11c76 --- packager/react-packager/src/Resolver/polyfills/require.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packager/react-packager/src/Resolver/polyfills/require.js b/packager/react-packager/src/Resolver/polyfills/require.js index a8c66673b3c..c31ba09509a 100644 --- a/packager/react-packager/src/Resolver/polyfills/require.js +++ b/packager/react-packager/src/Resolver/polyfills/require.js @@ -41,17 +41,19 @@ function define(moduleId, factory) { } function require(moduleId) { - const module = modules[moduleId]; + const module = __DEV__ + ? modules[moduleId] || modules[verboseNamesToModuleIds[moduleId]] + : modules[moduleId]; return module && module.isInitialized ? module.exports : guardedLoadModule(moduleId, module); } -var inGuard = false; +let inGuard = false; function guardedLoadModule(moduleId, module) { if (!inGuard && global.ErrorUtils) { inGuard = true; - var returnValue; + let returnValue; try { returnValue = loadModuleImplementation(moduleId, module); } catch (e) {