Merge branch 'master' into harmony-v3.1.3

This commit is contained in:
alexlamsl
2017-10-01 12:42:40 +08:00
5 changed files with 44 additions and 5 deletions

View File

@@ -290,6 +290,10 @@ merge(Compressor.prototype, {
AST_Node.DEFMETHOD("reset_opt_flags", function(compressor, rescan) {
var reduce_vars = rescan && compressor.option("reduce_vars");
// Stack of look-up tables to keep track of whether a `SymbolDef` has been
// properly assigned before use:
// - `push()` & `pop()` when visiting conditional branches
// - backup & restore via `save_ids` when visiting out-of-order sections
var safe_ids = Object.create(null);
var suppressor = new TreeWalker(function(node) {
if (!(node instanceof AST_Symbol)) return;
@@ -405,10 +409,9 @@ merge(Compressor.prototype, {
return true;
}
if (node instanceof AST_Accessor) {
var save_ids = safe_ids;
safe_ids = Object.create(null);
push();
descend();
safe_ids = save_ids;
pop();
return true;
}
if (node instanceof AST_Binary