code: function dryCallNew(node) {
  			if (hasExcessParens(node.callee) && precedence(node.callee) >= precedence(node) && !(
  					node.type === "CallExpression" &&
  					node.callee.type === "FunctionExpression" &&
  
  					// One set of parentheses are allowed for a function expression
  					!hasDoubleExcessParens(node.callee)
  				)) {
  				report(node.callee);
  			}
  			if (node.arguments.length === 1) {
  				if (hasDoubleExcessParens(node.arguments[0]) && precedence(node.arguments[0]) >= precedence({
  						type: "AssignmentExpression"
  					})) {
  					report(node.arguments[0]);
  				}
  			} else {
  				[].forEach.call(node.arguments, function(arg) {
  					if (hasExcessParens(arg) && precedence(arg) >= precedence({
  							type: "AssignmentExpression"
  						})) {
  						report(arg);
  					}
  				});
  			}
  		}
docs: Evaluate a new call
  @param {ASTNode} node node to evaluate
  @returns {void}
  @private