feat: ErrorEvent 载荷盒加 GC 加构造器加原型加 onerror 整合

This commit is contained in:
2026-10-10 16:32:58 +00:00
parent 6214e9e93a
commit 21932522cf
10 changed files with 592 additions and 66 deletions
+5 -2
View File
@@ -134,6 +134,7 @@ impl SessionGc {
bytes += broadcast_channel::broadcast_channel_native_size(obj);
bytes += event::event_native_size(obj);
bytes += event::message_event_native_size(obj);
bytes += event::error_event_native_size(obj);
bytes += crate::arguments_gc::arguments_native_size(obj);
bytes
@@ -378,12 +379,13 @@ impl SessionGc {
}
}
// 事件系载荷盒(Event / MessageEvent / ErrorEvent / CustomEvent)字符串
// 边标记:按标签取对应边函数;ErrorEvent / CustomEvent 载荷盒由后续子
// 任务填充,当前取空边。
// 边标记:按标签取对应边函数;CustomEvent 载荷盒由后续子任务填充,
// 当前取空边。
if event::is_event_family_obj(obj) {
let edges = match obj.type_tag {
JsObject::OBJ_TYPE_EVENT => event::event_native_edges(obj),
JsObject::OBJ_TYPE_MESSAGE_EVENT => event::message_event_native_edges(obj),
JsObject::OBJ_TYPE_ERROR_EVENT => event::error_event_native_edges(obj),
_ => Vec::new(),
};
for value in edges {
@@ -593,6 +595,7 @@ impl SessionGc {
freed_bytes += broadcast_channel::drop_broadcast_channel_native(obj);
freed_bytes += event::drop_event_native(obj);
freed_bytes += event::drop_message_event_native(obj);
freed_bytes += event::drop_error_event_native(obj);
freed_bytes += crate::arguments_gc::drop_arguments_native(obj);
freed_bytes