fix corner case in inline (#4660)

fixes #4659
This commit is contained in:
Alex Lam S.L
2021-02-18 08:15:44 +00:00
committed by GitHub
parent 6a2bda52f3
commit a7bcd4d613
3 changed files with 133 additions and 9 deletions

View File

@@ -5436,3 +5436,125 @@ issue_4655: {
}
expect_stdout: "PASS"
}
issue_4659_1: {
options = {
inline: true,
reduce_vars: true,
}
input: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
f && f();
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
f && a++;
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect_stdout: "1"
}
issue_4659_2: {
options = {
inline: true,
reduce_vars: true,
}
input: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
(function() {
f && f();
})();
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
void (f && a++);
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect_stdout: "1"
}
issue_4659_3: {
options = {
inline: true,
reduce_vars: true,
unused: true,
}
input: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
function g() {
while (!console);
}
g(f && f());
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect: {
var a = 0;
(function() {
function f() {
return a++;
}
(function() {
(function() {
while (!console);
})(f && a++);
(function() {
var a = console && a;
})();
})();
})();
console.log(a);
}
expect_stdout: "1"
}