diff --git a/hscript/Interp.hx b/hscript/Interp.hx index e1b8452..e6627be 100644 --- a/hscript/Interp.hx +++ b/hscript/Interp.hx @@ -340,7 +340,7 @@ class Interp { var arr:Dynamic = expr(e); var index:Dynamic = expr(index); if (isMap(arr)) { - setMapValue(arr, index, v); + setMapValue(getMap(arr), index, v); } else { arr[index] = v; } @@ -1189,7 +1189,7 @@ class Interp { throw 'Unknown Type Key'; } for (n in 0...keys.length) { - setMapValue(map, keys[n], values[n]); + setMapValue(getMap(map), keys[n], values[n]); } return map; } else { @@ -1203,7 +1203,7 @@ class Interp { var arr:Dynamic = expr(e); var index:Dynamic = expr(index); if (isMap(arr)) { - return getMapValue(arr, index); + return getMapValue(getMap(arr), index); } else { return arr[index]; } @@ -1417,17 +1417,14 @@ class Interp { } inline function getMap(map:Dynamic):IMap { - var map:IMap = cast map; - return map; + return cast map; } - inline function getMapValue(map:Dynamic, key:Dynamic):Dynamic { - var map:IMap = cast map; + inline function getMapValue(map:IMap, key:Dynamic):Dynamic { return map.get(key); } - inline function setMapValue(map:Dynamic, key:Dynamic, value:Dynamic):Void { - var map:IMap = cast map; + inline function setMapValue(map:IMap, key:Dynamic, value:Dynamic):Void { map.set(key, value); } @@ -1646,14 +1643,12 @@ class Interp { } function cnew(cl:String, args:Array):Dynamic { - var c:Dynamic = resolve(cl); + var c:Dynamic = Type.resolveClass(cl); if (c == null) - c = Type.resolveClass(cl); + c = resolve(cl); if (c is IHScriptCustomConstructor) return cast(c, IHScriptCustomConstructor).hnew(args); - else - return Type.createInstance(c, args); + + return Type.createInstance(c, args); } } - -