Tiny Online Tools logoTiny Online ToolssearchBuscar ferramentas…grid_viewTodas as ferramentas
Iniciochevron_rightFerramentas de engenharia reversachevron_rightAnalisador de Código Morto JavaScriptAnalisador de Código Morto JavaScript

Analisador de Código Morto JavaScript

Cole um pacote JS e encontre funções de nível superior sem nenhuma referência estática no arquivo — uma análise heurística de alcançabilidade, não uma certeza.

scienceApenas heurística. Uma função marcada como "provavelmente sem uso" ainda pode ser chamada dinamicamente — via obj[nomeCalculado](), eval, new Function(...) ou Function.prototype.call/apply sobre uma referência escolhida em tempo de execução — de formas que esta varredura estática não consegue ver. Verifique manualmente antes de apagar qualquer coisa.Código-fonte JavaScript
Nomes de funções separados por vírgula a serem tratados como raízes alcançáveis mesmo que nenhuma referência a eles seja encontrada no resto do arquivo.

Ferramentas semelhantes

Ofuscador de JavaScript

Ofuscador de JavaScript

Renomeia variáveis locais, oculta strings e achata o fluxo de controle em JavaScript, tudo no seu navegador, sem enviar nada.

Inspetor de Bundle Webpack

Inspetor de Bundle Webpack

Detecta o bootstrap de runtime do webpack, o mapa de módulos e os metadados de chunk-push pela forma do AST, mostra o código real de cada módulo e avisa claramente quando um arquivo não é saída do webpack.

Gerador de código de incorporação 3D

Gerador de código de incorporação 3D

Gere código de incorporação pronto para colar de um modelo 3D em quatro variantes, grátis e inteiramente no seu navegador.

Visualizador de Entropia Binária

Visualizador de Entropia Binária

Plote a entropia de Shannon de qualquer arquivo com uma janela deslizante para identificar regiões comprimidas, criptografadas ou empacotadas, com os limites das seções sobrepostos.

Criptografar PDF

Criptografar PDF

Proteja PDF com senha usando criptografia padrão RC4-128. Restrinja impressão, cópia e modificação.

Conversor de canais de áudio

Conversor de canais de áudio

Conversor de canais de áudio ajuda você a misturar estéreo para mono ou isolar um canal diretamente no navegador. Use para ajustes rápidos e privados, publicações, aulas, demonstrações e edição diária.

Recortar PDF

Recortar PDF

Recorte páginas PDF e remova margens brancas automaticamente ou com controle manual das margens.

apps

Mais ferramentas

Explore nossa colecao completa de ferramentas online gratuitas.

O que esta ferramenta realmente verifica

Esta ferramenta analisa seu JavaScript com acorn e constrói um grafo de referências: cada função declarada no nível superior (ou const x = function(){} / const x = () => {} no nível superior) vira um nó, e cada lugar onde seu nome aparece como identificador vira uma aresta. Em seguida calcula quais dessas funções são alcançáveis a partir de um conjunto de raízes: código que roda incondicionalmente ao carregar o arquivo — instruções diretamente no nível superior, o corpo de uma função invocada imediatamente (IIFE), qualquer coisa atribuída a module.exports / exports.x / window.x / globalThis.x, e quaisquer nomes de ponto de entrada que você mesmo digitar. Tudo o que é alcançável a partir de uma raiz, transitivamente, é mantido; o que sobra é reportado.

Leia isto antes de confiar em um resultado

Uma função que esta ferramenta chama de "provavelmente sem uso" ainda pode estar sendo usada de verdade. A análise estática não consegue enxergar através de:

  • Despacho dinâmicoobj[nomeCalculado](), tabela[chave]() — o nome da propriedade só é conhecido em tempo de execução.
  • eval e new Function(...) — código construído a partir de uma string é invisível para uma varredura da AST.
  • Reflexãofn.call(...), fn.apply(...) sobre uma referência escolhida dinamicamente, ou Object.keys(obj).forEach(k => obj[k]()).

Cada resultado é apresentado como "nenhuma referência estática encontrada", nunca como um fato. Trate isso como uma pista que merece verificação manual, não como um veredito — especialmente antes de apagar qualquer coisa.

Como usar

Cole ou carregue o conteúdo de um arquivo .js no editor. Se você já souber o nome da função de entrada real do seu pacote (a que seu HTML chama, ou que um framework chama por você), digite-a no campo de pontos de entrada para que ela — e tudo que ela toca transitivamente — fique ancorada como alcançável mesmo que nada no arquivo a referencie pelo nome.

O resumo mostra o total de funções de nível superior, quantas são alcançáveis e quantas não têm referência estática. Cada achado lista o nome da função e sua linha. Uma lista separada e recolhida mostra todo o conjunto alcançável com um motivo curto para cada uma — um ponto de entrada, um export, uma chamada dentro de um IIFE, ou uma referência encontrada dentro de outra função alcançável.

Nada do que você colar sai do seu navegador.