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

Parenthesis removed, resulting in altered execution

Abierto
#26 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
103
Forks
37
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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
}

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Reproduce las dos expresiones de alerta mediante el plugin de Gulp usando las opciones indicadas y, después, compara el JavaScript original y el generado. Comprueba por qué la expresión entre paréntesis cambia su comportamiento y verifica la corrección confirmando que ambas alertas generadas conservan el resultado de ejecución previsto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
build-system
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.