ruby.wasmでJavaScriptのオブジェクトをnewメソッドで初期化する - @ledsun blogでnew
メソッドを試作しました。
せっかくなので、ruby.wasm本体に組み込みたいです。
で、ためしていて気が付きました。
ruby.wasmのJS::Objectをハックしてみる - @ledsun blogでrubies
ディレクトリを消せばruby.wasmをリビルドして、JS::Object
への変更が反映されると書きました。
嘘です。
rake build:clean
しないとダメでした。
このリビルドすると僕のPCでは1400秒、20分強掛かります。
試しながら進むには不便です。
そこで考えました。
JS::Object
のテストコードは
https://github.com/ruby/ruby.wasm/blob/b2fa9289f89dd6a00c03ede9f47445ea01315ee9/packages/npm-packages/ruby-wasm-wasi/test/unit/test_object.rb
です。
このファイルの中に https://github.com/ruby/ruby.wasm/blob/f61c620567d8e37785fc5748fed52e6e65f960d5/ext/js/lib/js.rb#L91-L135 にあるJS::Object
の実装をコピーします。
コピーした実装をハックします。
新しい実装をテストするテストコードをtest_object.rb
に書きます。
rake npm:ruby-head-wasm-wasi:check
を実行すると、JS::Object
が再定義されテスコードが実行されハックがうまく出来ているか確認できます。
20秒ぐらいで終わります。
60倍速く開発できます。