THPDFQuickJS.Eval
Unit: HPDFQuickJS
Declaration
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
Behavior
Voert JavaScript uit in de engine-context en geeft succes, waarde, fouttekst en status terug
De originele overload gebruikt de constructor-limieten; de extra overload levert per-evaluatie timeout- en interrupt-grenzen aan terwijl memory-, stack- en scriptgrootte-limieten behouden blijven
Een timeout of interruptlimiet van nul schakelt de bijbehorende evaluatiegrens uit; aanroepers die een transactiedeadline handhaven, geven de resterende tijd door in plaats van een volledige timeout te herstarten
De XFA-session gebruikt deze overload om één verstreken budget te delen over replay en huidige executie
Delphi-resultaten en -diagnostiek gebruiken Unicode-strings; Free Pascal behoudt de bridge UTF-8-bytes en merkt de managed string als UTF-8, wat conversie via de systeem-ANSI-codepagina vermijdt
JavaScript-arithmetic volgt IEEE-gedrag voor NaN, Infinity, overflow en underflow zelfs wanneer de aanroepende applicatie native floating-point-traps aanzet
De engine maskeert tijdelijk floating-point-exceptions tijdens initialisatie en evaluatie, wist door de engine geproduceerde vlaggen en herstelt het originele exception-mask van de aanroepende thread vóór het teruggeven of propageren van een exception; applicatie-callbacks die na XFA-request-suspensie worden aangeroepen, draaien met het herstelde native masker
Related APIs
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent en Interactive Dynamic XFA Widget Runtime