27 lines
515 B
C
27 lines
515 B
C
#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);
|