Wasm
Efficiently execute computationally intensive tasks. Wasm module compilation, instantiation, memory management, and interaction with imports and exports.
Eg WebAssembly.instantiate, WebAssembly.Module, WebAssembly.Instance
class WebAssembly.CompileError
The WebAssembly.CompileError object indicates an error during WebAssembly decoding or validation.
Constructors
CompileError(
message?: string,
options?: ErrorOptions,
) Creates a new WebAssembly.CompileError object.
class WebAssembly.Global
A WebAssembly.Global object represents a global variable instance, accessible from both JavaScript and importable/exportable across one or more WebAssembly.Module instances. This allows dynamic linking of multiple modules.
Constructors
Global(
descriptor: GlobalDescriptor,
v?: any,
) Creates a new Global object.
Properties
value: any The value contained inside the global variable — this can be used to directly set and get the global's value.
Methods
valueOf(): any Old-style method that returns the value contained inside the global variable.
class WebAssembly.Instance
A WebAssembly.Instance object is a stateful, executable instance of a WebAssembly.Module. Instance objects contain all the Exported WebAssembly functions that allow calling into WebAssembly code from JavaScript.
Constructors
Properties
class WebAssembly.LinkError
The WebAssembly.LinkError object indicates an error during module instantiation (besides traps from the start function).
Constructors
LinkError(
message?: string,
options?: ErrorOptions,
) Creates a new WebAssembly.LinkError object.
class WebAssembly.Memory
The WebAssembly.Memory object is a resizable ArrayBuffer or SharedArrayBuffer that holds the raw bytes of memory accessed by a WebAssembly Instance.
A memory created by JavaScript or in WebAssembly code will be accessible and mutable from both JavaScript and WebAssembly.
Constructors
Memory(descriptor: MemoryDescriptor) Creates a new Memory object.
Properties
buffer: ArrayBuffer | SharedArrayBuffer An accessor property that returns the buffer contained in the memory.
Methods
grow(delta: number): number Increases the size of the memory instance by a specified number of WebAssembly pages (each one is 64KB in size).
class WebAssembly.Module
A WebAssembly.Module object contains stateless WebAssembly code that has already been compiled by the browser — this can be efficiently shared with Workers, and instantiated multiple times.
Constructors
Module(bytes: BufferSource) Creates a new Module object.
Static Methods
customSections(
moduleObject: Module,
sectionName: string,
): ArrayBuffer[] Given a Module and string, returns a copy of the contents of all custom sections in the module with the given string name.
exports(moduleObject: Module): ModuleExportDescriptor[] Given a Module, returns an array containing descriptions of all the declared exports.
imports(moduleObject: Module): ModuleImportDescriptor[] Given a Module, returns an array containing descriptions of all the declared imports.
class WebAssembly.RuntimeError
The WebAssembly.RuntimeError object is the error type that is thrown whenever WebAssembly specifies a trap.
Constructors
RuntimeError(
message?: string,
options?: ErrorOptions,
) Creates a new WebAssembly.RuntimeError object.
class WebAssembly.Table
The WebAssembly.Table() object is a JavaScript wrapper object — an array-like structure representing a WebAssembly Table, which stores function references. A table created by JavaScript or in WebAssembly code will be accessible and mutable from both JavaScript and WebAssembly.
Constructors
Table(descriptor: TableDescriptor) Creates a new Table object.
Properties
length: number Returns the length of the table, i.e. the number of elements.
Methods
get(index: number): Function | null Accessor function — gets the element stored at a given index.
grow(delta: number): number Increases the size of the Table instance by a specified number of elements.
set(
index: number,
value: Function | null,
): void Sets an element stored at a given index to a given value.
function WebAssembly.compile
compile(bytes: BufferSource): Promise<Module>The WebAssembly.compile() function compiles WebAssembly binary code into a WebAssembly.Module object. This function is useful if it is necessary to compile a module before it can be instantiated (otherwise, the WebAssembly.instantiate() function should be used).
Parameters
bytes: BufferSource Return Type
Promise<Module> function WebAssembly.compileStreaming
compileStreaming(source: Response | Promise<Response>): Promise<Module>The WebAssembly.compileStreaming() function compiles a WebAssembly.Module directly from a streamed underlying source. This function is useful if it is necessary to a compile a module before it can be instantiated (otherwise, the WebAssembly.instantiateStreaming() function should be used).
Parameters
Return Type
Promise<Module> function WebAssembly.instantiate
Overload 1
instantiate(
bytes: BufferSource,
importObject?: Imports,
): Promise<WebAssemblyInstantiatedSource>The WebAssembly.instantiate() function allows you to compile and instantiate WebAssembly code.
This overload takes the WebAssembly binary code, in the form of a typed array or ArrayBuffer, and performs both compilation and instantiation in one step. The returned Promise resolves to both a compiled WebAssembly.Module and its first WebAssembly.Instance.
Parameters
bytes: BufferSource importObject: Imports Return Type
Promise<WebAssemblyInstantiatedSource> Overload 2
instantiate(): Promise<Instance>The WebAssembly.instantiate() function allows you to compile and instantiate WebAssembly code.
This overload takes an already-compiled WebAssembly.Module and returns a Promise that resolves to an Instance of that Module. This overload is useful if the Module has already been compiled.
Parameters
Return Type
Promise<Instance> function WebAssembly.instantiateStreaming
instantiateStreaming(): Promise<WebAssemblyInstantiatedSource>The WebAssembly.instantiateStreaming() function compiles and instantiates a WebAssembly module directly from a streamed underlying source. This is the most efficient, optimized way to load wasm code.
Parameters
Return Type
Promise<WebAssemblyInstantiatedSource> function WebAssembly.validate
validate(bytes: BufferSource): booleanThe WebAssembly.validate() function validates a given typed array of WebAssembly binary code, returning whether the bytes form a valid wasm module (true) or not (false).
Parameters
bytes: BufferSource Return Type
boolean interface WebAssembly.GlobalDescriptor
interface WebAssembly.MemoryDescriptor
interface WebAssembly.ModuleExportDescriptor
A ModuleExportDescriptor is the description of a declared export in a WebAssembly.Module.
Properties
The kind of entity being exported.
name: string The name under which the entity is exported.
interface WebAssembly.ModuleImportDescriptor
interface WebAssembly.TableDescriptor
The TableDescriptor describes the options you can pass to new WebAssembly.Table().
Properties
interface WebAssembly.WebAssemblyInstantiatedSource
The value returned from WebAssembly.instantiate.
Properties
namespace WebAssembly
The WebAssembly JavaScript object acts as the namespace for all WebAssembly-related functionality. Unlike most global objects, it is not a constructor; it groups the functions used to compile and instantiate WebAssembly modules together with the classes (Module, Instance, Memory, Table, Global) and error types used to work with them.
Classes
The WebAssembly.CompileError object indicates an error during WebAssembly decoding or validation.
A WebAssembly.Global object represents a global variable instance, accessible from both JavaScript and importable/exportable across one or more WebAssembly.Module instances. This allows dynamic linking of multiple modules.
A WebAssembly.Instance object is a stateful, executable instance of a WebAssembly.Module. Instance objects contain all the Exported WebAssembly functions that allow calling into WebAssembly code from JavaScript.
The WebAssembly.LinkError object indicates an error during module instantiation (besides traps from the start function).
The WebAssembly.Memory object is a resizable ArrayBuffer or SharedArrayBuffer that holds the raw bytes of memory accessed by a WebAssembly Instance.
A WebAssembly.Module object contains stateless WebAssembly code that has already been compiled by the browser — this can be efficiently shared with Workers, and instantiated multiple times.
The WebAssembly.RuntimeError object is the error type that is thrown whenever WebAssembly specifies a trap.
The WebAssembly.Table() object is a JavaScript wrapper object — an array-like structure representing a WebAssembly Table, which stores function references. A table created by JavaScript or in WebAssembly code will be accessible and mutable from both JavaScript and WebAssembly.
Functions
The WebAssembly.compile() function compiles WebAssembly binary code into a WebAssembly.Module object. This function is useful if it is necessary to compile a module before it can be instantiated (otherwise, the WebAssembly.instantiate() function should be used).
The WebAssembly.compileStreaming() function compiles a WebAssembly.Module directly from a streamed underlying source. This function is useful if it is necessary to a compile a module before it can be instantiated (otherwise, the WebAssembly.instantiateStreaming() function should be used).
The WebAssembly.instantiate() function allows you to compile and instantiate WebAssembly code.
The WebAssembly.instantiateStreaming() function compiles and instantiates a WebAssembly module directly from a streamed underlying source. This is the most efficient, optimized way to load wasm code.
The WebAssembly.validate() function validates a given typed array of WebAssembly binary code, returning whether the bytes form a valid wasm module (true) or not (false).
Interfaces
The GlobalDescriptor describes the options you can pass to new WebAssembly.Global().
The MemoryDescriptor describes the options you can pass to new WebAssembly.Memory().
A ModuleExportDescriptor is the description of a declared export in a WebAssembly.Module.
A ModuleImportDescriptor is the description of a declared import in a WebAssembly.Module.
The TableDescriptor describes the options you can pass to new WebAssembly.Table().
The value returned from WebAssembly.instantiate.
Type Aliases
The set of values exported by a WebAssembly module instance, keyed by export name.
A value that can be exported from a WebAssembly module instance.
The kind of entity referenced by a module import or export descriptor.
The import object supplied when instantiating a WebAssembly module, grouping imported values by module name.
A value that can be supplied to a WebAssembly module as an import.
The set of values imported from a single module, keyed by import name.
The type of value stored in a WebAssembly.Table.
The data type of a WebAssembly value, used to describe globals.
type alias WebAssembly.Exports
The set of values exported by a WebAssembly module instance, keyed by export name.
Definition
Record<string, ExportValue> type alias WebAssembly.ExportValue
type alias WebAssembly.ImportExportKind
The kind of entity referenced by a module import or export descriptor.
Definition
"function"
| "global"
| "memory"
| "table"
type alias WebAssembly.Imports
The import object supplied when instantiating a WebAssembly module, grouping imported values by module name.
Definition
Record<string, ModuleImports> type alias WebAssembly.ImportValue
A value that can be supplied to a WebAssembly module as an import.
Definition
ExportValue | number type alias WebAssembly.ModuleImports
The set of values imported from a single module, keyed by import name.
Definition
Record<string, ImportValue> type alias WebAssembly.TableKind
The type of value stored in a WebAssembly.Table.
Definition
"anyfunc" type alias WebAssembly.ValueType
The data type of a WebAssembly value, used to describe globals.
Definition
"f32"
| "f64"
| "i32"
| "i64"
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/wasm