fix: 修复字节码函数调用污染调用者寄存器问题

This commit is contained in:
爱特每羊队
2026-06-08 22:06:53 +08:00
parent 72f444ea20
commit a715a3ac21
4 changed files with 73 additions and 7 deletions
+22
View File
@@ -94,6 +94,28 @@ fn two_funcs_called_from_global() {
assert!((result.as_double() - 3.0).abs() < 0.0001);
}
#[test]
fn call_preserves_previous_call_result_register() {
let mut vm = Vm::new();
let result = eval(
&mut vm,
"function g() { return 10; } function h() { return 20; } function f() { return g() + h(); } f()",
)
.unwrap();
assert!((result.as_double() - 30.0).abs() < 0.0001);
}
#[test]
fn call_preserves_local_across_nested_bytecode_call() {
let mut vm = Vm::new();
let result = eval(
&mut vm,
"function g() { return 10; } function h() { return 20; } function f() { var x = g(); return x + h(); } f()",
)
.unwrap();
assert!((result.as_double() - 30.0).abs() < 0.0001);
}
// --- Builtins inside functions ---
#[test]