Spaces:
Running
Running
# @webassemblyjs/ast | |
> AST utils for webassemblyjs | |
## Installation | |
```sh | |
yarn add @webassemblyjs/ast | |
``` | |
## Usage | |
### Traverse | |
```js | |
import { traverse } from "@webassemblyjs/ast"; | |
traverse(ast, { | |
Module(path) { | |
console.log(path.node); | |
} | |
}); | |
``` | |
### Instruction signatures | |
```js | |
import { 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` | |