Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
CompileErrorChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
GlobalChrome Soporte completo 69Edge Sin soporte NoFirefox Soporte completo 62IE Sin soporte NoOpera Sin soporte NoSafari Sin soporte NoWebView Android Soporte completo 69Chrome Android Soporte completo 69Edge Mobile Sin soporte NoFirefox Android Soporte completo 62Opera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No
InstanceChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
LinkErrorChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
MemoryChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
ModuleChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
RuntimeErrorChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
TableChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
compileChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android Soporte completo 44Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
compileStreamingChrome Soporte completo 61Edge Soporte completo 16Firefox Soporte completo 58IE Sin soporte NoOpera Soporte completo 47Safari Sin soporte NoWebView Android Soporte completo 61Chrome Android Soporte completo 61Edge Mobile Sin soporte NoFirefox Android Soporte completo 58Opera Android ? Safari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No
instantiateChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0
instantiateStreamingChrome Soporte completo 61Edge Soporte completo 16Firefox Soporte completo 58IE Sin soporte NoOpera Soporte completo 47Safari Sin soporte NoWebView Android Soporte completo 61Chrome Android Soporte completo 61Edge Mobile Sin soporte NoFirefox Android Soporte completo 58Opera Android ? Safari iOS Sin soporte NoSamsung Internet Android Sin soporte Nonodejs Sin soporte No
validateChrome Soporte completo 57Edge Soporte completo 16Firefox Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
IE Sin soporte NoOpera Soporte completo 44Safari Soporte completo 11WebView Android Soporte completo 57Chrome Android Soporte completo 57Edge Mobile Soporte completo Si
Deshabilitado
Soporte completo Si
Deshabilitado
Deshabilitado This feature is behind the Experimental JavaScript Features preference.
Firefox Android Soporte completo 52
Notas
Soporte completo 52
Notas
Notas Disabled in the Firefox 52 Extended Support Release (ESR).
Opera Android ? Safari iOS Soporte completo 11Samsung Internet Android Soporte completo 7.0nodejs Soporte completo 8.0.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibility unknown  
Compatibility unknown
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: jvalencia
Última actualización por: jvalencia,