mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-27 12:11:12 +08:00
refactor: 退役根重写镜像与对象克隆重写族,保留原地 sweep 弱键定夺
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 状态。
|
||||
|
||||
Reference in New Issue
Block a user