THPDFQuickJS.Eval
Unité : HPDFQuickJS
Déclaration
function Eval(const Script: string): THPDFQuickJSResult; overload;
function Eval(const Script: string; TimeoutMs: Cardinal;
MaxInterruptChecks: NativeUInt): THPDFQuickJSResult; overload;
Comportement
Exécute du JavaScript dans le contexte du moteur et renvoie le succès, la valeur, le texte d'erreur et le statut
La surcharge d'origine utilise les limites du constructeur ; la surcharge additionnelle fournit des bornes de timeout et d'interruption par évaluation tout en conservant les limites de mémoire, de pile et de taille de script
Un timeout ou une limite d'interruption à zéro désactive la borne d'évaluation correspondante ; les appelants qui appliquent une échéance de transaction passent le temps restant au lieu de redémarrer un timeout complet
La session XFA utilise cette surcharge pour partager un seul budget de temps écoulé entre le replay et l'exécution courante
Les résultats et diagnostics Delphi utilisent des chaînes Unicode ; Free Pascal conserve les octets UTF-8 du pont et marque la chaîne managée comme UTF-8, ce qui évite la conversion via la page de codes ANSI du système
L'arithmétique JavaScript suit le comportement IEEE pour NaN, Infinity, l'overflow et l'underflow, même quand l'application appelante active les traps natifs en virgule flottante
Le moteur masque temporairement les exceptions en virgule flottante pendant l'initialisation et l'évaluation, nettoie les indicateurs produits par le moteur et restaure le masque d'exceptions d'origine du thread appelant avant de renvoyer un résultat ou de propager une exception ; les callbacks d'application invoqués après la suspension d'une requête XFA s'exécutent avec le masque natif restauré
API associées
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent et Runtime interactif de widgets XFA dynamiques