--- title: WebAssembly slug: Web/JavaScript/Reference/Global_Objects/WebAssembly tags: - API - JavaScript - Objekt - Referenz - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly ---
Das WebAssembly
JavaScript Objekt existiert als Namensraum für alle WebAssembly-bezogenen Funktionalitäten.
Anders als die meisten anderen globalen Objekte, ist WebAssembly
kein Konstruktor (es ist kein Funktionsobjekt). Es kann mit {{jsxref("Math")}} verglichen werden, welches ebenfalls einen Namensraum für mathematische Konstanten und Funktionen bildet. Oder mit {{jsxref("Intl")}}, welches den Namensraum für die Internationalisierunges API mit sprachabhängigen Funktionen bildet.
Die primäre Verwendung des WebAssembly
Objekts sind:
Promise
ergibt ein Module
als auch die erste Instance
.Promise
ergibt sich ein Module
als auch die erste Instance
.true
) oder nicht (false
).Global
Objekt.Module
Objekt.Instance
Objekt.Memory
Objekt.Table
Objekt.CompileError
Objekt.LinkError
Objekt.RuntimeError
Objekt.Das folgende Beispiel (siehe instantiate-streaming.html Demo auf GitHub, siehe auch live) streamt ein .wasm Modul direkt aus einer zugrunde liegenden Quelle, um es dann zu kompilieren und zu instanziieren. Das Promise erfüllt sich mit einem ResultObject
. Weil die instantiateStreaming()
Funktion ein Promise für ein {{domxref("Response")}} akzeptiert, kann ihr ein {{domxref("WindowOrWorkerGlobalScope.fetch()")}} direkt übergeben werden, welches die Antwort an die Funktion weitergibt, sobald das Promise sich erfüllt.
var importObject = { imports: { imported_func: arg => console.log(arg) } }; WebAssembly.instantiateStreaming(fetch('simple.wasm'), importObject) .then(obj => obj.instance.exports.exported_func());
Auf die ResultObject
Instanz wird damit zugegriffen und die beinhaltete, exportierte Funktion aufgerufen.
Specification | Status | Comment |
---|---|---|
{{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}} | {{Spec2('WebAssembly JS')}} | Initial draft definition. |
{{Compat("javascript.builtins.WebAssembly")}}