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