Skip to content

Commit

Permalink
Use iterative approach to prevent stackoverflows
Browse files Browse the repository at this point in the history
  • Loading branch information
Frank Schmid committed Mar 22, 2018
1 parent 68d649b commit 810e27a
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions lib/utils.js
Expand Up @@ -34,15 +34,16 @@ function searchAndProcessCache(moduleName, processor) {
let mod_src = require.resolve(moduleName);
const visitedModules = [];
if (mod_src && ((mod_src = require.cache[mod_src]) !== undefined)) {
(function traverse(mod) {
const modStack = [mod_src];

while (!_.isEmpty(modStack)) {
const mod = modStack.pop();
if (!_.includes(visitedModules, mod)) {
visitedModules.push(mod);
_.forEach(mod.children, function (child) {
traverse(child);
});
Array.prototype.push.apply(modStack, mod.children);
processor(mod);
}
}(mod_src));
}
}
return BbPromise.resolve();
}
Expand Down

0 comments on commit 810e27a

Please sign in to comment.