feat: 新增 MOV/SPILL/UNSPILL 执行语义 + spill 栈帧边界(D-06/D-07/D-08)

This commit is contained in:
2026-08-06 16:51:01 +08:00
parent 59d2c93bff
commit fd267816f4
9 changed files with 197 additions and 0 deletions
+4
View File
@@ -506,6 +506,9 @@ fn rewrite_vm_roots(vm: &mut Vm, forwarding: &HashMap<*mut JsObject, *mut JsObje
for value in &mut vm.save_stack {
*value = rewrite_forwarded_value(*value, forwarding);
}
for value in &mut vm.spill_stack {
*value = rewrite_forwarded_value(*value, forwarding);
}
for frame in &mut vm.frames {
frame.saved_this = rewrite_forwarded_value(frame.saved_this, forwarding);
frame.saved_new_target = rewrite_forwarded_value(frame.saved_new_target, forwarding);
@@ -586,6 +589,7 @@ mod tests {
function_name: 0,
caller_reg_limit: 1,
saved_reg_offset: 0,
spill_offset: 0,
saved_this: JsValue::from_js_object(this_session),
saved_new_target: JsValue::from_js_object(child_session),
callee: JsValue::from_js_object(child_session),