152 lines
2.9 KiB
JavaScript
152 lines
2.9 KiB
JavaScript
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 isReturnStatement(node) {
|
|
/* v8 ignore next 3 */
|
|
if (!node || node.type !== 'ReturnStatement') {
|
|
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;
|
|
}
|