diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-11-01 20:49:36 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-11-01 20:49:36 +0800 |
| commit | e99f950f5018cfe737c0d1150e50d97c6e6a4823 (patch) | |
| tree | 16f329a1b22128ed67f3fcae15a9b0a030f2ccbf /node_modules/@webassemblyjs/wasm-edit/README.md | |
| parent | c5d8a744dd584749e0b920119b42e731e37e5f62 (diff) | |
update
Diffstat (limited to 'node_modules/@webassemblyjs/wasm-edit/README.md')
| -rw-r--r-- | node_modules/@webassemblyjs/wasm-edit/README.md | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/node_modules/@webassemblyjs/wasm-edit/README.md b/node_modules/@webassemblyjs/wasm-edit/README.md deleted file mode 100644 index f03462fb..00000000 --- a/node_modules/@webassemblyjs/wasm-edit/README.md +++ /dev/null @@ -1,86 +0,0 @@ -# @webassemblyjs/wasm-edit - -> Rewrite a WASM binary - -Replace in-place an AST node in the binary. - -## Installation - -```sh -yarn add @webassemblyjs/wasm-edit -``` - -## Usage - -Update: - -```js -import { edit } from "@webassemblyjs/wasm-edit"; - -const binary = [/*...*/]; - -const visitors = { - ModuleImport({ node }) { - node.module = "foo"; - node.name = "bar"; - } -}; - -const newBinary = edit(binary, visitors); -``` - -Replace: - -```js -import { edit } from "@webassemblyjs/wasm-edit"; - -const binary = [/*...*/]; - -const visitors = { - Instr(path) { - const newNode = t.callInstruction(t.indexLiteral(0)); - path.replaceWith(newNode); - } -}; - -const newBinary = edit(binary, visitors); -``` - -Remove: - -```js -import { edit } from "@webassemblyjs/wasm-edit"; - -const binary = [/*...*/]; - -const visitors = { - ModuleExport({ node }) { - path.remove() - } -}; - -const newBinary = edit(binary, visitors); -``` - -Insert: - -```js -import { add } from "@webassemblyjs/wasm-edit"; - -const binary = [/*...*/]; - -const newBinary = add(actualBinary, [ - t.moduleImport("env", "mem", t.memory(t.limit(1))) -]); -``` - -## Providing the AST - -Providing an AST allows you to handle the decoding yourself, here is the API: - -```js -addWithAST(Program, ArrayBuffer, Array<Node>): ArrayBuffer; -editWithAST(Program, ArrayBuffer, visitors): ArrayBuffer; -``` - -Note that the AST will be updated in-place. |
