diff --git a/src/kiss/AsyncEmbeddedScript.hx b/src/kiss/AsyncEmbeddedScript.hx index 6f27d5c..4380532 100644 --- a/src/kiss/AsyncEmbeddedScript.hx +++ b/src/kiss/AsyncEmbeddedScript.hx @@ -192,6 +192,8 @@ class AsyncEmbeddedScript { return [for (label => ip in labels) label => () -> skipToInstruction(ip)]; } + public var printCurrentInstruction = true; + #if macro public static function build(dslHaxelib:String, dslFile:String, scriptFile:String):Array { // trace('AsyncEmbeddedScript.build $dslHaxelib $dslFile $scriptFile'); @@ -288,10 +290,8 @@ class AsyncEmbeddedScript { var expr = Kiss.readerExpToHaxeExpr(nextExp, k); if (Kiss.isEmpty(expr)) return; - #if debug - expr = macro { Prelude.print($v{exprString}); $expr; }; + expr = macro { if (printCurrentInstruction) Prelude.print($v{exprString}); $expr; }; expr = expr.expr.withMacroPosOf(nextExp); - #end if (expr != null) { var c = macro function(self, cc) { $expr; diff --git a/src/test/cases/DSLTestCase.hx b/src/test/cases/DSLTestCase.hx index d398e82..a9b7784 100644 --- a/src/test/cases/DSLTestCase.hx +++ b/src/test/cases/DSLTestCase.hx @@ -42,6 +42,9 @@ class DSLScript extends EmbeddedScript {} @:build(kiss.AsyncEmbeddedScript.build("", "DSL.kiss", "AsyncDSLScript.dsl")) class AsyncDSLScript extends AsyncEmbeddedScript {} +// One of these two classes will reuse instructions from the cache, but +// I can't guarantee which one compiles first: + @:build(kiss.AsyncEmbeddedScript.build("", "DSL.kiss", "AsyncDSLScriptThatWillCache.dsl")) class AsyncDSLScriptThatWillCache extends AsyncEmbeddedScript {}