@@ -624,15 +624,9 @@ Compressor.prototype.compress = function(node) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pop_scope(tw, scope) {
|
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);
|
pop(tw);
|
||||||
tangled.forEach(function(fn) {
|
var fn_defs = scope.fn_defs;
|
||||||
|
fn_defs.forEach(function(fn) {
|
||||||
fn.safe_ids = tw.safe_ids;
|
fn.safe_ids = tw.safe_ids;
|
||||||
walk_fn_def(tw, fn);
|
walk_fn_def(tw, fn);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8148,3 +8148,77 @@ issue_5730_3: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "PASS"
|
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