refactor: 退役根重写镜像与对象克隆重写族,保留原地 sweep 弱键定夺

This commit is contained in:
2026-10-02 19:24:56 +00:00
parent 89655f0b7f
commit 43acaacd08
10 changed files with 11 additions and 424 deletions
-30
View File
@@ -107,33 +107,3 @@ pub(crate) fn for_each_job_value(job: &Microtask, mut f: impl FnMut(JsValue)) {
}
}
}
/// 供外部改写微任务队列中的 JsValue(session GC sweep 用)。
#[allow(dead_code)]
pub(crate) fn rewrite_job_values(job: &mut Microtask, mut rewrite: impl FnMut(JsValue) -> JsValue) {
match job {
Microtask::Reaction {
handler,
argument,
resolve,
reject,
..
} => {
*handler = rewrite(*handler);
*argument = rewrite(*argument);
*resolve = rewrite(*resolve);
*reject = rewrite(*reject);
}
Microtask::Thenable {
thenable,
then,
resolve,
reject,
} => {
*thenable = rewrite(*thenable);
*then = rewrite(*then);
*resolve = rewrite(*resolve);
*reject = rewrite(*reject);
}
}
}
+1 -1
View File
@@ -18,7 +18,7 @@ mod reactions;
mod settlement;
pub(crate) use gc_edges::{drop_promise_native, promise_native_edges, promise_native_size};
pub(crate) use jobs::{for_each_job_value, rewrite_job_values};
pub(crate) use jobs::for_each_job_value;
pub use reactions::promise_settled_value;
/// Promise 的 settled 状态。