Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
src
test
.npmignore
ALGORITHMS.md
README.md
package.json

README.md

@webassemblyjs/dce

Eliminate unused functions in your WASM binary.

Features

  • Removes the export instruction
  • Replaces the func with an empty one (to preserve the index)

Example

(module
-   (func $func_1 (param i32) (param i32) (result i32)
-     (get_local 0)
-     (get_local 1)
-     (i32.add)
-   )
-   (export "add" (func $func_1))
+   (func)
)

FAQ

Why not use binaryen?

First you can see the JavaScript API is specified here https://github.com/WebAssembly/binaryen/wiki/binaryen.js-API.

I encounter some issues (like removing the func wasn't working) and added an additional parse of the WASM file.

Third party licenses

TODO

  • Support DCE for exported global, memory, table.
  • Remove elements only used by this function (other imports, data, etc).
  • Add CLI for node projects or libs