function requiresLeadingSpace(node){var leftParenToken=sourceCode.getTokenBefore(node);var tokenBeforeLeftParen=sourceCode.getTokenBefore(node,1);var firstToken=sourceCode.getFirstToken(node);// If there is already whitespace before the previous token, don't add more.
if(!tokenBeforeLeftParen||tokenBeforeLeftParen.end!==leftParenToken.start){return false;}// If the parens are preceded by a keyword (e.g. `typeof(0)`), a space should be inserted (`typeof 0`)
var precededByIdentiferPart=esUtils.code.isIdentifierPartES6(tokenBeforeLeftParen.value.slice(-1).charCodeAt(0));// However, a space should not be inserted unless the first character of the token is an identifier part
// e.g. `typeof([])` should be fixed to `typeof[]`
var startsWithIdentifierPart=esUtils.code.isIdentifierPartES6(firstToken.value.charCodeAt(0));// If the parens are preceded by and start with a unary plus/minus (e.g. `+(+foo)`), a space should be inserted (`+ +foo`)
var precededByUnaryPlus=tokenBeforeLeftParen.type==="Punctuator"&&tokenBeforeLeftParen.value==="+";var precededByUnaryMinus=tokenBeforeLeftParen.type==="Punctuator"&&tokenBeforeLeftParen.value==="-";var startsWithUnaryPlus=firstToken.type==="Punctuator"&&firstToken.value==="+";var startsWithUnaryMinus=firstToken.type==="Punctuator"&&firstToken.value==="-";return precededByIdentiferPart&&startsWithIdentifierPart||precededByUnaryPlus&&startsWithUnaryPlus||precededByUnaryMinus&&startsWithUnaryMinus;}
Determines whether a node should be preceded by an additional space when removing parens
@param {ASTNode} node node to evaluate; must be surrounded by parentheses
@returns {boolean} `true` if a space should be inserted before the node
@private