A partir de https://github.com/AssemblyScript/assemblyscript/pull/111 , parece que los I64 podrán cruzar el límite de WASM <-> JS en algún momento como BigInt
s, lo que permitirá el soporte durante mucho tiempo. enteros tanto en el ensamblado como en las definiciones portátiles y de mecanografiado generadas. Una precuela no tan obvia aquí podría ser manejarlos en la salida asm.js (i64-to-i32-lowering) también de alguna manera.
BigInt ahora está en Chrome, Firefox (detrás de la bandera experimental) y NodeJS.
Me encantaría ver la sintaxis 1234n
y el tipo BigInt
admitidos en assemblyscript, incluso si es solo i64 bajo el capó por ahora.
BigInt
definitivamente tiene sentido solo para precisión arbitraria (en realidad, cualquier número grande). En otro caso, confundirá a la gente.
El cargador ahora tiene soporte BigInt64Array
etc. para lo que es un Int64Array
en AS, y el paso de i64 <-> BigInt
través de exportaciones e importaciones se puede lograr habilitando --experimental-wasm-bigint
en V8, por ejemplo, sin necesidad de más trabajo por nuestra parte. Como tal, considero que "pasar I64 a / desde WASM" está resuelto, aunque todavía no tenemos una clase BigInt en el lado AS, lo que sería una mejora diferente.
Comentario más útil
BigInt ahora está en Chrome, Firefox (detrás de la bandera experimental) y NodeJS.