summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/rules/no-extra-parens.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/lib/rules/no-extra-parens.js')
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-parens.js32
1 files changed, 17 insertions, 15 deletions
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-parens.js b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
index c6809c355b..f96e572bfe 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-parens.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
@@ -50,7 +50,8 @@ module.exports = {
returnAssign: { type: "boolean" },
ignoreJSX: { enum: ["none", "all", "single-line", "multi-line"] },
enforceForArrowConditionals: { type: "boolean" },
- enforceForSequenceExpressions: { type: "boolean" }
+ enforceForSequenceExpressions: { type: "boolean" },
+ enforceForNewInMemberExpressions: { type: "boolean" }
},
additionalProperties: false
}
@@ -80,6 +81,8 @@ module.exports = {
context.options[1].enforceForArrowConditionals === false;
const IGNORE_SEQUENCE_EXPRESSIONS = ALL_NODES && context.options[1] &&
context.options[1].enforceForSequenceExpressions === false;
+ const IGNORE_NEW_IN_MEMBER_EXPR = ALL_NODES && context.options[1] &&
+ context.options[1].enforceForNewInMemberExpressions === false;
const PRECEDENCE_OF_ASSIGNMENT_EXPR = precedence({ type: "AssignmentExpression" });
const PRECEDENCE_OF_UPDATE_EXPR = precedence({ type: "UpdateExpression" });
@@ -88,7 +91,7 @@ module.exports = {
/**
* Determines if this rule should be enforced for a node given the current configuration.
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the rule should be enforced for this node.
* @private
*/
@@ -127,7 +130,7 @@ module.exports = {
/**
* Determines if a node is surrounded by parentheses.
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is parenthesised.
* @private
*/
@@ -137,7 +140,7 @@ module.exports = {
/**
* Determines if a node is surrounded by parentheses twice.
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is doubly parenthesised.
* @private
*/
@@ -147,7 +150,7 @@ module.exports = {
/**
* Determines if a node is surrounded by (potentially) invalid parentheses.
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is incorrectly parenthesised.
* @private
*/
@@ -158,7 +161,7 @@ module.exports = {
/**
* Determines if a node that is expected to be parenthesised is surrounded by
* (potentially) invalid extra parentheses.
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is has an unexpected extra pair of parentheses.
* @private
*/
@@ -168,7 +171,7 @@ module.exports = {
/**
* Determines if a node test expression is allowed to have a parenthesised assignment
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the assignment can be parenthesised.
* @private
*/
@@ -178,7 +181,7 @@ module.exports = {
/**
* Determines if a node is in a return statement
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is in a return statement.
* @private
*/
@@ -197,7 +200,7 @@ module.exports = {
/**
* Determines if a constructor function is newed-up with parens
- * @param {ASTNode} newExpression - The NewExpression node to be checked.
+ * @param {ASTNode} newExpression The NewExpression node to be checked.
* @returns {boolean} True if the constructor is called with parens.
* @private
*/
@@ -217,7 +220,7 @@ module.exports = {
/**
* Determines if a node is or contains an assignment expression
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is or contains an assignment expression.
* @private
*/
@@ -239,7 +242,7 @@ module.exports = {
/**
* Determines if a node is contained by or is itself a return statement and is allowed to have a parenthesised assignment
- * @param {ASTNode} node - The node to be checked.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the assignment can be parenthesised.
* @private
*/
@@ -261,8 +264,8 @@ module.exports = {
/**
* Determines if a node following a [no LineTerminator here] restriction is
* surrounded by (potentially) invalid extra parentheses.
- * @param {Token} token - The token preceding the [no LineTerminator here] restriction.
- * @param {ASTNode} node - The node to be checked.
+ * @param {Token} token The token preceding the [no LineTerminator here] restriction.
+ * @param {ASTNode} node The node to be checked.
* @returns {boolean} True if the node is incorrectly parenthesised.
* @private
*/
@@ -567,7 +570,6 @@ module.exports = {
/**
* Checks whether the syntax of the given ancestor of an 'in' expression inside a for-loop initializer
* is preventing the 'in' keyword from being interpreted as a part of an ill-formed for-in loop.
- *
* @param {ASTNode} node Ancestor of an 'in' expression.
* @param {ASTNode} child Child of the node, ancestor of the same 'in' expression or the 'in' expression itself.
* @returns {boolean} True if the keyword 'in' would be interpreted as the 'in' operator, without any parenthesis.
@@ -599,7 +601,6 @@ module.exports = {
/**
* Starts a new reports buffering. Warnings will be stored in a buffer instead of being reported immediately.
* An additional logic that requires multiple nodes (e.g. a whole subtree) may dismiss some of the stored warnings.
- *
* @returns {void}
*/
function startNewReportsBuffering() {
@@ -895,6 +896,7 @@ module.exports = {
}
if (nodeObjHasExcessParens &&
+ !IGNORE_NEW_IN_MEMBER_EXPR &&
node.object.type === "NewExpression" &&
isNewExpressionWithParens(node.object)) {
report(node.object);