#pragma once #include "./runtime.h" #include "./impl.h" typedef struct { bool is_symbol; js_gc_str_t name; } js_obj_member_t; typedef struct js_obj_node { size_t hash; js_obj_member_t *member; struct js_obj_node *next; } js_obj_node_t; typedef struct { js_gc_data_t gc; size_t buckets_n; js_obj_node_t *buckets; js_obj_node_t *first; } *js_obj_t; void js_gc_dryrun_obj(js_gc_task_stack_t *stack, void **ref, js_obj_t obj); void js_gc_reclaim_obj(js_gc_task_stack_t *stack, void **ref, js_obj_t obj);