Cache compile results

This commit is contained in:
Thomas Weber committed 2020-08-03 22:54:35 -05:00
1 parent 9a585a25be
commit ca87f40e02
2 files changed
+10 -2

No files matched your search

+3 -1
View File
@@ -1166,7 +1166,8 @@ class ScriptTreeGenerator {
isProcedure: this.isProcedure,
hasArguments: this.procedureArguments.length > 0,
isWarp: this.isWarp,
dependedProcedures: this.dependedProcedures
dependedProcedures: this.dependedProcedures,
cachedCompileResult: null
};
const topBlock = this.blocks.getBlock(topBlockId);
@@ -1264,6 +1265,7 @@ class ASTGenerator {
if (this.blocks._cache.compiledProcedures[procedureCode]) {
this.procedures[procedureCode] = this.blocks._cache.compiledProcedures[procedureCode];
} else {
console.log('parsing AST for', procedureCode);
const generator = new ScriptTreeGenerator(this.thread);
generator.setProcedureCode(procedureCode);
if (isWarp) generator.enableWarp();
+7 -1
View File
@@ -708,8 +708,14 @@ class JSCompiler {
this.compilingProcedures.pop();
}
if (script.cachedCompileResult) {
return script.cachedCompileResult;
}
const compiler = new ScriptCompiler(script, this.ast, this.target);
return compiler.compile();
const result = compiler.compile();
script.cachedCompileResult = result;
return result;
}
compile () {