A WebAssembly binary parser in WebAssembly. Super small, super fast, with TypeScript support.
-
parse(binary:
Uint8Array
, options?:ParseOptions
):void
Parses the contents of a WebAssembly binary according to the specified options. -
ParseOptions
Options specified to the parser. TheonSection
callback determines the sections being evaluated in detail.-
onSection?(id:
SectionId
, payloadOff:number
, payloadLen:number
, nameOff:number
, nameLen:number
):boolean
Called with each section in the binary. Returningtrue
evaluates the section. -
onType?(index:
number
, form:number
):void
Called with each function type if the type section is evaluated. -
onTypeParam?(index:
number
, paramIndex:number
, paramType:Type
):void
Called with each function parameter if the type section is evaluated. -
onTypeReturn?(index:
number
, returnIndex:number
, returnType:Type
):void
Called with each function return type if the type section is evaluated. -
onImport?(index:
number
, kind:ExternalKind
, moduleOff:number
, moduleLen:number
, fieldOff:number
, fieldLen:number
):void
Called with each import if the import section is evaluated. -
onFunctionImport?(index:
number
, type:number
):void
Called with each function import if the import section is evaluated. -
onTableImport?(index:
number
, type:Type
, initial:number
, maximum:number
, flags:number
):void
Called with each table import if the import section is evaluated. -
onMemoryImport?(index:
number
, initial:number
, maximum:number
, flags:number
):void
Called with each memory import if the import section is evaluated. -
onGlobalImport?(index:
number
, type:Type
, mutability:number
):void
Called with each global import if the import section is evaluated. -
onMemory?(index:
number
, initial:number
, maximum:number
, flags:number
):void
Called with each memory if the memory section is evaluated. -
onFunction?(index:
number
, typeIndex:number
):void
Called with each function if the function section is evaluated. -
onGlobal?(index:
number
, type:Type
, mutability:number
):void
Called with each global if the global section is evaluated. -
onStart?(index:
number
):void
Called with the start function index if the start section is evaluated. -
onExport?(index:
number
, kind:ExternalKind
, kindIndex:number
, nameOff:number
, nameLen:number
):void
Called with each export if the export section is evaluated. -
onSourceMappingURL?(offset:
number
, length:number
):void
Called with the source map URL if the 'sourceMappingURL' section is evaluated. -
onModuleName?(offset:
number
, length:number
):void
Called with the module name if present and the 'name' section is evaluated. -
onFunctionName?(index:
number
, offset:number
, length:number
):void
Called with each function name if present and the 'name' section is evaluated. -
onLocalName?(funcIndex:
number
, index:number
, offset:number
, length:number
):void
Called with each local name if present and the 'name' section is evaluated.
-
-
Type
A value or element type, depending on context.Name Value i32 0x7f i64 0x7e f32 0x7d f64 0x7c anyfunc 0x70 func 0x60 none 0x40 -
SectionId
Numerical id of the current section.Name Value Custom 0 Type 1 Import 2 Function 3 Table 4 Memory 5 Global 6 Export 7 Start 8 Element 9 Code 10 Data 11 -
ExternalKind
Kind of an export or import.Name Value Function 0 Table 1 Memory 2 Global 3