javascript-obfuscator / javascript-obfuscator/gulp-javascript-obfuscator

Parenthesis removed, resulting in altered execution

Aberta
#26 2 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
JavaScript
Estrelas
103
Forks
37
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

var obj = {val:true}
alert( true  ||  **(**true &&  obj.value == true**)**)  //true
alert( true  ||  true &&  obj.value == true)  //false
 
 becomes
 
var obj = { 'val': !![] };
alert(!![] || !![] && obj['value'] == !![]); //false
alert(!![] || !![] && obj['value'] == !![]); //false

Tested in Adobe ESTK after running Gulp with the following options:
{
compact: false,
controlFlowFlattening: false, //KILLS JSX
deadCodeInjection: false, //KILLS JSX
disableConsoleOutput: false,
identifierNamesGenerator: 'mangled',
renameGlobals: false,
selfDefending: false,
sourceMap: false,
stringArray: false,
rotateStringArray: false,
stringArrayEncoding: false,
splitStrings: false,
transformObjectKeys: false,
unicodeEscapeSequence: false
}

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Reproduza as duas expressões de alerta por meio do plugin do Gulp usando as opções listadas e, em seguida, compare o JavaScript original com o gerado. Verifique por que a expressão entre parênteses muda seu comportamento e valide a correção confirmando que ambos os alertas gerados preservam o resultado de execução pretendido.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript
Domínio
build-system
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.