mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-18 20:40:28 +00:00
fix wasm runtime.js storeString to support Unicode
This commit is contained in:
7
vendor/wasm/js/runtime.js
vendored
7
vendor/wasm/js/runtime.js
vendored
@@ -104,9 +104,12 @@ class WasmMemoryInterface {
|
||||
storeInt(addr, value) { this.mem.setInt32 (addr, value, true); }
|
||||
storeUint(addr, value) { this.mem.setUint32 (addr, value, true); }
|
||||
|
||||
// Returned length might not be the same as `value.length` if non-ascii strings are given.
|
||||
storeString(addr, value) {
|
||||
const bytes = this.loadBytes(addr, value.length);
|
||||
new TextEncoder().encodeInto(value, bytes);
|
||||
const src = new TextEncoder().encode(value);
|
||||
const dst = new Uint8Array(this.memory.buffer, addr, src.length);
|
||||
dst.set(src);
|
||||
return src.length;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user