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