fix corner case in inline (#5088)

fixes #5087
This commit is contained in:
Alex Lam S.L
2021-07-19 15:35:45 +01:00
committed by GitHub
parent a7e7865e6b
commit 85968dee54
2 changed files with 62 additions and 1 deletions

View File

@@ -9957,8 +9957,10 @@ merge(Compressor.prototype, {
}));
function process(ref, name) {
var def = name.definition();
def.references.push(ref);
var symbol = make_node(AST_SymbolVar, name, name);
name.definition().orig.push(symbol);
def.orig.push(symbol);
append_var(decls, expressions, symbol);
}
}

View File

@@ -2998,3 +2998,62 @@ issue_5085_2: {
expect_stdout: "PASS"
node_version: ">=6"
}
issue_5087_1: {
options = {
collapse_vars: true,
inline: true,
properties: true,
sequences: true,
side_effects: true,
unused: true,
}
input: {
var a = "PASS";
(function() {
(function() {
(function([ b ]) {
b && console.log(b);
})([ a ]);
})();
})();
}
expect: {
var a = "PASS";
(function() {
var b;
(b = a) && console.log(b);
})();
}
expect_stdout: "PASS"
node_version: ">=6"
}
issue_5087_2: {
options = {
collapse_vars: true,
inline: true,
passes: 2,
properties: true,
reduce_vars: true,
sequences: true,
side_effects: true,
unused: true,
}
input: {
var a = "PASS";
(function() {
(function() {
(function([ b ]) {
b && console.log(b);
})([ a ]);
})();
})();
}
expect: {
var a = "PASS";
a && console.log(a);
}
expect_stdout: "PASS"
node_version: ">=6"
}