diff --git a/src/kiss/KissInterp2.hx b/src/kiss/KissInterp2.hx index 15a2ddc..96fec70 100644 --- a/src/kiss/KissInterp2.hx +++ b/src/kiss/KissInterp2.hx @@ -11,9 +11,22 @@ class KissInterp2 { public static function build():Array { var fields = Kiss.build(Prelude.joinPath(Helpers.libPath("kiss"), "src/kiss/KissInterp2.kiss")); + var preexistingNewBody = macro {}; + for(field in fields) { + if(field.name == "new") { + switch(field.kind) { + case FFun(fun): + preexistingNewBody = fun.expr; + default: + } + fields.remove(field); + } + } + // TODO put imported types into the global variables interp var imports = Context.getLocalImports(); + fields.push({ pos: Context.currentPos(), name: "new", @@ -24,6 +37,7 @@ class KissInterp2 { args: [], expr: macro { specialForms = _specialForms(); + $preexistingNewBody; } }) });