feat: 添加 session arena 标记清扫 GC

This commit is contained in:
2026-06-16 23:09:36 +08:00
parent a9d8d0972c
commit 862e8585f8
7 changed files with 677 additions and 3 deletions
+2
View File
@@ -36,6 +36,8 @@ impl Vm {
let clone = src_ref.clone_for_session_epoch();
let dst = self.session_epoch.alloc(clone) as *mut JsObject;
forwarding.insert(src, dst);
self.session_object_ptrs.push(dst);
self.session_bytes_allocated += std::mem::size_of::<JsObject>();
let dst_ref = unsafe { &mut *dst };
dst_ref.rewrite_object_values(|value| self.promote_value_if_epoch_object(value, forwarding));