THPDFQuickJS.Eval
Модуль: HPDFQuickJS
Объявление
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
Поведение
Выполняет JavaScript в контексте движка и возвращает признак успеха, значение, текст ошибки и статус
Исходная перегрузка использует ограничения конструктора; дополнительная добавляет на каждое вычисление свои timeout и границы прерываний, сохраняя лимиты памяти, стека и размера скрипта
Нулевой timeout или лимит прерываний отключает соответствующую границу вычисления; вызывающий код с дедлайном транзакции передаёт оставшееся время вместо перезапуска полного timeout
XFA-сессия использует эту перегрузку, чтобы делить один бюджет времени между повтором и текущим выполнением
В Delphi результаты и диагностика используют строки Unicode; Free Pascal сохраняет мостовые байты UTF-8 и помечает управляемую строку как UTF-8, избегая конверсии через системную ANSI-кодовую страницу
Арифметика JavaScript следует поведению IEEE для NaN, Infinity, переполнения и потери значимости, даже если вызывающее приложение включает нативные ловушки плавающей точки
Движок временно маскирует исключения плавающей точки на время инициализации и вычисления, очищает выставленные им флаги и восстанавливает исходную маску исключений вызывающего потока перед возвратом или пробросом исключения; колбэки приложения, вызванные после приостановки запроса XFA, выполняются с восстановленной нативной маской
Связанные API
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent и Интерактивный runtime динамических XFA-виджетов