THPDFQuickJS.Eval
Unit: HPDFQuickJS
Declaração
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
Comportamento
Executa JavaScript no contexto do engine e retorna sucesso, valor, texto de erro e status
O overload original usa os limites do construtor; o overload adicional fornece timeout e limites de interrupção por avaliação, mantendo os limites de memória, stack e tamanho de script
Timeout zero ou limite de interrupção zero desabilitam o bound de avaliação correspondente; chamadores que aplicam um deadline de transação passam o tempo restante em vez de reiniciar um timeout completo
A sessão XFA usa este overload para compartilhar um único orçamento de tempo decorrido entre replay e execução atual
Resultados e diagnósticos Delphi usam strings Unicode; o Free Pascal preserva os bytes UTF-8 da ponte e marca a string gerenciada como UTF-8, evitando conversão pela code page ANSI do sistema
A aritmética JavaScript segue o comportamento IEEE para NaN, Infinity, overflow e underflow mesmo quando a aplicação chamadora habilita traps nativos de ponto flutuante
O engine mascara temporariamente as exceções de ponto flutuante durante inicialização e avaliação, limpa as flags produzidas pelo engine e restaura a máscara de exceções original da thread chamadora antes de retornar ou propagar uma exceção; callbacks da aplicação invocados após a suspensão de uma requisição XFA rodam com a máscara nativa restaurada
APIs relacionadas
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent e Runtime interativo de widgets XFA dinâmicos