THPDFQuickJS.Eval

Unit: HPDFQuickJS

Declaración

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

Comportamiento

Ejecuta JavaScript en el contexto del motor y devuelve éxito, valor, texto de error y estado

El overload original usa los límites del constructor; el overload adicional suministra límites de timeout e interrupción por evaluación, manteniendo los límites de memoria, stack y tamaño de script

Un timeout o límite de interrupción en cero deshabilita esa cota de evaluación correspondiente; los llamadores que imponen un deadline de transacción pasan el tiempo restante en lugar de reiniciar un timeout completo

La sesión XFA usa este overload para compartir un mismo presupuesto de tiempo transcurrido entre el replay y la ejecución actual

Los resultados y diagnósticos en Delphi usan strings Unicode; Free Pascal conserva los bytes UTF-8 del bridge y marca el string administrado como UTF-8, evitando la conversión por la página de códigos ANSI del sistema

La aritmética de JavaScript sigue el comportamiento IEEE para NaN, Infinity, overflow y underflow incluso cuando la aplicación llamadora habilita traps nativos de punto flotante

El motor enmascara temporalmente las excepciones de punto flotante durante la inicialización y la evaluación, limpia las banderas producidas por el motor y restaura la máscara de excepciones original del hilo llamador antes de devolver o propagar una excepción; los callbacks de la aplicación invocados tras suspender una petición XFA corren con la máscara nativa restaurada

APIs relacionadas

TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent y Runtime de widgets XFA dinámicos interactivo