diff --git a/hscript/IHScriptCustomConstructor.hx b/hscript/IHScriptCustomConstructor.hx new file mode 100644 index 0000000..c67719c --- /dev/null +++ b/hscript/IHScriptCustomConstructor.hx @@ -0,0 +1,5 @@ +package hscript; + +interface IHScriptCustomConstructor { + public function hnew(args:Array):Dynamic; +} \ No newline at end of file diff --git a/hscript/Interp.hx b/hscript/Interp.hx index 4a5d669..fddc481 100644 --- a/hscript/Interp.hx +++ b/hscript/Interp.hx @@ -50,6 +50,7 @@ class Interp { return scriptObject = v; } public var errorHandler:Error->Void; + public var importFailedCallback:Array->Bool; #if haxe3 public var variables:Map; public var publicVariables:Map; @@ -460,8 +461,8 @@ class Interp { var en = Type.resolveEnum(realClassName); if (cl == null && en == null) { - // LogsOverlay.trace('Class / Enum at $realClassName does not exist.'); - error(EInvalidClass(realClassName)); + if (importFailedCallback == null || !importFailedCallback(splitClassName)) + error(EInvalidClass(realClassName)); } else { if (en != null) { // ENUM!!!!