diff --git a/src/main/java/me/topchetoeu/jscript/compilation/FunctionStatementNode.java b/src/main/java/me/topchetoeu/jscript/compilation/FunctionStatementNode.java index 698f3dd..1e8f7ac 100644 --- a/src/main/java/me/topchetoeu/jscript/compilation/FunctionStatementNode.java +++ b/src/main/java/me/topchetoeu/jscript/compilation/FunctionStatementNode.java @@ -19,8 +19,8 @@ public class FunctionStatementNode extends FunctionNode { @Override public void compile(CompileResult target, boolean pollute, String name, BreakpointType bp) { var id = target.addChild(compileBody(target, name, null)); - target.add(Instruction.loadFunc(id, name, captures(id, target))); - target.add(VariableNode.toInit(target, end, this.name)); + target.add(Instruction.loadFunc(id, name, captures(id, target))).setLocation(loc());; + target.add(VariableNode.toSet(target, end, this.name, false, true)); if (pollute) target.add(Instruction.pushUndefined()); } diff --git a/src/main/java/me/topchetoeu/jscript/compilation/FunctionValueNode.java b/src/main/java/me/topchetoeu/jscript/compilation/FunctionValueNode.java index 3d5794a..d9ea9ff 100644 --- a/src/main/java/me/topchetoeu/jscript/compilation/FunctionValueNode.java +++ b/src/main/java/me/topchetoeu/jscript/compilation/FunctionValueNode.java @@ -14,7 +14,7 @@ public class FunctionValueNode extends FunctionNode { @Override public void compile(CompileResult target, boolean pollute, String name, BreakpointType bp) { var id = target.addChild(compileBody(target, name, name)); - target.add(Instruction.loadFunc(id, name, captures(id, target))); + target.add(Instruction.loadFunc(id, name, captures(id, target))).setLocation(loc()); } public FunctionValueNode(Location loc, Location end, List params, CompoundNode body, String name) {