From 66619eb5c64275c10720ad49d8f0fa9bf4018314 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 17 Jul 2023 12:47:23 -0600 Subject: [PATCH] evalUnquotes for HaxeMeta --- src/kiss/AsyncEmbeddedScript.hx | 7 ++++++- src/kiss/Helpers.hx | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/kiss/AsyncEmbeddedScript.hx b/src/kiss/AsyncEmbeddedScript.hx index 4bca0e7..209ffd4 100644 --- a/src/kiss/AsyncEmbeddedScript.hx +++ b/src/kiss/AsyncEmbeddedScript.hx @@ -25,10 +25,15 @@ typedef Continuation = () -> Void; typedef AsyncCommand = (AsyncEmbeddedScript, Continuation) -> Void; class ObjectInterp extends Interp { - var obj:T; + var obj:T; + var fields:Map = []; public function new(obj:T) { this.obj = obj; + for (field in Type.getInstanceFields(Type.getClass(obj))) { + fields[field] = true; + } + super(); } diff --git a/src/kiss/Helpers.hx b/src/kiss/Helpers.hx index b6d1fde..a23159b 100644 --- a/src/kiss/Helpers.hx +++ b/src/kiss/Helpers.hx @@ -686,6 +686,8 @@ class Helpers { compileTimeValueToReaderExp(unquoteValue, exp).def; case MetaExp(meta, innerExp): MetaExp(meta, recurse(innerExp)); + case HaxeMeta(name, params, innerExp): + HaxeMeta(name, params, recurse(innerExp)); default: throw KissError.fromExp(exp, 'unquote evaluation not implemented'); };