allow constructing StringMap in KissInterp

This commit is contained in:
2022-08-04 19:34:25 +00:00
parent e965594e34
commit df0d7da49c
2 changed files with 5 additions and 0 deletions

View File

@@ -440,6 +440,8 @@ class Helpers {
public static function runAtCompileTimeDynamic(exp:ReaderExp, k:KissState, ?args:Map<String, Dynamic>):Dynamic {
var parsed = compileTimeHScript(exp, k);
// The macro interpreter gets everything a KissInterp has,
// plus macro-specific things.
var interp = new KissInterp();
interp.variables.set("read", Reader.assertRead.bind(_, k));
interp.variables.set("readExpArray", Reader.readExpArray.bind(_, _, k));

View File

@@ -7,6 +7,8 @@ import kiss.Prelude;
using hscript.Tools;
typedef InterpMap = haxe.ds.StringMap<Dynamic>;
/**
* Specialized hscript interpreter for hscript generated from Kiss expressions.
* When macrotest is defined by the compiler, many functions run without
@@ -33,6 +35,7 @@ class KissInterp extends Interp {
variables.set("Throw", ExtraElementHandling.Throw);
variables.set("Math", Math);
variables.set("Json", haxe.Json);
variables.set("StringMap", InterpMap);
variables.set("StringTools", StringTools);
variables.set("Path", haxe.io.Path);
#if (sys || hxnodejs)