タイトル | : スクリプトモジュール間での挙動の違いについて |
記事No | : 4551 |
投稿日 | : 2024/07/02(Tue) 21:13 |
投稿者 | : tm |
いくつかPPx.StayModeの挙動の違いがあるので報告します。
1. qjsではPPx.StayMode以降に書かれたPPx.linemessage()が 実行されない
//!*script PPx.linemessage(1); PPx.Echo(2); PPx.StayMode = 2; PPx.linemessage(3); PPx.Echo(4);
実行結果: (wsh,cv8) linemessage "1" Echo "2" linemessage "3" Echo "4" (qjs) linemessage "1" Echo "2" Echo "4"
2. qjsでは初回実行時にppx_resume()を実行したときにマクロの 結果を得られない
//!*script PPx.StayMode = 2; function ppx_resume() { PPx.Echo(PPx.Extract('%n')); } ppx_resume();
実行結果: (wsh,cv8) 初回: Echo "<ppcid>" 二回目以降: Echo "<ppcid>" (qjs) 初回: Echo "" 二回目以降: Echo "<ppcid>"
3. qjsでは*script :<関数式>,<scriptname>を実行したときに エラーがでる
//!*script PPx.StayMode = 2; var a = function() { PPx.StayMode = 0; } var b = function b() { PPx.StayMode = 0; } function c() { PPx.StayMode = 0; }
wsh,cv8では関数式、関数宣言のどちらでも動作します。 qjsはcのみエラーがでません。a,bはエラーがでますが、 実行自体はされているような気がします。
あともう一点、PPx.report()の結果に差異があります。
//!*script PPx.report(1,2); a PPx.report([1,2]); b
(wsh) a: エラー b: 1,2 (qjs) a: 1,2 b: 1,2 (cv8) a: エラー b: Microsoft.ClearScript.V8.V8ScriptItem+V8Array
|