export function isArrayPattern(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'ArrayPattern') { return false; } return true; } export function isBlockStatement(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'BlockStatement') { return false; } return true; } export function isComputed(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'Computed') { return false; } return true; } export function isDoWhileStatement(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'DoWhileStatement') { return false; } return true; } export function isExpressionStatement(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'ExpressionStatement') { return false; } return true; } export function isForStatement(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'ForStatement') { return false; } return true; } export function isIdentifier(node) { if (!node || node.type !== 'Identifier') { return false; } return true; } export function isIfStatement(node) { if (!node || node.type !== 'IfStatement') { return false; } return true; } export function isKeyValueProperty(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'KeyValueProperty') { return false; } return true; } export function isMemberExpression(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'MemberExpression') { return false; } return true; } export function isNumericLiteral(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'NumericLiteral') { return false; } return true; } export function isObjectPattern(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'ObjectPattern') { return false; } return true; } export function isSpreadElement(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'SpreadElement') { return false; } return true; } export function isStringLiteral(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'StringLiteral') { return false; } return true; } export function isVariableDeclarator(node) { /* v8 ignore next 3 */ if (!node || node.type !== 'VariableDeclarator') { return false; } return true; } export function isWhileStatement(node) { if (!node || node.type !== 'WhileStatement') { return false; } return true; } export function unwrap(node) { let wrapped = node; switch (node.type) { case 'Computed': wrapped = unwrap(node.expression); break; case 'OptionalChainingExpression': wrapped = unwrap(node.base); break; case 'ParenthesisExpression': wrapped = unwrap(node.expression); break; } if (node !== wrapped) { wrapped.wrapper = node; } return wrapped; }