Improved static variables

This commit is contained in:
NeeEoo
2023-04-10 02:37:41 +02:00
parent dc5282c32e
commit 6e20578a81
+10 -3
View File
@@ -423,7 +423,7 @@ class Interp {
return l.r;
var v = variables.get(id);
for(map in [customClasses, staticVariables, publicVariables, variables])
for(map in [variables, publicVariables, staticVariables, customClasses])
if (map.exists(id))
return map[id];
@@ -510,8 +510,15 @@ class Interp {
case EVar(n, _, e, isPublic, isStatic):
declared.push({n: n, old: locals.get(n), depth: depth});
locals.set(n, {r: (e == null) ? null : expr(e), depth: depth});
if (depth == 0)
(isStatic == true ? staticVariables : (isPublic ? publicVariables : variables)).set(n, locals[n].r);
if (depth == 0) {
if(isStatic == true) {
if(!staticVariables.exists(n)) {
staticVariables.set(n, locals[n].r);
}
return null;
}
(isPublic ? publicVariables : variables).set(n, locals[n].r);
}
return null;
case EParent(e):
return expr(e);