mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-05-22 04:01:27 +00:00
* Rename memory instructions as proposed by the bulk-memory-operations spec. * Rename memory manager functions to memory.* as well * Remove automatic inlining of constant globals (Binaryen does this now) * Improve 'const' enum compatibility * Improve module-level export generation * Enable the inline decorator for constant variables * Add ERROR, WARNING and INFO macros that emit a user-defined diagnostic * Reintroduce builtin decorator so these can appear anywhere in stdlib again * Inline isNaN and isFinite by default * Make an interface around gc.* similar to memory.* * Emit an error when trying to inline a mutable variable * Slim down CI stages * Add a more convenient tracing utility for debugging * Implement some prequesites for an eventual bundled GC
47 lines
854 B
TypeScript
47 lines
854 B
TypeScript
import "allocator/arena";
|
|
|
|
export const COLOR: string = "red";
|
|
|
|
export function strlen(str: string): i32 {
|
|
return str.length;
|
|
}
|
|
|
|
export namespace math {
|
|
export function add(a: i32, b: i32): i32 {
|
|
return a + b;
|
|
}
|
|
}
|
|
|
|
export class Car {
|
|
static readonly MAX_DOORS: i32 = 5;
|
|
static usualDoors: i32 = 3;
|
|
|
|
numDoors: i32;
|
|
private doorsOpen: bool = false;
|
|
|
|
get isDoorsOpen(): bool { return this.doorsOpen; }
|
|
set isDoorsOpen(value: bool) { this.doorsOpen = value; }
|
|
|
|
constructor(numDoors: i32) {
|
|
this.numDoors = numDoors;
|
|
}
|
|
|
|
openDoors(): bool {
|
|
if (this.doorsOpen) return false;
|
|
this.doorsOpen = true;
|
|
return true;
|
|
}
|
|
|
|
closeDoors(): bool {
|
|
if (!this.doorsOpen) return false;
|
|
this.doorsOpen = false;
|
|
return true;
|
|
}
|
|
|
|
dispose(): void {
|
|
memory.free(changetype<usize>(this));
|
|
}
|
|
}
|
|
|
|
export { memory };
|