mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-27 16:02:16 +00:00
48 lines
1.0 KiB
TypeScript
48 lines
1.0 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;
|
|
}
|