@@ -1614,6 +1614,14 @@ merge(Compressor.prototype, {
|
|||||||
var scan_lhs = lhs && !side_effects && !is_lhs_read_only(lhs, compressor);
|
var scan_lhs = lhs && !side_effects && !is_lhs_read_only(lhs, compressor);
|
||||||
var scan_rhs = foldable(candidate);
|
var scan_rhs = foldable(candidate);
|
||||||
if (!scan_lhs && !scan_rhs) continue;
|
if (!scan_lhs && !scan_rhs) continue;
|
||||||
|
var funarg = candidate.name instanceof AST_SymbolFunarg;
|
||||||
|
var may_throw = return_false;
|
||||||
|
if (candidate.may_throw(compressor)) {
|
||||||
|
if (funarg && scope instanceof AST_AsyncFunction) continue;
|
||||||
|
may_throw = in_try ? function(node) {
|
||||||
|
return node.has_side_effects(compressor);
|
||||||
|
} : side_effects_external;
|
||||||
|
}
|
||||||
var read_toplevel = false;
|
var read_toplevel = false;
|
||||||
var modify_toplevel = false;
|
var modify_toplevel = false;
|
||||||
// Locate symbols which may execute code outside of scanning range
|
// Locate symbols which may execute code outside of scanning range
|
||||||
@@ -1622,10 +1630,6 @@ merge(Compressor.prototype, {
|
|||||||
var rvalue = get_rvalue(candidate);
|
var rvalue = get_rvalue(candidate);
|
||||||
if (!side_effects) side_effects = value_has_side_effects();
|
if (!side_effects) side_effects = value_has_side_effects();
|
||||||
var replace_all = replace_all_symbols(candidate);
|
var replace_all = replace_all_symbols(candidate);
|
||||||
var may_throw = candidate.may_throw(compressor) ? in_try ? function(node) {
|
|
||||||
return node.has_side_effects(compressor);
|
|
||||||
} : side_effects_external : return_false;
|
|
||||||
var funarg = candidate.name instanceof AST_SymbolFunarg;
|
|
||||||
var hit = funarg;
|
var hit = funarg;
|
||||||
var abort = false;
|
var abort = false;
|
||||||
var replaced = 0;
|
var replaced = 0;
|
||||||
|
|||||||
@@ -444,3 +444,30 @@ issue_4349_3: {
|
|||||||
expect_stdout: "function"
|
expect_stdout: "function"
|
||||||
node_version: ">=8"
|
node_version: ">=8"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4359: {
|
||||||
|
options = {
|
||||||
|
collapse_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
try {
|
||||||
|
(async function(a) {
|
||||||
|
return a;
|
||||||
|
})(A);
|
||||||
|
} catch (e) {
|
||||||
|
console.log("PASS");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
try {
|
||||||
|
(async function(a) {
|
||||||
|
return a;
|
||||||
|
})(A);
|
||||||
|
} catch (e) {
|
||||||
|
console.log("PASS");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=8"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user