diff --git a/lib/compress.js b/lib/compress.js index 772c6227..50017a65 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -2404,7 +2404,8 @@ merge(Compressor.prototype, { if (node instanceof AST_LoopControl && tw.loopcontrol_target(node) === self) return has_loop_control = true; }); - self.walk(tw); + var parent = compressor.parent(); + (parent instanceof AST_LabeledStatement ? parent : self).walk(tw); if (!has_loop_control) return self.body; } } diff --git a/test/compress/issue-1833.js b/test/compress/issue-1833.js index 1162cf00..60fc164a 100644 --- a/test/compress/issue-1833.js +++ b/test/compress/issue-1833.js @@ -101,3 +101,20 @@ iife_while: { }(); } } + +label_do: { + options = { + evaluate: true, + loops: true, + } + input: { + L: do { + continue L; + } while (0); + } + expect: { + L: do { + continue L; + } while (0); + } +}