mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
28 lines
659 B
TypeScript
28 lines
659 B
TypeScript
/// <reference path="../../assembly.d.ts" />
|
|
|
|
@global()
|
|
class Memory {
|
|
|
|
static allocate(size: usize): usize {
|
|
const ptr: usize = load<usize>(sizeof<usize>());
|
|
store<usize>(sizeof<usize>(), ptr + size);
|
|
return ptr;
|
|
}
|
|
|
|
static free(ptr: usize): void {
|
|
}
|
|
|
|
static copy(src: usize, dst: usize, count: usize): void {
|
|
for (let i: usize = 0; i < count; ++i)
|
|
store<u8>(dst + i, load<u8>(src + i));
|
|
}
|
|
|
|
static compare(src: usize, dst: usize, count: usize): i32 {
|
|
for (let i: usize = 0; i < count; ++i) {
|
|
const d: i32 = (load<u8>(src + i) as i32) - (load<u8>(dst + i) as i32);
|
|
if (d) return d;
|
|
}
|
|
return 0;
|
|
}
|
|
}
|