diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-03-26 13:55:29 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-03-26 13:55:29 -0700 |
commit | 5b348504869e2a60c47173b32f7761fdc96ca132 (patch) | |
tree | f0212acb17dd3ee53f047818644c78b52fea4490 /tools/js-optimizer.js | |
parent | c35860bfad958ec1b7b4f2aa7496705aec5080d9 (diff) |
eliminate X=X which can happen due to elimination
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 129c493f..49bc9d11 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -292,6 +292,8 @@ function removeEmptySubNodes(node) { node[3] = filterEmptyNodes(node[3]); } else if (node[0] === 'block' && node[1]) { node[1] = filterEmptyNodes(node[1]); + } else if (node[0] === 'seq' && isEmptyNode(node[1])) { + return node[2]; } /* var stats = getStatements(node); @@ -3912,6 +3914,9 @@ function eliminate(ast, memSafe) { node[0] = 'toplevel'; node[1] = []; } + } else if (type === 'assign' && node[1] === true && node[2][0] === 'name' && node[3][0] === 'name' && node[2][1] === node[3][1]) { + // elimination led to X = X, which we can just remove + return emptyNode(); } }, function(node, type) { // post |