@@ -624,15 +624,9 @@ Compressor.prototype.compress = function(node) {
|
||||
}
|
||||
|
||||
function pop_scope(tw, scope) {
|
||||
var fn_defs = scope.fn_defs;
|
||||
var tangled = scope.may_call_this === return_true ? fn_defs : fn_defs.filter(function(fn) {
|
||||
if (fn.safe_ids === false) return true;
|
||||
fn.safe_ids = tw.safe_ids;
|
||||
walk_fn_def(tw, fn);
|
||||
return false;
|
||||
});
|
||||
pop(tw);
|
||||
tangled.forEach(function(fn) {
|
||||
var fn_defs = scope.fn_defs;
|
||||
fn_defs.forEach(function(fn) {
|
||||
fn.safe_ids = tw.safe_ids;
|
||||
walk_fn_def(tw, fn);
|
||||
});
|
||||
|
||||
@@ -8148,3 +8148,77 @@ issue_5730_3: {
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
issue_5777_1: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f() {
|
||||
(function(a) {
|
||||
function g() {
|
||||
h();
|
||||
}
|
||||
g();
|
||||
a = function() {};
|
||||
function h() {
|
||||
console.log(a);
|
||||
}
|
||||
})("PASS");
|
||||
}
|
||||
f();
|
||||
}
|
||||
expect: {
|
||||
function f() {
|
||||
(function(a) {
|
||||
(function() {
|
||||
h();
|
||||
})();
|
||||
a = function() {};
|
||||
function h() {
|
||||
console.log(a);
|
||||
}
|
||||
})("PASS");
|
||||
}
|
||||
f();
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
issue_5777_2: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f(a) {
|
||||
(function() {
|
||||
function g() {
|
||||
h();
|
||||
}
|
||||
g();
|
||||
a = function() {};
|
||||
function h() {
|
||||
console.log(a);
|
||||
}
|
||||
})();
|
||||
}
|
||||
f("PASS");
|
||||
}
|
||||
expect: {
|
||||
(function(a) {
|
||||
(function() {
|
||||
(function() {
|
||||
h();
|
||||
})();
|
||||
a = function() {};
|
||||
function h() {
|
||||
console.log(a);
|
||||
}
|
||||
})();
|
||||
})("PASS");
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user