Contexto JavaScript

JavaScript Contexto

A camada de script fornece um contexto de avaliação JavaScript controlado para documentos que necessitam de um. É deliberadamente orientada por políticas: a resolução de módulos é explícita, e falhas são expostas como exceções tipadas.


O Contexto de Avaliação

JSContext hospeda a avaliação de scripts. Erros levantados durante a avaliação são expostos como JSEvaluationError, mantendo as falhas de script distintas dos erros do lado Python.

Carregamento de Módulo

A resolução de módulos é governada por ModuleRegistry, que mapeia especificadores de módulos para implementações. Módulos ausentes levantam ModuleNotFoundError (o erro tipado próprio da biblioteca) em vez de retornar silenciosamente stubs.

Políticas de Carregamento

ModuleLoadPolicy controla o que um contexto tem permissão para carregar — o mecanismo para isolar o comportamento de scripts no processamento lado-servidor onde o acesso arbitrário a módulos é indesejado.


Dicas e Melhores Práticas

  • Registre apenas os módulos que seu cenário de processamento necessita; um registro pequeno é o sandbox.
  • Capture JSEvaluationError separadamente das exceções genéricas para distinguir bugs de script de bugs de pipeline.
  • Trate ModuleNotFoundError como um sinal de política, não como uma condição fatal — frequentemente significa que a entrada espera um API de navegador que você optou por não fornecer.

Problemas Comuns

ProblemaCausaCorreção
ModuleNotFoundError na avaliaçãoMódulo não registradoAdicione-o a ModuleRegistry ou ajuste a política
Falha no script interrompe o pipelineJSEvaluationError não capturadoTrate-o na fronteira de avaliação
Acesso inesperado ao móduloPolítica muito permissivaRestrinja ModuleLoadPolicy

FAQ

A avaliação de script é necessária para a análise?

Não — parsing, CSSOM e layout funcionam sem nenhum contexto de script.

Como controlo o que os scripts podem importar?

Através de ModuleRegistry (o que existe) e ModuleLoadPolicy (o que pode carregar).

Como os erros de script surgem?

Como exceções JSEvaluationError no lado Python.


API Reference Resumo

Classe/MétodoDescrição
JSContextJavaScript contexto de avaliação
ModuleRegistryRegistro de especificadores de módulo
ModuleLoadPolicyControle de política de carregamento de módulo
JSEvaluationErrorFalha de avaliação de script tipada
ModuleNotFoundErrorFalha de módulo ausente tipada

Ver também

 Português