THPDFQuickJS.Eval
ユニット: HPDFQuickJS
宣言
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
動作
エンジンコンテキストで JavaScript を実行し、成功・値・エラーテキスト・ステータスを返します
元のオーバーロードはコンストラクタの上限を使います。追加のオーバーロードは評価ごとのタイムアウトと割り込み上限を供給しつつ、メモリ・スタック・スクリプトサイズの上限は保持します
タイムアウトまたは割り込み上限の 0 は、対応する評価上限を無効化します。トランザクションデッドラインを強制する呼び出し元は、完全なタイムアウトをやり直す代わりに残り時間を渡します
XFA セッションはこのオーバーロードを使い、リプレイと現在の実行で 1 つの経過時間バジェットを共有します
Delphi の結果と診断は Unicode 文字列を使います。Free Pascal はブリッジの UTF-8 バイトを保持し、管理文字列に UTF-8 タグを付けることで、システム ANSI コードページ経由の変換を避けます
呼び出し元アプリケーションがネイティブ浮動小数点トラップを有効にしていても、JavaScript の算術は NaN・Infinity・オーバーフロー・アンダーフローで IEEE の動作に従います
エンジンは初期化と評価の間、浮動小数点例外を一時的にマスクし、エンジンが発生させたフラグをクリアして、例外を返すか伝播する前に呼び出しスレッドの元の例外マスクを復元します。XFA リクエスト中断後に呼ばれるアプリケーションコールバックは、復元されたネイティブマスクで実行されます
関連 API
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent および インタラクティブ動的 XFA ウィジェットランタイム