cache converted hscript from ktxt2

This commit is contained in:
2021-11-09 12:22:37 -07:00
parent 84117463f7
commit f218b75ac4
2 changed files with 20 additions and 1 deletions

View File

@@ -48,8 +48,23 @@ class KissInterp extends Interp {
variables.set("kiss", {});
}
public var cacheConvertedHScript = false;
public function evalKiss(kissStr:String):Dynamic {
return evalHaxe(Prelude.convertToHScript(kissStr));
#if !(sys || hxnodejs)
if (cacheConvertedHScript) {
throw "Cannot used cacheConvertedHScript on a non-sys target";
}
#end
var convert =
#if (sys || hxnodejs)
if (cacheConvertedHScript) {
Prelude.cachedConvertToHScript;
} else
#end
Prelude.convertToHScript;
return evalHaxe(convert(kissStr));
}
public function evalHaxe(hscriptStr:String):Dynamic {

View File

@@ -506,6 +506,10 @@ class Prelude {
#end
}
#if (sys || hxnodejs)
public static var cachedConvertToHScript:String->String = cast(fsMemoize(convertToHScript, "convertToHScript"));
#end
public static function getTarget():KissTarget {
return #if cpp
Cpp;