aboutsummaryrefslogtreecommitdiff
path: root/tools/js-optimizer.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r--tools/js-optimizer.js11
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js
index 634d7dda..efbfa8aa 100644
--- a/tools/js-optimizer.js
+++ b/tools/js-optimizer.js
@@ -486,6 +486,17 @@ function simplifyExpressionsPre(ast) {
}
}
});
+
+ if (asm) {
+ // optimize num >> num, in asm we need this here since we do not run optimizeShifts
+ traverseGenerated(ast, function(node, type) {
+ if (type == 'binary' && node[1] == '>>' && node[2][0] == 'num' && node[3][0] == 'num') {
+ node[0] = 'num';
+ node[1] = node[2][1] >> node[3][1];
+ node.length = 2;
+ }
+ });
+ }
}
// The most common mathop is addition, e.g. in getelementptr done repeatedly. We can join all of those,