mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-27 07:52:14 +00:00
59 lines
1.2 KiB
TypeScript
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;
|
|
}
|