THPDFQuickJS.Eval

單元:HPDFQuickJS

宣告

function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
  MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;

行為

在引擎上下文中執行 JavaScript,回傳成功旗標、值、錯誤文字與狀態

原始 overload 使用建構時的上限;額外的 overload 提供每次求值專屬的逾時與中斷上限,同時保留記憶體、堆疊與 script 大小限制

逾時或中斷上限設為 0 會停用對應的求值限制;需要遵守交易期限的呼叫端應傳入剩餘時間,而不是重啟完整的逾時

XFA session 用這個 overload 在重播與目前執行之間共用同一份耗時預算

Delphi 的結果與診斷使用 Unicode 字串;Free Pascal 保留橋接的 UTF-8 位元組並把受管字串標記為 UTF-8,避免經過系統 ANSI 字碼頁轉換

即使呼叫端應用程式啟用了原生浮點數陷阱,JavaScript 算術對 NaN、Infinity、溢位與下溢仍遵循 IEEE 行為

引擎會在初始化與求值期間暫時遮罩浮點例外、清除引擎產生的旗標,並在回傳或傳播例外前還原呼叫執行緒原本的例外遮罩;XFA 請求暫停後呼叫的應用程式 callback 會以還原後的原生遮罩執行

相關 API

TXFAJavaScriptSession、HPDFXFAExecuteJavaScriptEvent 與 互動式動態 XFA Widget 執行環境