fix: derived classes use the scope API incorrectly

This commit is contained in:
TopchetoEU 2024-09-21 18:43:32 +03:00
parent 797452c28f
commit 98e5299f9c
Signed by: topchetoeu
GPG Key ID: 6531B8583E5F6ED4

View File

@ -99,7 +99,9 @@ public abstract class ClassNode extends FunctionNode {
compilePrototype(target);
}
else {
var subtarget = target.rootEnvironment(JavaScript.COMPILE_ROOT).subtarget();
var subtarget = target.subtarget().rootEnvironment(JavaScript.COMPILE_ROOT);
subtarget.scope.singleEntry = true;
subtarget.beginScope();
var protoVar = target.scope.defineTemp();
var constrVar = target.scope.defineTemp();
@ -138,6 +140,7 @@ public abstract class ClassNode extends FunctionNode {
compileStatic(staticTarget);
compilePrototype(protoTarget);
subtarget.endScope();
}
}
@ -228,7 +231,7 @@ public abstract class ClassNode extends FunctionNode {
n++;
break;
}
else ParseRes.error(src.loc(i + n), "Expected a comma or a closing brace.");
// else return ParseRes.error(src.loc(i + n), "Expected a comma or a closing brace.");
}
return ParseRes.res(new ClassBody(statics, fields, members, params, body, superExpr.result, hasConstr), n);