| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- # @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`
 
 
  |