|
|
# @webassemblyjs/ast
> AST utils for webassemblyjs
## Installation
```shyarn add @webassemblyjs/ast```
## Usage
### Traverse
```jsimport { traverse } from "@webassemblyjs/ast";
traverse(ast, { Module(path) { console.log(path.node); }});```
### Instruction signatures
```jsimport { signatures } from "@webassemblyjs/ast";
console.log(signatures);```
### Path methods
- `findParent: NodeLocator`- `replaceWith: Node => void`- `remove: () => void`- `insertBefore: Node => void`- `insertAfter: Node => void`- `stop: () => void`
### AST utils
- function `module(id, fields, metadata)`- function `moduleMetadata(sections, functionNames, localNames)`- function `moduleNameMetadata(value)`- function `functionNameMetadata(value, index)`- function `localNameMetadata(value, localIndex, functionIndex)`- function `binaryModule(id, blob)`- function `quoteModule(id, string)`- function `sectionMetadata(section, startOffset, size, vectorOfSize)`- function `loopInstruction(label, resulttype, instr)`- function `instruction(id, args, namedArgs)`- function `objectInstruction(id, object, args, namedArgs)`- function `ifInstruction(testLabel, test, result, consequent, alternate)`- function `stringLiteral(value)`- function `numberLiteralFromRaw(value, raw)`- function `longNumberLiteral(value, raw)`- function `floatLiteral(value, nan, inf, raw)`- function `elem(table, offset, funcs)`- function `indexInFuncSection(index)`- function `valtypeLiteral(name)`- function `typeInstruction(id, functype)`- function `start(index)`- function `globalType(valtype, mutability)`- function `leadingComment(value)`- function `blockComment(value)`- function `data(memoryIndex, offset, init)`- function `global(globalType, init, name)`- function `table(elementType, limits, name, elements)`- function `memory(limits, id)`- function `funcImportDescr(id, signature)`- function `moduleImport(module, name, descr)`- function `moduleExportDescr(exportType, id)`- function `moduleExport(name, descr)`- function `limit(min, max)`- function `signature(params, results)`- function `program(body)`- function `identifier(value, raw)`- function `blockInstruction(label, instr, result)`- function `callInstruction(index, instrArgs)`- function `callIndirectInstruction(signature, intrs)`- function `byteArray(values)`- function `func(name, signature, body, isExternal, metadata)`- Constant`isModule`- Constant`isModuleMetadata`- Constant`isModuleNameMetadata`- Constant`isFunctionNameMetadata`- Constant`isLocalNameMetadata`- Constant`isBinaryModule`- Constant`isQuoteModule`- Constant`isSectionMetadata`- Constant`isLoopInstruction`- Constant`isInstruction`- Constant`isObjectInstruction`- Constant`isIfInstruction`- Constant`isStringLiteral`- Constant`isNumberLiteral`- Constant`isLongNumberLiteral`- Constant`isFloatLiteral`- Constant`isElem`- Constant`isIndexInFuncSection`- Constant`isValtypeLiteral`- Constant`isTypeInstruction`- Constant`isStart`- Constant`isGlobalType`- Constant`isLeadingComment`- Constant`isBlockComment`- Constant`isData`- Constant`isGlobal`- Constant`isTable`- Constant`isMemory`- Constant`isFuncImportDescr`- Constant`isModuleImport`- Constant`isModuleExportDescr`- Constant`isModuleExport`- Constant`isLimit`- Constant`isSignature`- Constant`isProgram`- Constant`isIdentifier`- Constant`isBlockInstruction`- Constant`isCallInstruction`- Constant`isCallIndirectInstruction`- Constant`isByteArray`- Constant`isFunc`- Constant`assertModule`- Constant`assertModuleMetadata`- Constant`assertModuleNameMetadata`- Constant`assertFunctionNameMetadata`- Constant`assertLocalNameMetadata`- Constant`assertBinaryModule`- Constant`assertQuoteModule`- Constant`assertSectionMetadata`- Constant`assertLoopInstruction`- Constant`assertInstruction`- Constant`assertObjectInstruction`- Constant`assertIfInstruction`- Constant`assertStringLiteral`- Constant`assertNumberLiteral`- Constant`assertLongNumberLiteral`- Constant`assertFloatLiteral`- Constant`assertElem`- Constant`assertIndexInFuncSection`- Constant`assertValtypeLiteral`- Constant`assertTypeInstruction`- Constant`assertStart`- Constant`assertGlobalType`- Constant`assertLeadingComment`- Constant`assertBlockComment`- Constant`assertData`- Constant`assertGlobal`- Constant`assertTable`- Constant`assertMemory`- Constant`assertFuncImportDescr`- Constant`assertModuleImport`- Constant`assertModuleExportDescr`- Constant`assertModuleExport`- Constant`assertLimit`- Constant`assertSignature`- Constant`assertProgram`- Constant`assertIdentifier`- Constant`assertBlockInstruction`- Constant`assertCallInstruction`- Constant`assertCallIndirectInstruction`- Constant`assertByteArray`- Constant`assertFunc`
|