diff --git a/luamin.js b/luamin.js index 21cbf40..db1161a 100644 --- a/luamin.js +++ b/luamin.js @@ -341,15 +341,23 @@ } else if (expressionType == 'CallExpression') { - result = formatBase(expression.base) + '('; + if (expression.arguments.length == 1 && ( + expression.arguments[0].type == 'TableConstructorExpression' || + expression.arguments[0].type == 'StringLiteral' + )) { + result = formatExpression(expression.base) + + formatExpression(expression.arguments[0]); + } else { + result = formatBase(expression.base) + '('; - each(expression.arguments, function(argument, needsComma) { - result += formatExpression(argument); - if (needsComma) { - result += ','; - } - }); - result += ')'; + each(expression.arguments, function(argument, needsComma) { + result += formatExpression(argument); + if (needsComma) { + result += ','; + } + }); + result += ')'; + } } else if (expressionType == 'TableCallExpression') { diff --git a/tests/tests.js b/tests/tests.js index 3a04da0..d4be9dc 100644 --- a/tests/tests.js +++ b/tests/tests.js @@ -485,12 +485,12 @@ { 'description': 'MemberExpression + CallExpression on a TableConstructorExpression', 'original': 'x = ({ foo = print }):foo("test")', - 'minified': 'x=({foo=print}):foo("test")' + 'minified': 'x=({foo=print}):foo"test"' }, { 'description': 'MemberExpression + CallExpression on a TableConstructorExpression', 'original': 'x = ({ foo = print }).foo("test")', - 'minified': 'x=({foo=print}).foo("test")' + 'minified': 'x=({foo=print}).foo"test"' }, { 'description': 'LogicalExpression in parenthesis + MemberExpression + CallExpression',