TXFAJavaScriptSession
ユニット: HPDFXFAEventScript
宣言
TXFAJavaScriptSession= class
動作
独立した QuickJS エンジンと、コミット済み仮想評価の上限付きジャーナルを所有します
スクリプトオブジェクトのレキシカル変数・関数・オブジェクト値・ネストしたクロージャをイベントをまたいで保持します。ロールバックはコミット済み評価のリプレイでエンジンを再構築します
再現可能なリプレイのために Date と Math.random の入力を記録します。リプレイは仮想フォーム操作だけを実行し、ドキュメント変更は公開しません
イベントサポートコードは所有する各エンジンで 1 回コンパイルされます。各評価は新しいフォームとデータコンテキスト、スクリプト本体、上限、記録済みレスポンスベクトルを供給します
ロールバックはそのサポートコードを再インストールし、コミット済みの動的評価をリプレイします。ジャーナルエントリごとにサポートライブラリを再パースすることなく、独立したレキシカル状態とクロージャ状態を保持します
共有サポートソースは、コミット済み動的評価や返された結果と合わせて、ジャーナルバイト上限に対して 1 回だけ計上されます。再構築とリプレイも既存の経過時間上限とエンジン上限の内側に収まります
デフォルトのジャーナル上限は、スクリプトと返された結果合わせて 64 MiB、アイデンティティバインディングを含む評価 8192 回です。エンジンのメモリ・スタック・操作・割り込み・経過時間の各上限も適用されます
同梱の汎用エンジンを使う場合、TXFAWidgetRuntime は自動的に 1 つのセッションを所有します。セッション状態は XDP に直列化されず、新しいランタイムはまっさらな状態で始まります
このクラスはシングルスレッド用で、並行する呼び出し元で共有してはなりません
関連 API
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent および インタラクティブ動的 XFA ウィジェットランタイム