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