bundles/org.eclipse.orion.client.javascript/web/eslint/lib/rules/no-extra-parens.js
function isHeadOfExpressionStatement(node) {
			var parent = node.parent;

			while (parent) {
				switch (parent.type) {
					case "SequenceExpression":
						if (parent.expressions[0] !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "UnaryExpression":
					case "UpdateExpression":
						if (parent.prefix || isParenthesised(node)) {
							return false;
						}
						break;

					case "BinaryExpression":
					case "LogicalExpression":
						if (parent.left !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "ConditionalExpression":
						if (parent.test !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "CallExpression":
						if (parent.callee !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "MemberExpression":
						if (parent.object !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "ExpressionStatement":
						return true;

					default:
						return false;
				}

				node = parent;
				parent = parent.parent;
			}

			/* istanbul ignore next */
			throw new Error("unreachable");
		}
function isHeadOfExpressionStatement(node) {
			var parent = node.parent;

			while (parent) {
				switch (parent.type) {
					case "SequenceExpression":
						if (parent.expressions[0] !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "UnaryExpression":
					case "UpdateExpression":
						if (parent.prefix || isParenthesised(node)) {
							return false;
						}
						break;

					case "BinaryExpression":
					case "LogicalExpression":
						if (parent.left !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "ConditionalExpression":
						if (parent.test !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "CallExpression":
						if (parent.callee !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "MemberExpression":
						if (parent.object !== node || isParenthesised(node)) {
							return false;
						}
						break;

					case "ExpressionStatement":
						return true;

					default:
						return false;
				}

				node = parent;
				parent = parent.parent;
			}

			/* istanbul ignore next */
			throw new Error("unreachable");
		}
function isHeadOfExpressionStatement ( node ) { var parent = node . parent ; while ( parent ) { switch ( parent . type ) { case "SequenceExpression" : if ( parent . expressions [ 0 ] !== node || isParenthesised ( node ) ) { return false ; } break ; case "UnaryExpression" : case "UpdateExpression" : if ( parent . prefix || isParenthesised ( node ) ) { return false ; } break ; case "BinaryExpression" : case "LogicalExpression" : if ( parent . left !== node || isParenthesised ( node ) ) { return false ; } break ; case "ConditionalExpression" : if ( parent . test !== node || isParenthesised ( node ) ) { return false ; } break ; case "CallExpression" : if ( parent . callee !== node || isParenthesised ( node ) ) { return false ; } break ; case "MemberExpression" : if ( parent . object !== node || isParenthesised ( node ) ) { return false ; } break ; case "ExpressionStatement" : return true ; default : return false ; } node = parent ; parent = parent . parent ; } /* istanbul ignore next */ throw new Error ( "unreachable" ) ; }
Checks whether or not a given node is located at the head of ExpressionStatement.
@param {ASTNode} node - A node to check.
@returns {boolean} `true` if the node is located at the head of ExpressionStatement.
Checks whether or not a given node is located at the head of ExpressionStatement .