ast: Do not analyze procedures multiple times

This commit is contained in:
Thomas Weber committed 2020-08-22 14:06:02 -05:00
1 parent 646f30ca10
commit ba8e7ea0dd
1 file changed
+3 -5
+3 -5
View File
@@ -1310,7 +1310,7 @@ class ASTGenerator {
/** @type {Object.<string, Tree>} */
this.procedures = {};
this.procedureStack = [];
this.analyzedProcedures = [];
}
addProcedureDependencies (dependencies) {
@@ -1346,10 +1346,10 @@ class ASTGenerator {
*/
analyzeScript (tree) {
for (const procedureCode of tree.dependedProcedures) {
if (this.procedureStack.includes(procedureCode)) {
if (this.analyzedProcedures.includes(procedureCode)) {
continue;
}
this.procedureStack.push(procedureCode);
this.analyzedProcedures.push(procedureCode);
const procedureData = this.procedures[procedureCode];
this.analyzeScript(procedureData);
@@ -1363,8 +1363,6 @@ class ASTGenerator {
if (procedureData.yields) {
tree.yields = true;
}
this.procedureStack.pop();
}
}