diff --git a/src/kiss/Helpers.hx b/src/kiss/Helpers.hx index afb415f..cc2483e 100644 --- a/src/kiss/Helpers.hx +++ b/src/kiss/Helpers.hx @@ -440,6 +440,8 @@ class Helpers { public static function runAtCompileTimeDynamic(exp:ReaderExp, k:KissState, ?args:Map):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)); diff --git a/src/kiss/KissInterp.hx b/src/kiss/KissInterp.hx index feb1c20..f3505d6 100644 --- a/src/kiss/KissInterp.hx +++ b/src/kiss/KissInterp.hx @@ -7,6 +7,8 @@ import kiss.Prelude; using hscript.Tools; +typedef InterpMap = haxe.ds.StringMap; + /** * 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)