aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-01-14 19:08:56 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-01-14 19:08:56 -0800
commit8fedb0f64eea5030fac2c1e7c996da07c0d99bd2 (patch)
tree48da60b1058c1978119196f19a0b9b5af4b0e2b0
parent08bbcab7a8123187f00bcb09efa656e118a8c077 (diff)
optimize hoistMultiples by removing jsonCompare's
-rw-r--r--tools/js-optimizer.js6
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') {