From a10a4fb01183eadaf7ea5753c7549e6b0afac0a2 Mon Sep 17 00:00:00 2001 From: Manu MA Date: Sun, 9 Jun 2019 16:59:41 +0200 Subject: [PATCH] Fix treeshaken parameters around parentheses (#2911) --- src/ast/nodes/CallExpression.ts | 9 ++++++++- .../arrow-function-arguments/_expected.js | 2 ++ .../arrow-function-arguments/main.js | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ast/nodes/CallExpression.ts b/src/ast/nodes/CallExpression.ts index ee64e7284c7..b2b06bfb1d3 100644 --- a/src/ast/nodes/CallExpression.ts +++ b/src/ast/nodes/CallExpression.ts @@ -248,7 +248,14 @@ export default class CallExpression extends NodeBase implements DeoptimizableEnt for (let index = 0; index <= lastIncludedIndex; index++) { this.arguments[index].render(code, options); } - code.remove(this.arguments[lastIncludedIndex].end, this.end - 1); + code.remove( + findFirstOccurrenceOutsideComment( + code.original, + ',', + this.arguments[lastIncludedIndex].end + ), + this.end - 1 + ); } else { code.remove( findFirstOccurrenceOutsideComment(code.original, '(', this.callee.end) + 1, diff --git a/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/_expected.js b/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/_expected.js index 5533e3d376c..e162ada6319 100644 --- a/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/_expected.js +++ b/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/_expected.js @@ -8,3 +8,5 @@ const needed22 = 2; const needed23 = 3; someUsedParams(needed21, needed22, needed23); +someUsedParams(needed21, needed22, (needed23)); +(someUsedParams)(needed21, needed22, needed23 ); diff --git a/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/main.js b/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/main.js index 53a5527c4b2..9a33100da69 100644 --- a/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/main.js +++ b/test/form/samples/treeshake-excess-arguments/arrow-function-arguments/main.js @@ -11,3 +11,5 @@ const needed22 = 2; const needed23 = 3; someUsedParams(needed21, needed22, needed23, unneeded2); +someUsedParams(needed21, needed22, (needed23), unneeded2); +(someUsedParams)(needed21, needed22, needed23 , unneeded2);