Skip to content

Commit 799ee3d

Browse files
committed
[js] Look into the NQPJS_LIB env variable for modules.
1 parent e8a8cb5 commit 799ee3d

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/vm/js/nqp-runtime/runtime.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,23 @@ op.loadbytecode = function(ctx, file) {
8181

8282
var oldLoaderCtx = exports.loaderCtx;
8383
exports.loaderCtx = ctx;
84-
try {
85-
var try_path = './' + file.replace(/::/g, '-');
86-
loadFrom.require(try_path);
87-
} catch(e) {
88-
loadFrom.require('nqp-js-compiled-stuff/' + file.replace(/::/g, '-'));
84+
var mangled = file.replace(/::/g, '-');
85+
86+
var prefixes = (process.env.NQPJS_LIB || '').split(':');
87+
prefixes.push('./', 'nqp-js-on-js/');
88+
var found = false;
89+
for (var prefix of prefixes) {
90+
try {
91+
loadFrom.require(prefix + mangled);
92+
found = true;
93+
break;
94+
} catch(e) {
95+
if (e.code !== 'MODULE_NOT_FOUND') {
96+
throw e;
97+
}
98+
}
8999
}
100+
if (!found) throw "can't find: " + file + ", looking in: " + prefixes.join(', ') + " from " + loadFrom.filename;
90101
exports.loaderCtx = oldLoaderCtx;
91102

92103
return file;

0 commit comments

Comments
 (0)