Source code

Revision control

Copy as Markdown

Other Tools

var N = 15000;
var leaf = parseModule("export var x = 1;", "m" + (N - 1) + ".js");
registerModule("m" + (N - 1), leaf);
moduleLink(leaf);
for (var i = N - 2; i >= 0; i--) {
var m = parseModule("export * from 'm" + (i + 1) + "';", "m" + i + ".js");
registerModule("m" + i, m);
moduleLink(m); // shallow: child already Linked
}
var head = parseModule("import {x} from 'm0';", "head.js");
registerModule("head", head);
try {
moduleLink(head); // CyclicModuleResolveExport recurses N deep to resolve x
} catch(e) {
assertEq(e instanceof InternalError, true);
assertEq(e.message, "too much recursion");
}