diff --git a/polymod/hscript/_internal/PolymodInterpEx.hx b/polymod/hscript/_internal/PolymodInterpEx.hx index db9c68e8..2c8f2667 100644 --- a/polymod/hscript/_internal/PolymodInterpEx.hx +++ b/polymod/hscript/_internal/PolymodInterpEx.hx @@ -1492,11 +1492,6 @@ override function resolve(id:String):Dynamic return null; } - if (locals.exists(id)) - { - // NOTE: id may exist but be null - return locals.get(id).r; - } if (variables.exists(id)) { // NOTE: id may exist but be null @@ -1685,10 +1680,11 @@ public function callScriptClassStaticFunction(clsName:String, fnName:String, arg this._classDeclOverride = cls; + var localsCopy:Map}> = this.locals.copy(); var result:Dynamic = null; try { - result = this.exprReturn(fn.expr); + result = this.executeEx(fn.expr); } catch (err:PolymodExprEx.ErrorEx) { @@ -1720,6 +1716,7 @@ public function callScriptClassStaticFunction(clsName:String, fnName:String, arg } } this._classDeclOverride = previousClassDecl; + this.locals = localsCopy; return result; }