diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-01-14 19:08:56 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-01-14 19:08:56 -0800 |
commit | 8fedb0f64eea5030fac2c1e7c996da07c0d99bd2 (patch) | |
tree | 48da60b1058c1978119196f19a0b9b5af4b0e2b0 | |
parent | 08bbcab7a8123187f00bcb09efa656e118a8c077 (diff) |
optimize hoistMultiples by removing jsonCompare's
-rw-r--r-- | tools/js-optimizer.js | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 02d7ecb3..30355325 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -786,7 +786,7 @@ function hasSideEffects(node) { // this is 99% incomplete and wrong! It just wor function vacuum(ast) { function isEmpty(node) { if (!node) return true; - if (jsonCompare(node, emptyNode())) return true; + if (node[0] == 'toplevel' && (!node[1] || node[1].length == 0)) return true; if (node[0] == 'block' && (!node[1] || (typeof node[1] != 'object') || node[1].length == 0 || (node[1].length == 1 && isEmpty(node[1])))) return true; return false; } @@ -830,10 +830,10 @@ function vacuum(ast) { } else if (type == 'defun') { ret = simplifyList(node, 3); if (ret) return ret; - } else if (type == 'do' && node[1][0] == 'num' && jsonCompare(node[2], emptyNode())) { + } else if (type == 'do' && node[1][0] == 'num' && node[2][0] == 'toplevel' && (!node[2][1] || node[2][1].length == 0)) { more = true; return emptyNode(); - } else if (type == 'label' && jsonCompare(node[2], emptyNode())) { + } else if (type == 'label' && node[2][0] == 'toplevel' && (!node[2][1] || node[2][1].length == 0)) { more = true; return emptyNode(); } else if (type == 'if') { |