diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-11-09 09:21:25 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-11-09 09:21:25 -0800 |
commit | 7f5c2dec956c2d24b524583f80b23282d0c60353 (patch) | |
tree | 17f2875c7ccbc1188fcbb35def8cb27fe10b59b5 /tools | |
parent | 7a3b033e450b94f5b8c32509fd9ec8b3ca539dfb (diff) |
optimize hasSideEffects
Diffstat (limited to 'tools')
-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 |