Outside variables now in classes (no more import in class)
This commit is contained in:
@@ -22,14 +22,35 @@ class CustomClassHandler implements IHScriptCustomConstructor {
|
||||
|
||||
interp.errorHandler = ogInterp.errorHandler;
|
||||
|
||||
var cl = extend == null ? TemplateClass : Type.resolveClass('${extend}_HSX');
|
||||
var _class = Type.createInstance(cl, args);
|
||||
|
||||
var __capturedLocals = ogInterp.duplicate(ogInterp.locals);
|
||||
var capturedLocals:Map<String, {r:Dynamic, depth:Int}> = [];
|
||||
for(k=>e in __capturedLocals)
|
||||
if (e != null && e.depth <= 0)
|
||||
capturedLocals.set(k, e);
|
||||
|
||||
//trace("Locals");
|
||||
for (key => value in capturedLocals) {
|
||||
if(Reflect.getProperty(_class, key) == null) {
|
||||
interp.locals.set(key, {r: value, depth: -1});
|
||||
//trace(key, value);
|
||||
}
|
||||
}
|
||||
//trace("Variables");
|
||||
for (key => value in ogInterp.variables) {
|
||||
if(Reflect.getProperty(_class, key) == null) {
|
||||
interp.variables.set(key, value);
|
||||
//trace(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
for(expr in fields) {
|
||||
@:privateAccess
|
||||
interp.exprReturn(expr);
|
||||
}
|
||||
|
||||
var cl = extend == null ? TemplateClass : Type.resolveClass('${extend}_HSX');
|
||||
var _class = Type.createInstance(cl, args);
|
||||
|
||||
interp.variables.set("super", staticHandler);
|
||||
|
||||
_class.__interp = interp;
|
||||
|
||||
+3
-3
@@ -57,7 +57,7 @@ class Interp {
|
||||
public var publicVariables:Map<String, Dynamic>;
|
||||
public var staticVariables:Map<String, Dynamic>;
|
||||
|
||||
var locals:Map<String, {r:Dynamic, depth:Int}>;
|
||||
public var locals:Map<String, {r:Dynamic, depth:Int}>;
|
||||
var binops:Map<String, Expr->Expr->Dynamic>;
|
||||
#else
|
||||
public var customClasses:Hash<Dynamic>;
|
||||
@@ -65,7 +65,7 @@ class Interp {
|
||||
public var publicVariables:Hash<Dynamic>;
|
||||
public var staticVariables:Hash<Dynamic>;
|
||||
|
||||
var locals:Hash<{r:Dynamic, depth:Int}>;
|
||||
public var locals:Hash<{r:Dynamic, depth:Int}>;
|
||||
var binops:Hash<Expr->Expr->Dynamic>;
|
||||
#end
|
||||
|
||||
@@ -379,7 +379,7 @@ class Interp {
|
||||
return null;
|
||||
}
|
||||
|
||||
function duplicate<T>(h:#if haxe3 Map<String, T> #else Hash<T> #end) {
|
||||
public function duplicate<T>(h:#if haxe3 Map<String, T> #else Hash<T> #end) {
|
||||
#if haxe3
|
||||
var h2 = new Map();
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user