feat: 增加 CreateClosure 字节码,函数字面量每次执行创建新闭包

This commit is contained in:
爱特每羊队
2026-06-25 10:16:32 +08:00
parent 12f66ae675
commit 5007e7af7c
8 changed files with 29 additions and 13 deletions
+14
View File
@@ -739,6 +739,20 @@ impl Vm {
self.dispatch_load_const(rd, instr)?;
}
OpCode::CREATE_CLOSURE => {
let sub_idx = opcode::imm16(instr) as u32;
debug_assert!(sub_idx > 0 && (sub_idx as usize) <= self.sub_modules.len());
let sub = &self.sub_modules[sub_idx as usize - 1];
let result = self.create_function_object(
sub_idx,
sub.is_arrow,
sub.is_class_constructor,
sub.is_derived_constructor,
sub.needs_home_object,
);
self.regs[rd] = result;
}
OpCode::ADD => {
self.dispatch_add(rd, a, b)?;
}