wabt.js
wabt.js is a port of WABT to the Web, allowing you to manipulate WebAssembly modules using a JavaScript API.
Usage
$> npm install wabt
var wabt = require("wabt");
var wasm = ...;
var myModule = wabt.readWasm(wasm, { readDebugNames: true });
myModule.applyNames();
var wast = myModule.toText({ foldExprs: false, inlineExport: false });
console.log(wast);
The buildbot also publishes nightly versions once a day if there have been changes. The latest nightly can be installed through
$> npm install wabt@nightly
or you can use one of the previous versions instead if necessary.
API
-
parseWat(filename: string
, buffer: string | Uint8Array
): WasmModule
Parses a wst source to a module.
-
readWasm(buffer: Uint8Array
, options: ReadWasmOptions
): WasmModule
Reads a wasm binaryen to a module.
-
WasmModule
A class representing a WebAssembly module.
- validate():
void
Validates the module. Throws if not valid. - resolveNames():
void
Resolves names to indexes. - generateNames():
void
Generates textual names for function types, globals, labels etc. - applyNames():
void
Applies textual names. Throws on error. - toText(options:
ToTextOptions
): string
Converts the module to wat text format. - toBinary(options:
ToBinaryOptions
): ToBinaryResult
Converts the module to a wasm binary. - destroy():
void
Disposes the module and frees its resources.
-
ReadWasmOptions
Options modifying the behavior of readWasm
.
- readDebugNames:
boolean
Reads textual names from the name section.
-
ToTextOptions
Options modifying the behavior of WasmModule#toText
.
- foldExprs:
boolean
- inlineExport:
boolean
-
ToBinaryOptions
Options modifying the behavior of WasmModule#toBinary
.
- log:
boolean
- canonicalize_lebs:
boolean
- relocatable:
boolean
- write_debug_names:
boolean
-
ToBinaryResult
Result object of WasmModule#toBinary
.