2019-04-02 10:12:57 +02:00

59 lines
1.2 KiB
TypeScript

// A dummy tracing GC for testing.
export var collect_count = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_collect(): void {
trace("gc.collect");
collect_count++;
}
export var register_count = 0;
export var register_ref: usize = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_register(ref: usize): void {
trace("gc.register", 1, ref);
register_count++;
register_ref = ref;
}
export var link_count = 0;
export var link_ref: usize = 0;
export var link_parentRef: usize = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_link(ref: usize, parentRef: usize): void {
trace("gc.link", 2, ref, parentRef);
link_count++;
link_ref = ref;
link_parentRef = ref;
}
export var unlink_count = 0;
export var unlink_ref: usize = 0;
export var unlink_parentRef: usize = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_unlink(ref: usize, parentRef: usize): void {
trace("gc.unlink", 2, ref, parentRef);
unlink_count++;
unlink_ref = ref;
unlink_parentRef = parentRef;
}
export var mark_count = 0;
export var mark_ref: usize = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_mark(ref: usize): void {
trace("gc.mark", 1, ref);
mark_count++;
mark_ref = ref;
}