fix multiple nested function substitutions (#2458)

fixes #2449
This commit is contained in:
Alex Lam S.L
2017-11-09 23:30:00 +08:00
committed by GitHub
parent 246d9d4e83
commit 1127a2caf3
5 changed files with 64 additions and 24 deletions

View File

@@ -3036,6 +3036,7 @@ issue_2437: {
conditionals: true,
inline: true,
join_vars: true,
passes: 2,
reduce_vars: true,
side_effects: true,
sequences: true,

View File

@@ -1113,7 +1113,7 @@ issue_2105_1: {
options = {
collapse_vars: true,
inline: true,
passes: 2,
passes: 3,
reduce_vars: true,
side_effects: true,
unused: true,
@@ -1153,7 +1153,7 @@ issue_2105_2: {
options = {
collapse_vars: true,
inline: true,
passes: 2,
passes: 3,
properties: true,
pure_getters: "strict",
reduce_vars: true,

View File

@@ -513,7 +513,7 @@ issue_2428: {
options = {
collapse_vars: true,
inline: true,
passes: 2,
passes: 3,
pure_getters: "strict",
reduce_vars: true,
side_effects: true,

View File

@@ -3714,6 +3714,7 @@ recursive_inlining_2: {
recursive_inlining_3: {
options = {
passes: 2,
reduce_vars: true,
unused: true,
}
@@ -3989,3 +3990,38 @@ issue_2450_5: {
"true",
]
}
issue_2449: {
options = {
passes: 10,
reduce_vars: true,
toplevel: true,
unused: true,
}
input: {
var a = "PASS";
function f() {
return a;
}
function g() {
return f();
}
(function() {
var a = "FAIL";
if (a == a) console.log(g());
})();
}
expect: {
var a = "PASS";
function g() {
return function() {
return a;
}();
}
(function() {
var a = "FAIL";
if (a == a) console.log(g());
})();
}
expect_stdout: "PASS"
}