add NewExpression support to needsParans

This commit is contained in:
Sebastian McKenzie
2014-11-03 11:11:07 +11:00
parent 85f0f6fb14
commit bc79cec15a

View File

@@ -48,7 +48,7 @@ exports.isReferenced = function (node, parent) {
};
exports.ensureBlock = function (node) {
node[key] = exports.toBlock(node.body, node);
node.body = exports.toBlock(node.body, node);
};
exports.toBlock = function (node, parent) {
@@ -84,6 +84,8 @@ exports.ensureExpressionType = function (node) {
};
exports.needsParans = function (node, parent) {
if (!parent) return false;
//
if (exports.isUnaryLike(node)) {
return parent.type === "MemberExpression" && parent.object === node;
@@ -151,9 +153,18 @@ exports.needsParans = function (node, parent) {
|| parent.type === "YieldExpression";
}
//if (parent.type === "NewExpression" && parent.callee === node) {
// return containsCallExpression(node);
//}
if (parent.type === "NewExpression") {
if (node.type !== "Identifier" && node.callee === node) {
return true;
}
}
if (node.type === "NewExpression") {
// (new Foo).bar();
if (parent.type === "MemberExpression" && parent.object === node) {
return true;
}
}
// (1).valueOf()
if (node.type === "Literal" && _.isNumber(node.value) && parent.type === "MemberExpression" && parent.object === node) {