diff options
Diffstat (limited to 'lib/compress.js')
-rw-r--r-- | lib/compress.js | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/compress.js b/lib/compress.js index 8bc8b37e..f15776c8 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -5918,7 +5918,7 @@ merge(Compressor.prototype, { self.body = body; if (compressor.option("conditionals")) switch (body.length) { case 1: - if (!no_break(self)) break; + if (!no_break(body[0])) break; var exp = body[0].expression; var statements = body[0].body.slice(); if (body[0] !== default_branch && body[0] !== exact_match) return make_node(AST_If, self, { @@ -5942,7 +5942,7 @@ merge(Compressor.prototype, { body: statements, }).optimize(compressor); case 2: - if (!member(default_branch, body)) break; + if (!member(default_branch, body) || !no_break(body[1])) break; var statements = body[0].body.slice(); var exclusive = statements.length && is_break(statements[statements.length - 1], compressor); if (exclusive) statements.pop(); @@ -5982,6 +5982,7 @@ merge(Compressor.prototype, { || node instanceof AST_SimpleStatement) return true; if (is_break(node, tw)) found = true; }); + tw.push(self); node.walk(tw); return !found; } |