From 770f3ba5fe6bba0768e881dd3fe46b2a21d4a5df Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Sat, 9 Jan 2021 00:38:51 +0000 Subject: fix corner cases with rest parameters (#4526) fixes #4525 --- lib/compress.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/compress.js') diff --git a/lib/compress.js b/lib/compress.js index 8652d6e4..8aef5a71 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -5669,8 +5669,9 @@ merge(Compressor.prototype, { } if (node.rest) { node.rest = node.rest.transform(trimmer); - if (node.rest instanceof AST_DestructuredArray && node.rest.elements.length == 0 - || node.rest instanceof AST_DestructuredObject && node.rest.properties.length == 0) { + if (!(node.uses_arguments && !tt.has_directive("use strict")) + && (node.rest instanceof AST_DestructuredArray && node.rest.elements.length == 0 + || node.rest instanceof AST_DestructuredObject && node.rest.properties.length == 0)) { node.rest = null; } } @@ -10467,6 +10468,7 @@ merge(Compressor.prototype, { argname = null; } else if (compressor.has_directive("use strict") || fn.name + || fn.rest || !(fn_parent instanceof AST_Call && index < fn_parent.args.length) || !all(fn.argnames, function(argname) { return argname instanceof AST_SymbolFunarg; -- cgit v1.2.3