mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-28 16:32:15 +00:00
44 lines
868 B
TypeScript
44 lines
868 B
TypeScript
|
// A dummy reference counting 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 retain_count = 0;
|
||
|
export var retain_ref: usize = 0;
|
||
|
|
||
|
// @ts-ignore: decorator
|
||
|
@global @unsafe
|
||
|
function __ref_retain(ref: usize): void {
|
||
|
trace("gc.retain", 1, ref);
|
||
|
retain_count++;
|
||
|
retain_ref = ref;
|
||
|
}
|
||
|
|
||
|
export var release_count = 0;
|
||
|
export var release_ref: usize = 0;
|
||
|
|
||
|
// @ts-ignore: decorator
|
||
|
@global @unsafe
|
||
|
function __ref_release(ref: usize): void {
|
||
|
trace("gc.release", 1, ref);
|
||
|
release_count++;
|
||
|
release_ref = ref;
|
||
|
}
|