binaryen.jsはbinaryen.jsのjs版。延々とビルドせずに使えるのが嬉しい。
binaryenの説明文に「 used from JavaScript. 」って書いてあるけど、その先はパスにwikiがあるので説明だけ。ググり続け、npmのリポジトリィを見つけた。
npm install binaryen
元ネタのリポジトリィは、github.com/
ちなみにそこをクローンすると6GB以上あるのでnpmで済ませる。
パッケージ本体はTypeScriptで書かれていて配布用のindex.jsは圧縮されほぼ解読不能。
npmのページのサンプルコードを入力して実行すると
Uncaught Error Error [ERR_REQUIRE_ASYNC_MODULE]: require() cannot be used on an ESM graph with top-level await. Use import() instead. To see where the top-level await comes from, use --experimental-print-required-tla.
どうやらnpmのページのサンプルは5年前の書き方らしい。 var binaryen = require("binaryen"); を元ネタのページのサンプルの様に import binaryen from "binaryen"; に直すと動き出したが、直ぐエラってしまうので、※5年の間に色々変わり過ぎ 全部元ネタのページのサンプルに差し替えると最後まで動いた。 ちなみにこの記事を書いている時点でのモジュールのupdateは4時間前。※出来たてホヤホヤ それにしても jsのアロー関数とか、 wasmのテキストがS式とか、 大昔に卒論で(デバッグのために)いっぱい書いたから違和感はないけど なんで大昔(半世紀くらい前)に流行ったフォーマットを使うんだろう? 謎(闇?)は深い。