diff options
-rw-r--r-- | tools/js-optimizer.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 54cde9f5..20d4d3d2 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -1145,10 +1145,12 @@ function simplifyNotComps(ast) { var NO_SIDE_EFFECTS = set('num', 'name'); function hasSideEffects(node) { // this is 99% incomplete! - if (node[0] in NO_SIDE_EFFECTS) return false; - if (node[0] === 'unary-prefix') return hasSideEffects(node[2]); - if (node[0] === 'binary') return hasSideEffects(node[2]) || hasSideEffects(node[3]); - return true; + switch (node[0]) { + case 'num': case 'name': return false; + case 'unary-prefix': return hasSideEffects(node[2]); + case 'binary': return hasSideEffects(node[2]) || hasSideEffects(node[3]); + default: return true; + } } // Clear out empty ifs and blocks, and redundant blocks/stats and so forth |