WebAssembly | MDN
Descripción
Los usos primarios para el objeto WebAssembly son:
- Cargar código WebAssembly, utilizando la función
WebAssembly.instantiate(). - Crear nuevas instancias de memoria y de tablas mediante los constructores
WebAssembly.Memory()/WebAssembly.Table(). - Facilitar el manejo de errores que ocurren dentro de un WebAssembly mediante los constructores:
WebAssembly.CompileError()/WebAssembly.LinkError()/WebAssembly.RuntimeError().
Métodos
WebAssembly.instantiate()-
El API primaria para compilar e instanciar código WebAssembly, ambos regresan un
Moduley el primeroInstance. WebAssembly.instantiateStreaming()-
Compila e instancia un módulo WebAssembly directamente desde un flujo de origen subyacente, ambos regresan un
Moduley el primeroInstance. WebAssembly.compile()-
Compila un
WebAssembly.Moduledesde el código binario de un WebAssembly, manteniendo la creación de la instancia como un objeto separado. WebAssembly.compileStreaming()-
compila un
WebAssembly.Moduledirectamente desde un flujo de origen subyacente, manteniendo la creación de la instancia como un objeto sepraado. WebAssembly.validate()-
Valida un arreglo con tipo de código binario de un WebAssembly, regresando si los bytes son código válido WebAssembly (
true) o de lo contrario (false).
Constructores
WebAssembly.Module()-
Crea un nuevo objeto WebAssembly
Module. WebAssembly.Instance()-
Crear un nuevo objeto WebAssembly
Instance. WebAssembly.Memory()-
Crear un nuevo objeto WebAssembly
Memory. WebAssembly.Table()-
Crear un nuevo objeto WebAssembly
Table. WebAssembly.CompileError()-
Crear un nuevo objeto WebAssembly
CompileError. WebAssembly.LinkError()-
Crear un nuevo objeto WebAssembly
LinkError. WebAssembly.RuntimeError()-
Crear un nuevo objeto WebAssembly
RuntimeError.
Ejemplos
Después de obtener algún bytecode de WebAssembly usando la sentencia fetch, nosotros compilamos e instanciamos el módulo usando la función WebAssembly.instantiate() , importando una función de JavaScript en el WebAssembly Module en el proceso. Esta premisa resuelve a un objeto (result) que contenga un objeto Module compilado y un objeto Instance . Entonces tenemos una llamada a Exported WebAssembly function que es exportada por Instance.
js
var importObject = {
imports: {
imported_func: function(arg) {
console.log(arg);
}
}
};
fetch('simple.wasm').then(response =>
response.arrayBuffer()
).then(bytes =>
WebAssembly.instantiate(bytes, importObject)
).then(result =>
result.instance.exports.exported_func()
);