Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

「$」「.」の動作ロジックの変更 #1863

Merged
merged 1 commit into from
Dec 14, 2024

Conversation

weyk
Copy link
Contributor

@weyk weyk commented Dec 13, 2024

「$」「.」の仕組みの変更です。改善/修正というよりもメリット・デメリットのある変更案です。
従来
・対象の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が""とかも含めて常にそのまま全て出力するのでテストに失敗する。

@kujirahand kujirahand merged commit 006e476 into kujirahand:master Dec 14, 2024
3 checks passed
@kujirahand
Copy link
Owner

@weyk さん、ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants