feat: 添加 session arena 标记清扫 GC

This commit is contained in:
爱特每羊队
2026-06-16 23:09:36 +08:00
parent 94beeb350b
commit a1b6ab944a
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));