2020-11-07 (土)
* QuickJS
良さげなので,V8使ってたやつを置き換えたりする.ただ,本格的に使おうとすると色々悩ましい箇所が多いな...
配列のように振る舞うオブジェクトが作りたいのだけど,組み込みのArrayは専用の実装が入ってるのか.V8でいう SetIndexedPropertyHandler をしたいときは,クラスをexoticにしてプロパティへのアクセスを横取りするしかなさそう.
ただ,JSAtomから直接インデックスに変換する手段は外部に公開されてないので,JS_AtomToValue() して JS_ToIndex() しろってことなんだろうか.一旦内部でstringを経由してたりしてパフォーマンス悪くなりそう.ついでにgetter,setterを返すと呼び出してくれるのだけど,getter,setterにはアクセスしようとしているプロパティは渡されないので不便.
あと, class_id が JSRuntime 単位ではなくてグローバルなので同じプロセスで色々実行してると class_array が大きくなる一方に見える(?)