Adds a debug info file name to the module and returns its index.
Gets the name of the debug info file at the specified index.
Sets the debug location of the specified ExpressionRef within the specified FunctionRef.
Releases the resources held by the module once it isn’t needed anymore.
Returns the asm.js representation of the module.
Returns the module in binary format.
Returns the module in binary format with a given source map.
Returns the module in official stack-style text format.
Returns the module in Binaryen’s s-expression text format (not official stack-style text format).
Runs the module in the interpreter, calling the start function.
ReadonlywasmThis module’s WASM expression builder.
See ExpressionBuilder for its type signature.
N.B.: For convenience, developers may want to destructure the module to free wasm:
const mod = new Module();
const {wasm} = mod;
wasm.drop(wasm.i32.add(wasm.i32.const(3), wasm.i32.const(5)));
or to free its properties:
const {i32, drop} = mod.wasm;
drop(i32.add(i32.const(3), i32.const(5)));
Readonlyarray: {Readonlycopy: (Copies elements to a specified slice of an array from a given array.
Readonlyfill: (ref: number, index: number, value: number, size: number) => numberFills a specified slice of an array with the given value.
Readonlyget: (Gets an array entry with an unpacked type at an index.
Warning: .get() no longer takes the boolean isSigned argument, and assumes an unpacked type.
For packed types, use .get_s() for signed and .get_u() for unsigned.
Readonlyget_s: (ref: number, index: number, type: number) => numberGets an array entry with a signed packed type at an index.
Readonlyget_u: (ref: number, index: number, type: number) => numberGets an array entry with an unsigned packed type at an index.
Readonlyinit_data: (Copies elements to a specified slice of an array from a given data segment.
Readonlyinit_elem: (Copies elements to a specified slice of an array from a given element segment.
Readonlylen: (ref: number) => numberProduces the length of an array.
Readonlynew: (heapType: number, size: number, operand: number) => numberAllocates a new array and initializes it with the given operand (repeated).
Readonlynew_data: (heapType: number, name: string, offset: number, size: number) => numberAllocates a new array and initializes it from a data segment.
Readonlynew_default: (heapType: number, size: number) => numberAllocates a new array and initializes it with a default value (repeated).
Readonlynew_elem: (heapType: number, name: string, offset: number, size: number) => numberAllocates a new array and initializes it from an element segment.
Readonlynew_fixed: (heapType: number, operands: readonly number[]) => numberAllocates a new array with the given operands and a statically fixed size.
Readonlyset: (ref: number, index: number, value: number) => numberSets an array entry at an index.
Readonlyatomic: { fence: () => number }Readonlyblock: (Creates a (block).
Readonlybr: (label: string, condition?: number, value?: number) => numberCreates an unconditional branch (br) to a label.
Readonlybr_if: (label: string, condition: number, value?: number) => numberCreates a conditional branch (br_if) to a label.
Readonlybr_on_cast: (label: string, value: number, castType: number) => numberBranches if the reference operand is successfully downcast to the given type.
Readonlybr_on_cast_fail: (label: string, value: number, castType: number) => numberBranches if the reference operand fails to downcast to the given type.
Readonlybr_on_non_null: (label: string, value: number) => numberBranches if the reference operand is not null.
Readonlybr_on_null: (label: string, value: number) => numberBranches if the reference operand is null.
Readonlybr_table: (Creates a switch.
Readonlycall: (name: string, operands: readonly number[], resultsType: number) => numberCreates a call to a function. Note that we must specify the return type here as we may not have created the function being called yet.
Readonlycall_indirect: (Similar to call_ref, but indexes into a table to find the function to call.
Readonlycall_ref: (target: number, operands: readonly number[], resultsType: number) => numberSimilar to call, but takes a function reference operand instead of a name as the called value.
Readonlydata: { drop: (segment: string) => number }Readonlydrop: (segment: string) => numberPrevents further use of a passive data segment.
Readonlydrop: (value: number) => numberCreates a (drop) of a value.
Readonlyf32: {Readonlyabs: (value: number) => numberReadonlyadd: (left: number, right: number) => numberReadonlyceil: (value: number) => numberReadonlyconst: (value: number) => numberReturn a static constant f32.
Readonlyconst_bits: (value: number) => numberReadonlyconvert_i32_s: (value: number) => numberReadonlyconvert_i32_u: (value: number) => numberReadonlyconvert_i64_s: (value: number) => numberReadonlyconvert_i64_u: (value: number) => numberReadonlyconvert_s: { i32: (...args: any[]) => number; i64: (...args: any[]) => number }Readonlyi32: (...args: any[]) => numberReadonlyi64: (...args: any[]) => numberReadonlyconvert_u: { i32: (...args: any[]) => number; i64: (...args: any[]) => number }Readonlyi32: (...args: any[]) => numberReadonlyi64: (...args: any[]) => numberReadonlycopysign: (left: number, right: number) => numberReadonlydemote_f64: (value: number) => numberReadonlydiv: (left: number, right: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyfloor: (value: number) => numberReadonlyge: (left: number, right: number) => numberReadonlygt: (left: number, right: number) => numberReadonlyle: (left: number, right: number) => numberReadonlyload: (offset: number, align: number, ptr: number, name?: string) => numberReadonlylt: (left: number, right: number) => numberReadonlymax: (left: number, right: number) => numberReadonlymin: (left: number, right: number) => numberReadonlymul: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlynearest: (value: number) => numberReadonlyneg: (value: number) => numberReadonlyreinterpret_i32: (value: number) => numberReadonlysqrt: (value: number) => numberReadonlystore: (Readonlysub: (left: number, right: number) => numberReadonlytrunc: (value: number) => numberReadonlyf32x4: {Readonlyf64: {Readonlyabs: (value: number) => numberReadonlyadd: (left: number, right: number) => numberReadonlyceil: (value: number) => numberReadonlyconst: (value: number) => numberReturn a static constant f64.
Readonlyconst_bits: (value: number | bigint) => numberReadonlyconvert_i32_s: (value: number) => numberReadonlyconvert_i32_u: (value: number) => numberReadonlyconvert_i64_s: (value: number) => numberReadonlyconvert_i64_u: (value: number) => numberReadonlyconvert_s: { i32: (...args: any[]) => number; i64: (...args: any[]) => number }Readonlyi32: (...args: any[]) => numberReadonlyi64: (...args: any[]) => numberReadonlyconvert_u: { i32: (...args: any[]) => number; i64: (...args: any[]) => number }Readonlyi32: (...args: any[]) => numberReadonlyi64: (...args: any[]) => numberReadonlycopysign: (left: number, right: number) => numberReadonlydiv: (left: number, right: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyfloor: (value: number) => numberReadonlyge: (left: number, right: number) => numberReadonlygt: (left: number, right: number) => numberReadonlyle: (left: number, right: number) => numberReadonlyload: (offset: number, align: number, ptr: number, name?: string) => numberReadonlylt: (left: number, right: number) => numberReadonlymax: (left: number, right: number) => numberReadonlymin: (left: number, right: number) => numberReadonlymul: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlynearest: (value: number) => numberReadonlyneg: (value: number) => numberReadonlypromote_f32: (value: number) => numberReadonlyreinterpret_f64: (value: number) => numberReadonlysqrt: (value: number) => numberReadonlystore: (Readonlysub: (left: number, right: number) => numberReadonlytrunc: (value: number) => numberReadonlyf64x2: {Readonlyglobal: {Readonlyget: (name: string, typ: number) => numberCreates a (global.get) for the global with the specified name.
Note that we must specify the type here as we may not have created the global being accessed yet.
Readonlyset: (name: string, value: number) => numberCreates a (global.set) for the global with the specified name.
Readonlyi16x8: {Readonlyabs: (value: number) => numberReadonlyadd: (left: number, right: number) => numberReadonlyadd_sat_s: (left: number, right: number) => numberReadonlyadd_sat_u: (left: number, right: number) => numberReadonlyall_true: (value: number) => numberReadonlyavgr_u: (left: number, right: number) => numberReadonlybitmask: (value: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyextadd_pairwise_i8x16_s: (value: number) => numberReadonlyextadd_pairwise_i8x16_u: (value: number) => numberReadonlyextend_high_i8x16_s: (value: number) => numberReadonlyextend_high_i8x16_u: (value: number) => numberReadonlyextend_low_i8x16_s: (value: number) => numberReadonlyextend_low_i8x16_u: (value: number) => numberReadonlyextmul_high_i8x16_s: (left: number, right: number) => numberReadonlyextmul_high_i8x16_u: (left: number, right: number) => numberReadonlyextmul_low_i8x16_s: (left: number, right: number) => numberReadonlyextmul_low_i8x16_u: (left: number, right: number) => numberReadonlyextract_lane_s: (vec: number, index: number) => numberReadonlyextract_lane_u: (vec: number, index: number) => numberReadonlyge_s: (left: number, right: number) => numberReadonlyge_u: (left: number, right: number) => numberReadonlygt_s: (left: number, right: number) => numberReadonlygt_u: (left: number, right: number) => numberReadonlyle_s: (left: number, right: number) => numberReadonlyle_u: (left: number, right: number) => numberReadonlylt_s: (left: number, right: number) => numberReadonlylt_u: (left: number, right: number) => numberReadonlymax_s: (left: number, right: number) => numberReadonlymax_u: (left: number, right: number) => numberReadonlymin_s: (left: number, right: number) => numberReadonlymin_u: (left: number, right: number) => numberReadonlymul: (left: number, right: number) => numberReadonlynarrow_i32x4_s: (left: number, right: number) => numberReadonlynarrow_i32x4_u: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlyneg: (value: number) => numberReadonlyq15mulr_sat_s: (left: number, right: number) => numberReadonlyreplace_lane: (vec: number, index: number, value: number) => numberReadonlyshl: (vec: number, shift: number) => numberReadonlyshr_s: (vec: number, shift: number) => numberReadonlyshr_u: (vec: number, shift: number) => numberReadonlysplat: (value: number) => numberReadonlysub: (left: number, right: number) => numberReadonlysub_sat_s: (left: number, right: number) => numberReadonlysub_sat_u: (left: number, right: number) => numberReadonlyi31: { get_s: (value: number) => number; get_u: (value: number) => number }Readonlyget_s: (value: number) => numberConverts an unboxed scalar to type i32, signed.
Readonlyget_u: (value: number) => numberConverts an unboxed scalar to type i32, unsigned.
Readonlyi32: {Readonlyadd: (left: number, right: number) => numberReadonlyand: (left: number, right: number) => numberReadonly Experimentalatomic: {Readonlyclz: (value: number) => numberReadonlyconst: (value: number) => numberReturn a static constant i32.
Readonlyctz: (value: number) => numberReadonlydiv_s: (left: number, right: number) => numberReadonlydiv_u: (left: number, right: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyeqz: (value: number) => numberReadonlyextend16_s: (value: number) => numberReadonlyextend8_s: (value: number) => numberReadonlyge_s: (left: number, right: number) => numberReadonlyge_u: (left: number, right: number) => numberReadonlygt_s: (left: number, right: number) => numberReadonlygt_u: (left: number, right: number) => numberReadonlyle_s: (left: number, right: number) => numberReadonlyle_u: (left: number, right: number) => numberReadonlyload: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlylt_s: (left: number, right: number) => numberReadonlylt_u: (left: number, right: number) => numberReadonlymul: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlyor: (left: number, right: number) => numberReadonlypopcnt: (value: number) => numberReadonlyreinterpret_f32: (value: number) => numberReadonlyrem_s: (left: number, right: number) => numberReadonlyrem_u: (left: number, right: number) => numberReadonlyrotl: (left: number, right: number) => numberReadonlyrotr: (left: number, right: number) => numberReadonlyshl: (left: number, right: number) => numberReadonlyshr_s: (left: number, right: number) => numberReadonlyshr_u: (left: number, right: number) => numberReadonlystore: (Readonlystore16: (Readonlystore8: (Readonlysub: (left: number, right: number) => numberReadonlytrunc_f32_s: (value: number) => numberReadonlytrunc_f32_u: (value: number) => numberReadonlytrunc_f64_s: (value: number) => numberReadonlytrunc_f64_u: (value: number) => numberReadonlytrunc_s: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_s_sat: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_sat_f32_s: (value: number) => numberReadonlytrunc_sat_f32_u: (value: number) => numberReadonlytrunc_sat_f64_s: (value: number) => numberReadonlytrunc_sat_f64_u: (value: number) => numberReadonlytrunc_u: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_u_sat: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlywrap_i64: (value: number) => numberReadonlyxor: (left: number, right: number) => numberReadonlyi32x4: {Readonlyi64: {Readonlyadd: (left: number, right: number) => numberReadonlyadd128: (Readonlyand: (left: number, right: number) => numberReadonly Experimentalatomic: {Readonlyclz: (value: number) => numberReadonlyconst: (value: number | bigint) => numberReturn a static constant i64.
Readonlyctz: (value: number) => numberReadonlydiv_s: (left: number, right: number) => numberReadonlydiv_u: (left: number, right: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyeqz: (value: number) => numberReadonlyextend_i32_s: (value: number) => numberReadonlyextend_i32_u: (value: number) => numberReadonlyextend16_s: (value: number) => numberReadonlyextend32_s: (value: number) => numberReadonlyextend8_s: (value: number) => numberReadonlyge_s: (left: number, right: number) => numberReadonlyge_u: (left: number, right: number) => numberReadonlygt_s: (left: number, right: number) => numberReadonlygt_u: (left: number, right: number) => numberReadonlyle_s: (left: number, right: number) => numberReadonlyle_u: (left: number, right: number) => numberReadonlyload: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlylt_s: (left: number, right: number) => numberReadonlylt_u: (left: number, right: number) => numberReadonlymul: (left: number, right: number) => numberReadonlymul_wide_s: (left: number, right: number) => numberReadonlymul_wide_u: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlyor: (left: number, right: number) => numberReadonlypopcnt: (value: number) => numberReadonlyreinterpret_f64: (value: number) => numberReadonlyrem_s: (left: number, right: number) => numberReadonlyrem_u: (left: number, right: number) => numberReadonlyrotl: (left: number, right: number) => numberReadonlyrotr: (left: number, right: number) => numberReadonlyshl: (left: number, right: number) => numberReadonlyshr_s: (left: number, right: number) => numberReadonlyshr_u: (left: number, right: number) => numberReadonlystore: (Readonlystore16: (Readonlystore32: (Readonlystore8: (Readonlysub: (left: number, right: number) => numberReadonlysub128: (Readonlytrunc_f32_s: (value: number) => numberReadonlytrunc_f32_u: (value: number) => numberReadonlytrunc_f64_s: (value: number) => numberReadonlytrunc_f64_u: (value: number) => numberReadonlytrunc_s: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_s_sat: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_sat_f32_s: (value: number) => numberReadonlytrunc_sat_f32_u: (value: number) => numberReadonlytrunc_sat_f64_s: (value: number) => numberReadonlytrunc_sat_f64_u: (value: number) => numberReadonlytrunc_u: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlytrunc_u_sat: { f32: (...args: any[]) => number; f64: (...args: any[]) => number }Readonlyf32: (...args: any[]) => numberReadonlyf64: (...args: any[]) => numberReadonlyxor: (left: number, right: number) => numberReadonlyi64x2: {Readonlyi8x16: {Readonlyabs: (value: number) => numberReadonlyadd: (left: number, right: number) => numberReadonlyadd_sat_s: (left: number, right: number) => numberReadonlyadd_sat_u: (left: number, right: number) => numberReadonlyall_true: (value: number) => numberReadonlyavgr_u: (left: number, right: number) => numberReadonlybitmask: (value: number) => numberReadonlyeq: (left: number, right: number) => numberReadonlyextract_lane_s: (vec: number, index: number) => numberReadonlyextract_lane_u: (vec: number, index: number) => numberReadonlyge_s: (left: number, right: number) => numberReadonlyge_u: (left: number, right: number) => numberReadonlygt_s: (left: number, right: number) => numberReadonlygt_u: (left: number, right: number) => numberReadonlyle_s: (left: number, right: number) => numberReadonlyle_u: (left: number, right: number) => numberReadonlylt_s: (left: number, right: number) => numberReadonlylt_u: (left: number, right: number) => numberReadonlymax_s: (left: number, right: number) => numberReadonlymax_u: (left: number, right: number) => numberReadonlymin_s: (left: number, right: number) => numberReadonlymin_u: (left: number, right: number) => numberReadonlynarrow_i16x8_s: (left: number, right: number) => numberReadonlynarrow_i16x8_u: (left: number, right: number) => numberReadonlyne: (left: number, right: number) => numberReadonlyneg: (value: number) => numberReadonlypopcnt: (value: number) => numberReadonlyreplace_lane: (vec: number, index: number, value: number) => numberReadonlyshl: (vec: number, shift: number) => numberReadonlyshr_s: (vec: number, shift: number) => numberReadonlyshr_u: (vec: number, shift: number) => numberReadonlyshuffle: (left: number, right: number, mask: readonly number[]) => numberReadonlysplat: (value: number) => numberReadonlysub: (left: number, right: number) => numberReadonlysub_sat_s: (left: number, right: number) => numberReadonlysub_sat_u: (left: number, right: number) => numberReadonlyswizzle: (left: number, right: number) => numberReadonlyif: (ifTrue: number, ifFalse: number) => numberCreates an ‘if’ or ‘if/else’ combination.
Readonlylocal: {Readonlyget: (index: number, typ: number) => numberCreates a (local.get) for the local at the specified index.
Note that we must specify the type here as we may not have created the local being accessed yet.
Readonlyset: (index: number, value: number) => numberCreates a (local.set) for the local at the specified index.
Readonlytee: (index: number, value: number, typ: number) => numberCreates a (local.tee) for the local at the specified index.
Note that we must specify the type here as we may not have created the local being accessed yet.
Readonlyloop: (name: string, body: number) => numberCreates a (loop).
Readonlymemory: {Readonly Experimentalatomic: {Readonlycopy: (Copies data from a source memory region to a possibly overlapping destination region in another or the same memory. The first index denotes the destination.
Readonlyfill: (dest: number, value: number, size: number, name: string) => numberSets all values in a region of memory to a given byte.
Readonlygrow: (delta: number, name: string, memory64?: boolean) => numberGrows memory by a given delta and returns the previous size, or -1 if not enough space can be allocated.
Readonlyinit: (Copies data from a passive data segment into a memory.
Readonlysize: (name: string, memory64?: boolean) => numberReturns the current size of a memory.
Readonlynop: () => numberCreates a no-operation (nop) instruction.
Readonlyref: {Readonlyas_non_null: (value: number) => numberConverts a nullible reference to a non-null one, or traps.
Readonlycast: (value: number, castType: number) => numberTests the dynamic type of a reference, and performs a downcast or traps.
Readonlyeq: (left: number, right: number) => numberCompares two references.
Readonlyfunc: (name: string, type: number) => numberProduces a reference to a given function.
Readonlyi31: (value: number) => numberConverts type i32 to an unboxed scalar.
Readonlyis_null: (value: number) => numberChecks for null.
Readonlynull: (typ: number) => numberProduces a null reference.
Readonlytest: (value: number, castType: number) => numberTests the dynamic type of a reference, and returns boolean.
Readonlyreturn: (value: number) => numberUnconditional branch to the body of the current function.
Readonlyreturn_call: (name: string, operands: readonly number[], resultsType: number) => numberTail-call variant of call.
Readonlyreturn_call_indirect: (Tail-call variant of call_indirect.
Readonlyreturn_call_ref: (target: number, operands: readonly number[], resultsType: number) => numberTail-call variant of call_ref.
Readonlyselect: (ifTrue: number, ifFalse: number) => numberCreates a (select) of one of two values.
Readonlystruct: {Readonlyget: (Gets a struct entry with an unpacked type at an index.
Warning: .get() no longer takes the boolean isSigned argument, and assumes an unpacked type.
For packed types, use .get_s() for signed and .get_u() for unsigned.
Readonlyget_s: (index: number, ref: number, type: number) => numberGets a struct entry with a signed packed type at an index.
Readonlyget_u: (index: number, ref: number, type: number) => numberGets a struct entry with an unsigned packed type at an index.
Readonlynew: (operands: readonly number[], heapType: number) => numberAllocates a new struct and initializes it with the given operands.
Passing in an empty array for operands returns (struct.new_default).
Readonlynew_default: (heapType: number) => numberAllocate a new struct and initializes it with default values.
Readonlyset: (index: number, ref: number, value: number) => numberSets a struct entry at an index.
Readonlytable: {Readonlyget: (name: string, index: number, typ: number) => numberLoad an element in a table.
Readonlygrow: (name: string, value: number, delta: number) => numberGrows table by a given delta and returns the previous size, or -1 if not enough space can be allocated.
Readonlyset: (name: string, index: number, value: number) => numberStore an element in a table.
Readonlysize: (name: string) => numberReturns the current size of a table.
Readonlythrow: (tag: string, operands: readonly number[]) => numberRaise an exception.
Readonlythrow_ref: (target: string) => numberReraise an exception.
Readonlytry_table: (Installs an exception handler that handles exceptions as specified by its catch clauses.
Readonlytuple: {Readonlyextract: (tupl: number, index: number) => numberExtracts a value from a Binaryen virtual tuple.
Readonlymake: (elements: readonly number[]) => numberA Binaryen-specific operation that combines values into a virtual tuple. A virtual tuple is simply a set of locals treated together as one unit, not an actual object stored in the heap.
Readonlyunreachable: () => numberCreates an unreachable instruction that will always trap.
Readonlyv128: {Readonlyand: (left: number, right: number) => numberReadonlyandnot: (left: number, right: number) => numberReadonlyanytrue: (value: number) => numberReadonlybitselect: (left: number, right: number, cond: number) => numberReadonlyconst: (i8s: readonly number[]) => numberReturn a static constant v128.
Readonlyload: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16_lane: (Readonlyload16_splat: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16x4_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload16x4_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32_lane: (Readonlyload32_splat: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32_zero: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32x2_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload32x2_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload64_lane: (Readonlyload64_splat: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload64_zero: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8_lane: (Readonlyload8_splat: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8x8_s: (offset: number, align: number, ptr: number, name?: string) => numberReadonlyload8x8_u: (offset: number, align: number, ptr: number, name?: string) => numberReadonlynot: (value: number) => numberReadonlyor: (left: number, right: number) => numberReadonlystore: (Readonlystore16_lane: (Readonlystore32_lane: (Readonlystore64_lane: (Readonlystore8_lane: (Readonlyxor: (left: number, right: number) => numberCreates a deep copy of an expression.
Pseudo-instruction enabling Binaryen to reason about multiple values on the stack.
ReadonlydataGets the number of data segments within the module.
Gets a data segment by name.
Gets a data segment by index.
ReadonlyelementAdds an active element segment.
Adds a passive element segment.
Gets the number of element segments within the module.
Gets an element segment by name.
Gets an element segment by index.
Removes an element segment by name.
ReadonlyexportsAdds a function export.
Adds a global variable export. Exported globals must be immutable.
Adds a memory export. There’s just one memory for now, using name "0".
Adds a table export. There’s just one table for now, using name "0".
Adds a tag export.
Gets the number of exports witin the module.
Gets an export by name.
Gets an export by index.
Removes an export, by external name.
ReadonlyfunctionsAdds a function. varTypes indicate additional locals, in the given order.
Gets the number of functions within the module.
Gets a function by name.
Gets a function by index.
Removes a function by name.
ReadonlyglobalsAdds a global instance variable.
Gets the number of globals within the module.
Gets a global by name.
Gets a global by index.
Removes a global by name.
ReadonlyimportsAdds a function import.
Adds a global variable import. Imported globals must be immutable.
Adds a memory import. There’s just one memory for now, using name "0".
Adds a table import. There’s just one table for now, using name "0".
Adds a tag import.
ReadonlymemoriesReturns whether the module has a memory.
Sets the memory. There’s just one memory for now, using name "0". Providing exportName also creates a memory export.
OptionalinternalName: stringReadonlytablesAdds a table.
Optionalinit: numberGets the number of tables within the module.
Gets a table by name.
Gets a table by index.
Gets the number of table segments within the module.
Removes a table by name.
ReadonlytagsAdds a tag.
Gets a tag by name.
Removes a tag by name.
The start function.
Use this.elementSegments.addActive instead.
Adds a custom section to the binary.
Use this.functions.add instead.
Use this.exports.addFunction instead.
Use this.imports.addFunction instead.
Use this.globals.add instead.
Use this.exports.addGlobal instead.
Use this.imports.addGlobal instead.
Use this.exports.addMemory instead.
Use this.imports.addMemory instead.
Use this.elementSegments.addPassive instead.
Optionalinit: numberUse this.tables.add instead.
Use this.exports.addTable instead.
Use this.imports.addTable instead.
Use this.tags.add instead.
Use this.exports.addTag instead.
Use this.imports.addTag instead.
Use this.features instead.
Use this.dataSegments.count instead.
Use this.elementSegments.count instead.
Use this.exports.count instead.
Use this.functions.count instead.
Use this.globals.count instead.
Use this.tables.count instead.
Use this.start instead.
Use this.memories.has instead.
[description]
Optionalsegments: readonly any[]Optionalshared: booleanOptionalmemory64: booleanOptionalinternalName: stringUse this.memories.set instead.
[description]
Updates the internal name mapping logic in a module. This must be called after renaming module elements.
Optimizes the module using the default optimization passes.
Optimizes a single function using the default optimization passes.
Runs the specified passes on the module.
Runs the specified passes on a single function.
Validates the module. Returns true if valid, otherwise prints validation errors and returns false.
A WASM module.
Moduleitself is:new Module())Each instance of
Module:.emitText(),.validate(), etc.)..tags.add(),.globals.get(), etc):.wasm, a namespace for creating expressions in the module (.wasm.nop(),.wasm.i32.add(), etc.)