THPDFQuickJS.Eval
Unit: HPDFQuickJS
Deklaration
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
Verhalten
Führt JavaScript im Engine-Kontext aus und liefert Erfolg, Wert, Fehlertext und Status
Die ursprüngliche Überladung nutzt die Konstruktor-Limits; die zusätzliche Überladung liefert Timeout- und Interrupt-Grenzen pro Auswertung und behält Speicher-, Stack- und Skriptgrößen-Limits bei
Ein Timeout oder Interrupt-Limit von null deaktiviert die jeweilige Auswertungsgrenze; Aufrufer mit einer Transaktions-Deadline übergeben die Restzeit, statt einen vollen Timeout neu zu starten
Die XFA-Session nutzt diese Überladung, um ein Zeitbudget zwischen Replay und aktueller Ausführung zu teilen
Delphi-Ergebnisse und Diagnosen verwenden Unicode-Strings; Free Pascal behält die UTF-8-Bytes der Bridge bei und markiert den Managed String als UTF-8, um die Konversion über die System-ANSI-Codepage zu vermeiden
JavaScript-Arithmetik folgt dem IEEE-Verhalten für NaN, Infinity, Overflow und Underflow, selbst wenn die aufrufende Anwendung native Fließkomma-Traps aktiviert
Die Engine maskiert Fließkomma-Exceptions während Initialisierung und Auswertung temporär, räumt von der Engine erzeugte Flags weg und stellt die ursprüngliche Exception-Maske des aufrufenden Threads wieder her, bevor sie zurückkehrt oder eine Exception weiterreicht; Anwendungscallbacks nach einer XFA-Request-Suspension laufen mit der wiederhergestellten nativen Maske
Verwandte APIs
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent und Interaktive dynamische XFA-Widget-Runtime