Software Message Board
記事リスト新着記事ワード検索過去ログ管理用

タイトル スクリプトモジュール間での挙動の違いについて
投稿日: 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


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)