THPDFQuickJS.Eval
Unidad: 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
La sobrecarga original usa los límites del constructor; la sobrecarga adicional suministra límites de timeout e interrupción por evaluación mientras conserva los límites de memoria, stack y tamaño de script
Un timeout o límite de interrupción de cero desactiva 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 esta sobrecarga para compartir un único presupuesto de tiempo transcurrido entre el replay y la ejecución actual
Los resultados y diagnósticos de Delphi usan strings Unicode; Free Pascal conserva los bytes UTF-8 del puente y marca el string gestionado como UTF-8, evitando la conversión a través de la code page 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 coma flotante
El motor enmascara temporalmente las excepciones de coma flotante durante la inicialización y la evaluación, limpia los flags producidos 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 la suspensión de una petición XFA se ejecutan con la máscara nativa restaurada
APIs relacionadas
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent y Runtime interactivo de widgets XFA dinámicos