[Pkg-javascript-commits] [uglifyjs] 174/228: speed up `equivalent_to()` and `AST_Switch` (#1727)
Jonas Smedegaard
dr at jones.dk
Sat Apr 15 14:25:27 UTC 2017
This is an automated email from the git hooks/post-receive script.
js pushed a commit to branch master
in repository uglifyjs.
commit f1a833a7aa4204411c33c7419e94e8c6c87afe23
Author: Alex Lam S.L <alexlamsl at gmail.com>
Date: Wed Mar 29 22:08:26 2017 +0800
speed up `equivalent_to()` and `AST_Switch` (#1727)
---
lib/compress.js | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lib/compress.js b/lib/compress.js
index 66a6a18..786fc56 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -196,8 +196,7 @@ merge(Compressor.prototype, {
});
AST_Node.DEFMETHOD("equivalent_to", function(node){
- // XXX: this is a rather expensive way to test two node's equivalence:
- return this.print_to_string() == node.print_to_string();
+ return this.TYPE == node.TYPE && this.print_to_string() == node.print_to_string();
});
AST_Node.DEFMETHOD("process_expression", function(insert) {
@@ -2518,7 +2517,6 @@ merge(Compressor.prototype, {
self.expression = best_of_expression(expression, self.expression);
}
if (!compressor.option("dead_code")) return self;
- var prev_block;
var decl = [];
var body = [];
var default_branch;
@@ -2547,14 +2545,16 @@ merge(Compressor.prototype, {
}
}
if (aborts(branch)) {
- var block = make_node(AST_BlockStatement, branch, branch).print_to_string();
- if (!fallthrough && prev_block === block) body[body.length - 1].body = [];
+ if (body.length > 0 && !fallthrough) {
+ var prev = body[body.length - 1];
+ if (prev.body.length == branch.body.length
+ && make_node(AST_BlockStatement, prev, prev).equivalent_to(make_node(AST_BlockStatement, branch, branch)))
+ prev.body = [];
+ }
body.push(branch);
- prev_block = block;
fallthrough = false;
} else {
body.push(branch);
- prev_block = null;
fallthrough = true;
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git
More information about the Pkg-javascript-commits
mailing list