2021-07-22 (木)
https://github.com/binzume/mqo-jsmacro-plugin でjsからウインドウ作れるようにしたのだけど,quickjsでイベントリスナをちゃんとGCできるように扱うのとてもめんどいな.イベントリスナは何を参照してるかわからないので,JSValueとしてC++の実装で保持してしまうとガベージコレクタが辿れなくなるので,循環参照していた場合にリークする...
コールバック関数を適当なObjectのプロパティとして持つことにしたけど,V8でいうInternalField的なのがないので,参照時に毎回プロパティから検索されるのが微妙.
V8見てみると,WeakCallbackというそれぽいのあって便利そうに見える.
3Dプリンタ用のモデル作るときに使ってたスクリプトにUIを付けた.今まで,オブジェクト名に式を手入力してたけど64文字しか使えなくて無理があったのでmqxにデータを保存するように.
久しぶりにメタセコイア使ったけどアップデートしたら標準のブーリアン演算機能がまともな挙動をするようになった気がする.プラグインからは呼び出せないっぽいけど.