mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-05-01 09:52:19 +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
24 lines
554 B
TypeScript
24 lines
554 B
TypeScript
import "allocator/arena";
|
|
|
|
var str = "𐐷hi𤭢"; // -> f0 90 90 b7 68 69 f0 a4 ad a2 00
|
|
|
|
var len = str.lengthUTF8;
|
|
|
|
assert(len == 11);
|
|
|
|
var ptr = str.toUTF8();
|
|
|
|
assert(load<u8>(ptr, 0) == 0xf0);
|
|
assert(load<u8>(ptr, 1) == 0x90);
|
|
assert(load<u8>(ptr, 2) == 0x90);
|
|
assert(load<u8>(ptr, 3) == 0xb7);
|
|
assert(load<u8>(ptr, 4) == 0x68);
|
|
assert(load<u8>(ptr, 5) == 0x69);
|
|
assert(load<u8>(ptr, 6) == 0xf0);
|
|
assert(load<u8>(ptr, 7) == 0xa4);
|
|
assert(load<u8>(ptr, 8) == 0xad);
|
|
assert(load<u8>(ptr, 9) == 0xa2);
|
|
assert(load<u8>(ptr, 10) == 0);
|
|
|
|
memory.free(ptr);
|