diff --git a/lib/parse.js b/lib/parse.js index 442a4164..5093812f 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -2371,7 +2371,7 @@ function parse($TEXT, options) { next(); args.push(new AST_Expansion({ start: prev(), - expression: as_symbol(AST_SymbolFunarg) + expression: expression(false) })); } else { args.push(expression(false)); diff --git a/test/compress/expansions.js b/test/compress/expansions.js index a6537547..8879e67f 100644 --- a/test/compress/expansions.js +++ b/test/compress/expansions.js @@ -7,6 +7,17 @@ expand_arguments: { expect_exact: "func(a,...rest);func(...all);" } +expand_expression_arguments: { + input: { + f(...a.b); + f(...a.b()); + f(...(a)); + f(...(a.b)); + f(...a[i]); + } + expect_exact: "f(...a.b);f(...a.b());f(...a);f(...a.b);f(...a[i]);" +} + expand_parameters: { input: { (function (a, ...b){});