perf: 数组回调字节码调用改寄存器窗口复用减少搬移

This commit is contained in:
2026-08-13 20:11:09 +08:00
parent 1ea9c76ab4
commit fccf2063f1
6 changed files with 97 additions and 48 deletions
+2 -2
View File
@@ -131,7 +131,7 @@ impl Vm {
/// - 参数默认值的副作用、`arguments` 创建、解构的迭代副作用在调用时刻完成。
fn initialize_async_generator(&mut self, gen_val: JsValue) -> Result<(), String> {
let state_ptr = self.async_gen_state_ptr(gen_val);
let saved = self.save_inline_state();
let saved = self.save_inline_state(256);
self.generator_suspended = None;
// 嵌套生成器创建(参数默认值里调用其它 generator)会改写 init 标志,须保存恢复。
let prev_init_step = self.generator_init_step;
@@ -288,7 +288,7 @@ impl Vm {
/// - 嵌套 dispatch 期间 VM 完全被异步生成器状态占据。
pub(crate) fn resume_async_generator(&mut self, gen_val: JsValue) -> Result<(), String> {
let state_ptr = self.async_gen_state_ptr(gen_val);
let saved = self.save_inline_state();
let saved = self.save_inline_state(256);
self.generator_suspended = None;
self.async_gen_suspended = false;
let prev_ctx = self.async_context.take();