require-circulated-dependencies created by robturtle - https://repl.it/EfZt/3
fileContents = {
a: 'exports.a = { depends: require("b"), value: 1 };',
b: 'exports.b = { depends: require("c"), value: 2 };',
c: 'exports.c = { depends: require("a"), value: 3 };'
};
// simulate reading files
function readFile(fname) { return fileContents[fname]; }
function require(lib) {
if (require.caches === undefined) require.caches = {};
if (require.caches[lib] === undefined) {
let importer = new Function('exports', readFile(lib));
importer(require.caches[lib] = {});
}
return require.caches[lib];
}
let libA = require('a');
console.log(libA);
console.log(libA.a.depends);
console.log(libA.a.depends.b.depends);
console.log(libA.a.depends.b.depends.c.depends);