THPDFQuickJS.Eval

Unit: HPDFQuickJS

Declaration

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

Behavior

Wykonuje JavaScript w kontekście silnika i zwraca sukces, wartość, tekst błędu i status

Oryginalne przeciążenie używa limitów konstruktora; dodatkowe przeciążenie dostarcza per-evaluation timeout i granice przerwań przy zachowaniu limitów pamięci, stosu i rozmiaru skryptu

Zerowy timeout albo limit przerwań wyłącza odpowiadającą granicę ewaluacji; wywołujący wymuszający deadline transakcji przekazują pozostały czas zamiast restartować pełny timeout

Sesja XFA używa tego przeciążenia, by dzielić jeden budżet upływu czasu między replay a bieżącym wykonaniem

Wyniki Delphi i diagnostyka używają ciągów Unicode; Free Pascal zachowuje bajty UTF-8 mostu i oznacza zarządzany ciąg jako UTF-8, unikając konwersji przez systemową stronę kodową ANSI

Arytmetyka JavaScript podąża za zachowaniem IEEE dla NaN, Infinity, przepełnienia i niedomiaru, nawet gdy aplikacja wywołująca włącza natywne pułapki zmiennoprzecinkowe

Silnik tymczasowo maskuje wyjątki zmiennoprzecinkowe podczas inicjalizacji i ewaluacji, czyści flagi wytworzone przez silnik i przywraca oryginalną maskę wyjątków wątku wywołującego przed powrotem albo propagacją wyjątku; callbacki aplikacji wywoływane po zawieszeniu żądania XFA działają z przywróconą natywną maską

Related APIs

TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent i Interactive Dynamic XFA Widget Runtime