From bd548c813a91c5c5e583772abff6cde8ec454927 Mon Sep 17 00:00:00 2001 From: TopchetoEU <36534413+TopchetoEU@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:45:38 +0300 Subject: [PATCH] fix: null out thisArg only when constructing --- .../jscript/runtime/values/functions/CodeFunction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/topchetoeu/jscript/runtime/values/functions/CodeFunction.java b/src/main/java/me/topchetoeu/jscript/runtime/values/functions/CodeFunction.java index 5bf781e..e72a38a 100644 --- a/src/main/java/me/topchetoeu/jscript/runtime/values/functions/CodeFunction.java +++ b/src/main/java/me/topchetoeu/jscript/runtime/values/functions/CodeFunction.java @@ -14,7 +14,6 @@ public final class CodeFunction extends FunctionValue { public Value argsVal; private Value onCall(Frame frame) { - if (mustCallSuper) frame.self = null; frame.onPush(); try { @@ -32,6 +31,7 @@ public final class CodeFunction extends FunctionValue { var frame = new Frame(env, isNew, thisArg, args, this); if (argsVal != null) frame.fakeArgs = argsVal; if (self != null) frame.self = self; + if (mustCallSuper && isNew) frame.self = null; var res = onCall(frame);