perf: upvalue 读取缓存 callee 切片指针省解引用链

This commit is contained in:
2026-09-26 20:30:53 +00:00
parent bf19cf112b
commit 717960a9e8
7 changed files with 59 additions and 19 deletions
+5
View File
@@ -100,6 +100,7 @@ impl Vm {
inline_args_count: 0,
accessor_frame_target_reg: None,
inline_callee: None,
upvalue_cache: None,
inline_strict: false,
inline_frames_base: 0,
top_level_strict: false,
@@ -236,6 +237,7 @@ impl Vm {
inline_args_count: 0,
accessor_frame_target_reg: None,
inline_callee: None,
upvalue_cache: None,
inline_strict: false,
inline_frames_base: 0,
top_level_strict: false,
@@ -550,6 +552,9 @@ impl Vm {
self.reentry_hops = 0;
// inline 窗口缓冲池内容为已废弃快照,跨 run/reset 不保留。
self.inline_reg_pool = None;
// upvalue 切片缓存是执行期状态:键为 callee 值,跨 run/reset 后缓存的
// 切片指针失效(callee 对象可能已回收)。
self.upvalue_cache = None;
// 微任务队列是执行期状态:跨 run 不保留。
self.job_queue.clear();
// Atomics waiter 表同属执行期状态:未结算 promise 清位后无强根。