This is an automated email from the ASF dual-hosted git repository. davisp pushed a commit to reference refs/pull/24/head in repository https://gitbox.apache.org/repos/asf/couchdb-escodegen.git
commit c6b790787e58edb070cc4449249f666e7da44031 Author: Robert Gust-Bardon <[email protected]> AuthorDate: Thu Jul 19 18:48:34 2012 +0200 Fix parentheses combined with call expressions --- escodegen.js | 2 +- test/options.js | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/escodegen.js b/escodegen.js index 98edef0..e202f5e 100644 --- a/escodegen.js +++ b/escodegen.js @@ -705,7 +705,7 @@ ); len = expr['arguments'].length; - if (parentheses || len > 0) { + if (parentheses || len > 0 || precedence === Precedence.Call) { result += '('; for (i = 0; i < len; i += 1) { result += generateExpression(expr['arguments'][i], { diff --git a/test/options.js b/test/options.js index 7922951..e6df8e0 100644 --- a/test/options.js +++ b/test/options.js @@ -663,8 +663,15 @@ var data = [{ } }, items: { + 'new Foo()': 'new Foo();', 'new Foo(42)': 'new Foo(42);', - 'new Foo() in bar': 'new Foo() in bar;' + 'new Foo() in bar': 'new Foo() in bar;', + 'new Date.constructor()': 'new Date.constructor();', + 'new Date().constructor': 'new Date().constructor;', + 'new Date.setUTCMilliseconds(0)': 'new Date.setUTCMilliseconds(0);', + 'new Date().setUTCMilliseconds(0)': 'new Date().setUTCMilliseconds(0);', + 'new new Foo()()': 'new new Foo()();', + 'new new (Foo()())()()': 'new new (Foo()())()();' } }, { options: { @@ -673,8 +680,15 @@ var data = [{ } }, items: { + 'new Foo()': 'new Foo;', 'new Foo(42)': 'new Foo(42);', - 'new Foo() in bar': 'new Foo in bar;' + 'new Foo() in bar': 'new Foo in bar;', + 'new Date.constructor()': 'new Date.constructor;', + 'new Date().constructor': 'new Date().constructor;', + 'new Date.setUTCMilliseconds(0)': 'new Date.setUTCMilliseconds(0);', + 'new Date().setUTCMilliseconds(0)': 'new Date().setUTCMilliseconds(0);', + 'new new Foo()': 'new new Foo;', + 'new new (Foo()())()()': 'new new (Foo()());' } }];
