WebAssembly

El objeto WebAssembly de JavaScript actua como un namespace para todas las funcionalidades realcionados con WebAssembly.

A diferencia de otros objetos globales, WebAssembly no tiene un constructor (no tiene una funci贸n para crear el objeto). Puedes ser comparado con el objeto Math, que tambi茅n es un namespace, para funciones y constantes matem谩ticas, o tambi茅n con Intl que es un namespace para internacionalizaci贸n y otras funciones de idioma.

Descripci贸n

Los usos primarios para el objeto WebAssembly son:

M茅todos

WebAssembly.instantiate()
El API primaria para compilar e instanciar c贸digo WebAssembly, ambos regresan un Module y el primero Instance.
WebAssembly.instantiateStreaming()
Compila e instancia un m贸dulo WebAssembly directamente desde un flujo de origen subyacente, ambos regresan un Module y el primero Instance.
WebAssembly.compile()
Compila un WebAssembly.Module desde el c贸digo binario de un WebAssembly, manteniendo la creaci贸n de la instancia como un objeto separado.
WebAssembly.compileStreaming()
compila un WebAssembly.Module directamente 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.

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()
);

Nota: Ver index.html en GitHub (view it live also) para un ejemplo que hace uso de la funci贸n fetchAndInstantiate().

Especificaciones

Especificaci贸n Estado Comentario
WebAssembly JavaScript Interface
La definici贸n de 'WebAssembly' en esta especificaci贸n.
Working Draft Definici贸n inicial del borrador.

Compatibilidad de Navegadores

BCD tables only load in the browser

Ver tambi茅n