TXFAJavaScriptSession
Unit: HPDFXFAEventScript
Declaração
TXFAJavaScriptSession= class
Comportamento
É dono de um engine QuickJS independente e de um journal delimitado de avaliações virtuais commitadas
Preserva variáveis lexiais de objetos de script, funções, valores de objetos e closures aninhadas entre eventos; o rollback reconstrói o engine reproduzindo as avaliações commitadas
Registra entradas de Date e Math.random para replay reproduzível; o replay executa apenas operações virtuais de formulário e não publica mutações de documento
O código de suporte a eventos é compilado uma vez para cada engine próprio; cada avaliação fornece um contexto fresco de formulário e dados, corpo de script, limites e vetores de resposta registrados
O rollback reinstala esse código de suporte e reproduz as avaliações dinâmicas commitadas, preservando o estado lexical e de closures independente, sem reparsear a biblioteca de suporte para cada entrada do journal
A fonte de suporte compartilhada é cobrada uma vez contra o limite de bytes do journal, junto com as avaliações dinâmicas commitadas e os resultados retornados; rebuild e replay permanecem dentro dos limites existentes de tempo decorrido e do engine
Os limites default do journal são 64 MiB para scripts mais resultados retornados e 8192 avaliações, incluindo identity bindings; os limites de memória, stack, operações, interrupções e tempo decorrido do engine também se aplicam
TXFAWidgetRuntime é dono de uma sessão automaticamente ao usar o engine geral embarcado; o estado da sessão não é serializado no XDP e um runtime novo começa do zero
A classe é single-threaded e não deve ser compartilhada por chamadores concorrentes
APIs relacionadas
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent e Runtime interativo de widgets XFA dinâmicos