|
中身みてると、もしかすると、秀丸担当さんが、他の hidemaruGlobal系関数と同じ
ように、
「public層では引数の数は明示しない」ようにしつつ、「nativeを呼び出す時には、
引数を個々に展開してnative関数に渡す」、ということをJScript/WebView共通にす
るために eval して 引数と展開しているのかな?? という気がしました。
とすると、普通に ****.apply(null, arguments)で渡していけばいいのではないでし
ょうか...
js{
debuginfo(2)
function iskeydown() { // hg.iskeydownの段階では引数を明示しない(他の関数
と同じポリシー)
console.log(arguments);
var r = _iskeydown.apply(null, arguments); // WebView2/V8では...arguments
などと ... で展開出来るが、JScript側でできないので、applyに流すことで実現す
る。
return r;
}
function _iskeydown(a, b, c) { // privateにして、ここでネイティブ用の加工する
console.log(a + typeof(a));
console.log(b + typeof(b));
console.log(c + typeof(c));
// ここで__native__を呼び出す形式にするとか
var r = 10; // __hm__native._nf("iskeydown", a, b, c); ... でも ___hide
maruNative___._iskeydown(a,b,c)でも
return r;
}
var ret = iskeydown(1,"2",3);
console.log(ret);
}
1つ1つ用意するのではなく、1番目の引数に関数シンボル受け付ける形にして、na
tive内でシンボル見て振り分ける形にしても良いかもしれませんが
今は多くは 「関数番号」をeval経由でネイティブに渡して内部で振り分けているっ
ぽいなぁ、と思いましたが。
|
|