From 06b0057bb1123419c22c95dcb65ca71606603525 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Fri, 25 Sep 2015 16:24:17 +0200 Subject: [PATCH] Fix module loading --- js/common/bootstrap/modules.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/js/common/bootstrap/modules.js b/js/common/bootstrap/modules.js index 4b35418acb..fa6d6e91ee 100644 --- a/js/common/bootstrap/modules.js +++ b/js/common/bootstrap/modules.js @@ -375,19 +375,37 @@ Module._load = function(request, parent, isMain) { var filename = request; var dbModule = false; - try { - filename = Module._resolveFilename(request, parent); - } catch (e) { + if (!request.startsWith('db://')) { + try { + filename = Module._resolveFilename(request, parent); + } catch (e) { + + if (request.charAt(0) !== '/') { + request = '/' + request; + } + dbModule = Module._dbCache[request]; + if (!dbModule) { + dbModule = internal.db._modules.firstExample({path: request}); + if (!dbModule) { + throw e; + } + Module._dbCache[request] = dbModule; + } + } + } + else { if (request.charAt(0) !== '/') { request = '/' + request; } dbModule = Module._dbCache[request]; if (!dbModule) { dbModule = internal.db._modules.firstExample({path: request}); - if (!dbModule) { - throw e; + if (dbModule) { + Module._dbCache[request] = dbModule; + } + else { + throw new Error("failed to locate module " + request + " in _modules!"); } - Module._dbCache[request] = dbModule; } }