167 lines
4.1 KiB
JavaScript
167 lines
4.1 KiB
JavaScript
issue_1191: {
|
|
options = {
|
|
evaluate : true,
|
|
booleans : true,
|
|
comparisons : true,
|
|
dead_code : true,
|
|
conditionals : true,
|
|
side_effects : true,
|
|
unused : true,
|
|
hoist_funs : true,
|
|
if_return : true,
|
|
join_vars : true,
|
|
sequences : false,
|
|
collapse_vars : false,
|
|
reduce_vars : true,
|
|
}
|
|
input: {
|
|
function foo(rot) {
|
|
const rotTol = 5;
|
|
if (rot < -rotTol || rot > rotTol)
|
|
bar();
|
|
baz();
|
|
}
|
|
}
|
|
expect: {
|
|
function foo(rot) {
|
|
(rot < -5 || rot > 5) && bar();
|
|
baz();
|
|
}
|
|
}
|
|
}
|
|
|
|
issue_1194: {
|
|
options = {
|
|
evaluate : true,
|
|
booleans : true,
|
|
comparisons : true,
|
|
dead_code : true,
|
|
conditionals : true,
|
|
side_effects : true,
|
|
unused : true,
|
|
hoist_funs : true,
|
|
if_return : true,
|
|
join_vars : true,
|
|
sequences : false,
|
|
collapse_vars : false,
|
|
reduce_vars : true,
|
|
}
|
|
input: {
|
|
function f1() {const a = "X"; return a + a;}
|
|
function f2() {const aa = "X"; return aa + aa;}
|
|
function f3() {const aaa = "X"; return aaa + aaa;}
|
|
}
|
|
expect: {
|
|
function f1(){return"XX"}
|
|
function f2(){return"XX"}
|
|
function f3(){return"XX"}
|
|
}
|
|
}
|
|
|
|
issue_1396: {
|
|
options = {
|
|
evaluate : true,
|
|
booleans : true,
|
|
comparisons : true,
|
|
dead_code : true,
|
|
conditionals : true,
|
|
side_effects : true,
|
|
unused : true,
|
|
hoist_funs : true,
|
|
if_return : true,
|
|
join_vars : true,
|
|
sequences : false,
|
|
collapse_vars : false,
|
|
reduce_vars : true,
|
|
}
|
|
input: {
|
|
function foo(a) {
|
|
const VALUE = 1;
|
|
console.log(2 | VALUE);
|
|
console.log(VALUE + 1);
|
|
console.log(VALUE);
|
|
console.log(a & VALUE);
|
|
}
|
|
function bar() {
|
|
const s = "01234567890123456789";
|
|
console.log(s + s + s + s + s);
|
|
|
|
const CONSTANT = "abc";
|
|
console.log(CONSTANT + CONSTANT + CONSTANT + CONSTANT + CONSTANT);
|
|
}
|
|
}
|
|
expect: {
|
|
function foo(a) {
|
|
console.log(3);
|
|
console.log(2);
|
|
console.log(1);
|
|
console.log(1 & a);
|
|
}
|
|
function bar() {
|
|
const s = "01234567890123456789";
|
|
console.log(s + s + s + s + s);
|
|
|
|
console.log("abcabcabcabcabc");
|
|
}
|
|
}
|
|
}
|
|
|
|
unused_regexp_literal: {
|
|
options = {
|
|
evaluate : true,
|
|
booleans : true,
|
|
comparisons : true,
|
|
dead_code : true,
|
|
conditionals : true,
|
|
side_effects : true,
|
|
unused : true,
|
|
hoist_funs : true,
|
|
if_return : true,
|
|
join_vars : true,
|
|
sequences : false,
|
|
collapse_vars : false,
|
|
}
|
|
input: {
|
|
function f(){ var a = /b/; }
|
|
}
|
|
expect: {
|
|
function f(){}
|
|
}
|
|
}
|
|
|
|
regexp_literal_not_const: {
|
|
options = {
|
|
evaluate : true,
|
|
booleans : true,
|
|
comparisons : true,
|
|
dead_code : true,
|
|
conditionals : true,
|
|
side_effects : true,
|
|
unused : true,
|
|
hoist_funs : true,
|
|
if_return : true,
|
|
join_vars : true,
|
|
sequences : false,
|
|
collapse_vars : false,
|
|
reduce_vars : true,
|
|
}
|
|
input: {
|
|
(function(){
|
|
var result;
|
|
const s = 'acdabcdeabbb';
|
|
const REGEXP_LITERAL = /ab*/g;
|
|
while (result = REGEXP_LITERAL.exec(s)) {
|
|
console.log(result[0]);
|
|
}
|
|
})();
|
|
}
|
|
expect: {
|
|
(function() {
|
|
var result;
|
|
const REGEXP_LITERAL = /ab*/g;
|
|
while (result = REGEXP_LITERAL.exec("acdabcdeabbb")) console.log(result[0]);
|
|
})();
|
|
}
|
|
expect_stdout: true
|
|
}
|