diff --git a/src/ast/scopes/ParameterScope.ts b/src/ast/scopes/ParameterScope.ts index 4e29d59f6b8..c5823008da7 100644 --- a/src/ast/scopes/ParameterScope.ts +++ b/src/ast/scopes/ParameterScope.ts @@ -58,7 +58,8 @@ export default class ParameterScope extends ChildScope { calledFromTryStatement = true; } } - } else if (!argIncluded && arg.shouldBeIncluded()) { + } + if (!argIncluded && arg.shouldBeIncluded()) { argIncluded = true; } if (argIncluded) { diff --git a/test/form/samples/treeshake-excess-arguments/argument-side-effects/_config.js b/test/form/samples/treeshake-excess-arguments/argument-side-effects/_config.js new file mode 100644 index 00000000000..d2acef03025 --- /dev/null +++ b/test/form/samples/treeshake-excess-arguments/argument-side-effects/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'retains arguments that have side-effects' +}; diff --git a/test/form/samples/treeshake-excess-arguments/argument-side-effects/_expected.js b/test/form/samples/treeshake-excess-arguments/argument-side-effects/_expected.js new file mode 100644 index 00000000000..b92aab28bbc --- /dev/null +++ b/test/form/samples/treeshake-excess-arguments/argument-side-effects/_expected.js @@ -0,0 +1,10 @@ +function sideEffects() { + console.log('print message'); + return true; +} + +function hola(a, b) { + console.log(a); +} + +hola(1, sideEffects()); diff --git a/test/form/samples/treeshake-excess-arguments/argument-side-effects/main.js b/test/form/samples/treeshake-excess-arguments/argument-side-effects/main.js new file mode 100644 index 00000000000..b92aab28bbc --- /dev/null +++ b/test/form/samples/treeshake-excess-arguments/argument-side-effects/main.js @@ -0,0 +1,10 @@ +function sideEffects() { + console.log('print message'); + return true; +} + +function hola(a, b) { + console.log(a); +} + +hola(1, sideEffects());