aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard van Velzen <rvanvelzen@experty.com>2015-01-12 17:09:34 +0100
committerRichard van Velzen <rvanvelzen@experty.com>2015-01-12 17:09:34 +0100
commit42ecd42ac00881f7d540cb08969ce7e2721e30d5 (patch)
tree8879a10566f02177db66450ffa72d52d7639ff72
parenta10f6a96d724319f9bb582dab42392b4ef05a0e0 (diff)
downloadtracifyjs-42ecd42ac00881f7d540cb08969ce7e2721e30d5.tar.gz
tracifyjs-42ecd42ac00881f7d540cb08969ce7e2721e30d5.zip
Replace the correct node when replacing in `void` sequences
Close #611.
-rw-r--r--lib/compress.js2
-rw-r--r--test/compress/issue-611.js21
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/compress.js b/lib/compress.js
index 1f1d4b50..72e4d92d 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -1937,7 +1937,7 @@ merge(Compressor.prototype, {
if (self.cdr instanceof AST_UnaryPrefix
&& self.cdr.operator == "void"
&& !self.cdr.expression.has_side_effects(compressor)) {
- self.cdr.operator = self.car;
+ self.cdr.expression = self.car;
return self.cdr;
}
if (self.cdr instanceof AST_Undefined) {
diff --git a/test/compress/issue-611.js b/test/compress/issue-611.js
new file mode 100644
index 00000000..6f2c65d2
--- /dev/null
+++ b/test/compress/issue-611.js
@@ -0,0 +1,21 @@
+issue_611: {
+ options = {
+ sequences: true,
+ side_effects: true
+ };
+ input: {
+ define(function() {
+ function fn() {}
+ if (fn()) {
+ fn();
+ return void 0;
+ }
+ });
+ }
+ expect: {
+ define(function() {
+ function fn(){}
+ if (fn()) return void fn();
+ });
+ }
+}