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