Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
「$」「.」の仕組みの変更です。改善/修正というよりもメリット・デメリットのある変更案です。
従来
・対象のobj毎に特定のメソッドをsetter/getterとして定義する。
・生成コードはメソッドの有無のチェックとある場合/ない場合のそれぞれおのコードが生成され単純アクセスより少し増える。
変更
・事前にクラス(コンストラクタ)に対してsetterとgetterを登録する。
・対象objにsetter/getterがある場合は従来と同じ動き。
・対象objにsetter/getterがundefinedの場合、登録したクラスのインスタンスならsetter/getterをobjに定義してそれに従う。
登録したクラスにない場合はsetter/getterにnullを設定して再チェックを抑止する。
・対象objのsetter/getterがnulの場合、登録したクラスのチェックを省略してメソッドがない場合の動作をする。
・生成コードは共通部分をNakoSystemに追い出したうえで更に増える。
・クラスのインスタンスチェックは登録した暮らすかどうかをループでチェックすることになるので登録数が増えると重くなる。
とりあえず、plugin_browserからはwindow.Elementに対して登録しています。
本題とは関係ないんですが、Windows(のcmd.exe)でtestが失敗するを修正してます。他環境での動作は不明。
※cmd.exeのechoが""とかも含めて常にそのまま全て出力するのでテストに失敗する。