es2c/runtime/include/obj.h

27 lines
515 B
C
Raw Normal View History

2025-01-16 22:48:30 +00:00
#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);