fix up & more tests

This commit is contained in:
alexlamsl 2017-10-18 01:34:07 +08:00
parent 1bfad18815
commit cebae60fb8
2 changed files with 77 additions and 1 deletions

View File

@ -838,7 +838,7 @@ merge(Compressor.prototype, {
if (node instanceof AST_Call if (node instanceof AST_Call
|| node instanceof AST_Exit || node instanceof AST_Exit
|| node instanceof AST_PropAccess || node instanceof AST_PropAccess
&& node.expression.may_throw_on_access(compressor) && (side_effects || node.expression.may_throw_on_access(compressor))
|| node instanceof AST_SymbolRef || node instanceof AST_SymbolRef
&& (lvalues[node.name] && (lvalues[node.name]
|| side_effects && !references_in_scope(node.definition())) || side_effects && !references_in_scope(node.definition()))

View File

@ -2875,3 +2875,79 @@ issue_2364_7: {
} }
expect_stdout: "PASS" expect_stdout: "PASS"
} }
issue_2364_8: {
options = {
collapse_vars: true,
pure_getters: true,
}
input: {
function f(a, b, c) {
var d = a[b.f = function() {
return "PASS";
}];
return c.f(d);
}
var o = {
f: function() {
return "FAIL";
}
};
console.log(f({}, o, o));
}
expect: {
function f(a, b, c) {
var d = a[b.f = function() {
return "PASS";
}];
return c.f(d);
}
var o = {
f: function() {
return "FAIL";
}
};
console.log(f({}, o, o));
}
expect_stdout: "PASS"
}
issue_2364_9: {
options = {
collapse_vars: true,
pure_getters: true,
}
input: {
function f(a, b) {
var d = a();
return b.f(d);
}
var o = {
f: function() {
return "FAIL";
}
};
console.log(f(function() {
o.f = function() {
return "PASS";
};
}, o));
}
expect: {
function f(a, b) {
var d = a();
return b.f(d);
}
var o = {
f: function() {
return "FAIL";
}
};
console.log(f(function() {
o.f = function() {
return "PASS";
};
}, o));
}
expect_stdout: "PASS"
}