oxc-parser
Version:
Oxc Parser Node API
1,957 lines (1,809 loc) • 154 kB
JavaScript
// Auto-generated code, DO NOT EDIT DIRECTLY!
// To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer_lazy.rs`.
import {
Program,
IdentifierName,
IdentifierReference,
BindingIdentifier,
LabelIdentifier,
ThisExpression,
ArrayExpression,
Elision,
ObjectExpression,
ObjectProperty,
TemplateLiteral,
TaggedTemplateExpression,
TemplateElement,
ComputedMemberExpression,
StaticMemberExpression,
PrivateFieldExpression,
CallExpression,
NewExpression,
MetaProperty,
SpreadElement,
UpdateExpression,
UnaryExpression,
BinaryExpression,
PrivateInExpression,
LogicalExpression,
ConditionalExpression,
AssignmentExpression,
ArrayAssignmentTarget,
ObjectAssignmentTarget,
AssignmentTargetWithDefault,
AssignmentTargetPropertyIdentifier,
AssignmentTargetPropertyProperty,
SequenceExpression,
Super,
AwaitExpression,
ChainExpression,
ParenthesizedExpression,
Hashbang,
BlockStatement,
VariableDeclaration,
VariableDeclarator,
EmptyStatement,
ExpressionStatement,
IfStatement,
DoWhileStatement,
WhileStatement,
ForStatement,
ForInStatement,
ForOfStatement,
ContinueStatement,
BreakStatement,
ReturnStatement,
WithStatement,
SwitchStatement,
SwitchCase,
LabeledStatement,
ThrowStatement,
TryStatement,
CatchClause,
DebuggerStatement,
AssignmentPattern,
ObjectPattern,
BindingProperty,
ArrayPattern,
Function,
FormalParameters,
FunctionBody,
ArrowFunctionExpression,
YieldExpression,
Class,
ClassBody,
MethodDefinition,
PropertyDefinition,
PrivateIdentifier,
StaticBlock,
AccessorProperty,
ImportExpression,
ImportDeclaration,
ImportSpecifier,
ImportDefaultSpecifier,
ImportNamespaceSpecifier,
ImportAttribute,
ExportNamedDeclaration,
ExportDefaultDeclaration,
ExportAllDeclaration,
ExportSpecifier,
V8IntrinsicExpression,
BooleanLiteral,
NullLiteral,
NumericLiteral,
StringLiteral,
BigIntLiteral,
RegExpLiteral,
JSXElement,
JSXOpeningElement,
JSXClosingElement,
JSXFragment,
JSXOpeningFragment,
JSXClosingFragment,
JSXNamespacedName,
JSXMemberExpression,
JSXExpressionContainer,
JSXEmptyExpression,
JSXAttribute,
JSXSpreadAttribute,
JSXIdentifier,
JSXSpreadChild,
JSXText,
TSEnumDeclaration,
TSEnumBody,
TSEnumMember,
TSTypeAnnotation,
TSLiteralType,
TSConditionalType,
TSUnionType,
TSIntersectionType,
TSParenthesizedType,
TSTypeOperator,
TSArrayType,
TSIndexedAccessType,
TSTupleType,
TSNamedTupleMember,
TSOptionalType,
TSRestType,
TSAnyKeyword,
TSStringKeyword,
TSBooleanKeyword,
TSNumberKeyword,
TSNeverKeyword,
TSIntrinsicKeyword,
TSUnknownKeyword,
TSNullKeyword,
TSUndefinedKeyword,
TSVoidKeyword,
TSSymbolKeyword,
TSThisType,
TSObjectKeyword,
TSBigIntKeyword,
TSTypeReference,
TSQualifiedName,
TSTypeParameterInstantiation,
TSTypeParameter,
TSTypeParameterDeclaration,
TSTypeAliasDeclaration,
TSClassImplements,
TSInterfaceDeclaration,
TSInterfaceBody,
TSPropertySignature,
TSIndexSignature,
TSCallSignatureDeclaration,
TSMethodSignature,
TSConstructSignatureDeclaration,
TSIndexSignatureName,
TSInterfaceHeritage,
TSTypePredicate,
TSModuleDeclaration,
TSGlobalDeclaration,
TSModuleBlock,
TSTypeLiteral,
TSInferType,
TSTypeQuery,
TSImportType,
TSImportTypeQualifiedName,
TSFunctionType,
TSConstructorType,
TSMappedType,
TSTemplateLiteralType,
TSAsExpression,
TSSatisfiesExpression,
TSTypeAssertion,
TSImportEqualsDeclaration,
TSExternalModuleReference,
TSNonNullExpression,
Decorator,
TSExportAssignment,
TSNamespaceExportDeclaration,
TSInstantiationExpression,
JSDocNullableType,
JSDocNonNullableType,
JSDocUnknownType,
} from "./constructors.js";
export { walkProgram };
function walkProgram(pos, ast, visitors) {
const enterExit = visitors[38];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new Program(pos, ast);
if (enter !== null) enter(node);
}
walkOptionHashbang(pos + 56, ast, visitors);
walkVecStatement(pos + 112, ast, visitors);
if (exit !== null) exit(node);
}
function walkExpression(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBooleanLiteral(pos + 8, ast, visitors);
return;
case 1:
walkBoxNullLiteral(pos + 8, ast, visitors);
return;
case 2:
walkBoxNumericLiteral(pos + 8, ast, visitors);
return;
case 3:
walkBoxBigIntLiteral(pos + 8, ast, visitors);
return;
case 4:
walkBoxRegExpLiteral(pos + 8, ast, visitors);
return;
case 5:
walkBoxStringLiteral(pos + 8, ast, visitors);
return;
case 6:
walkBoxTemplateLiteral(pos + 8, ast, visitors);
return;
case 7:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 8:
walkBoxMetaProperty(pos + 8, ast, visitors);
return;
case 9:
walkBoxSuper(pos + 8, ast, visitors);
return;
case 10:
walkBoxArrayExpression(pos + 8, ast, visitors);
return;
case 11:
walkBoxArrowFunctionExpression(pos + 8, ast, visitors);
return;
case 12:
walkBoxAssignmentExpression(pos + 8, ast, visitors);
return;
case 13:
walkBoxAwaitExpression(pos + 8, ast, visitors);
return;
case 14:
walkBoxBinaryExpression(pos + 8, ast, visitors);
return;
case 15:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 16:
walkBoxChainExpression(pos + 8, ast, visitors);
return;
case 17:
walkBoxClass(pos + 8, ast, visitors);
return;
case 18:
walkBoxConditionalExpression(pos + 8, ast, visitors);
return;
case 19:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 20:
walkBoxImportExpression(pos + 8, ast, visitors);
return;
case 21:
walkBoxLogicalExpression(pos + 8, ast, visitors);
return;
case 22:
walkBoxNewExpression(pos + 8, ast, visitors);
return;
case 23:
walkBoxObjectExpression(pos + 8, ast, visitors);
return;
case 24:
walkBoxParenthesizedExpression(pos + 8, ast, visitors);
return;
case 25:
walkBoxSequenceExpression(pos + 8, ast, visitors);
return;
case 26:
walkBoxTaggedTemplateExpression(pos + 8, ast, visitors);
return;
case 27:
walkBoxThisExpression(pos + 8, ast, visitors);
return;
case 28:
walkBoxUnaryExpression(pos + 8, ast, visitors);
return;
case 29:
walkBoxUpdateExpression(pos + 8, ast, visitors);
return;
case 30:
walkBoxYieldExpression(pos + 8, ast, visitors);
return;
case 31:
walkBoxPrivateInExpression(pos + 8, ast, visitors);
return;
case 32:
walkBoxJSXElement(pos + 8, ast, visitors);
return;
case 33:
walkBoxJSXFragment(pos + 8, ast, visitors);
return;
case 34:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSInstantiationExpression(pos + 8, ast, visitors);
return;
case 39:
walkBoxV8IntrinsicExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Expression`);
}
}
function walkIdentifierName(pos, ast, visitors) {
const visit = visitors[0];
if (visit !== null) visit(new IdentifierName(pos, ast));
}
function walkIdentifierReference(pos, ast, visitors) {
const visit = visitors[1];
if (visit !== null) visit(new IdentifierReference(pos, ast));
}
function walkBindingIdentifier(pos, ast, visitors) {
const visit = visitors[2];
if (visit !== null) visit(new BindingIdentifier(pos, ast));
}
function walkLabelIdentifier(pos, ast, visitors) {
const visit = visitors[3];
if (visit !== null) visit(new LabelIdentifier(pos, ast));
}
function walkThisExpression(pos, ast, visitors) {
const visit = visitors[4];
if (visit !== null) visit(new ThisExpression(pos, ast));
}
function walkArrayExpression(pos, ast, visitors) {
const enterExit = visitors[39];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ArrayExpression(pos, ast);
if (enter !== null) enter(node);
}
walkVecArrayExpressionElement(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkArrayExpressionElement(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBooleanLiteral(pos + 8, ast, visitors);
return;
case 1:
walkBoxNullLiteral(pos + 8, ast, visitors);
return;
case 2:
walkBoxNumericLiteral(pos + 8, ast, visitors);
return;
case 3:
walkBoxBigIntLiteral(pos + 8, ast, visitors);
return;
case 4:
walkBoxRegExpLiteral(pos + 8, ast, visitors);
return;
case 5:
walkBoxStringLiteral(pos + 8, ast, visitors);
return;
case 6:
walkBoxTemplateLiteral(pos + 8, ast, visitors);
return;
case 7:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 8:
walkBoxMetaProperty(pos + 8, ast, visitors);
return;
case 9:
walkBoxSuper(pos + 8, ast, visitors);
return;
case 10:
walkBoxArrayExpression(pos + 8, ast, visitors);
return;
case 11:
walkBoxArrowFunctionExpression(pos + 8, ast, visitors);
return;
case 12:
walkBoxAssignmentExpression(pos + 8, ast, visitors);
return;
case 13:
walkBoxAwaitExpression(pos + 8, ast, visitors);
return;
case 14:
walkBoxBinaryExpression(pos + 8, ast, visitors);
return;
case 15:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 16:
walkBoxChainExpression(pos + 8, ast, visitors);
return;
case 17:
walkBoxClass(pos + 8, ast, visitors);
return;
case 18:
walkBoxConditionalExpression(pos + 8, ast, visitors);
return;
case 19:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 20:
walkBoxImportExpression(pos + 8, ast, visitors);
return;
case 21:
walkBoxLogicalExpression(pos + 8, ast, visitors);
return;
case 22:
walkBoxNewExpression(pos + 8, ast, visitors);
return;
case 23:
walkBoxObjectExpression(pos + 8, ast, visitors);
return;
case 24:
walkBoxParenthesizedExpression(pos + 8, ast, visitors);
return;
case 25:
walkBoxSequenceExpression(pos + 8, ast, visitors);
return;
case 26:
walkBoxTaggedTemplateExpression(pos + 8, ast, visitors);
return;
case 27:
walkBoxThisExpression(pos + 8, ast, visitors);
return;
case 28:
walkBoxUnaryExpression(pos + 8, ast, visitors);
return;
case 29:
walkBoxUpdateExpression(pos + 8, ast, visitors);
return;
case 30:
walkBoxYieldExpression(pos + 8, ast, visitors);
return;
case 31:
walkBoxPrivateInExpression(pos + 8, ast, visitors);
return;
case 32:
walkBoxJSXElement(pos + 8, ast, visitors);
return;
case 33:
walkBoxJSXFragment(pos + 8, ast, visitors);
return;
case 34:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSInstantiationExpression(pos + 8, ast, visitors);
return;
case 39:
walkBoxV8IntrinsicExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
case 64:
walkBoxSpreadElement(pos + 8, ast, visitors);
return;
case 65:
walkBoxElision(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ArrayExpressionElement`);
}
}
function walkElision(pos, ast, visitors) {
const visit = visitors[5];
if (visit !== null) visit(new Elision(pos, ast));
}
function walkObjectExpression(pos, ast, visitors) {
const enterExit = visitors[40];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ObjectExpression(pos, ast);
if (enter !== null) enter(node);
}
walkVecObjectPropertyKind(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkObjectPropertyKind(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxObjectProperty(pos + 8, ast, visitors);
return;
case 1:
walkBoxSpreadElement(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ObjectPropertyKind`);
}
}
function walkObjectProperty(pos, ast, visitors) {
const enterExit = visitors[41];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ObjectProperty(pos, ast);
if (enter !== null) enter(node);
}
walkPropertyKey(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkPropertyKey(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBooleanLiteral(pos + 8, ast, visitors);
return;
case 1:
walkBoxNullLiteral(pos + 8, ast, visitors);
return;
case 2:
walkBoxNumericLiteral(pos + 8, ast, visitors);
return;
case 3:
walkBoxBigIntLiteral(pos + 8, ast, visitors);
return;
case 4:
walkBoxRegExpLiteral(pos + 8, ast, visitors);
return;
case 5:
walkBoxStringLiteral(pos + 8, ast, visitors);
return;
case 6:
walkBoxTemplateLiteral(pos + 8, ast, visitors);
return;
case 7:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 8:
walkBoxMetaProperty(pos + 8, ast, visitors);
return;
case 9:
walkBoxSuper(pos + 8, ast, visitors);
return;
case 10:
walkBoxArrayExpression(pos + 8, ast, visitors);
return;
case 11:
walkBoxArrowFunctionExpression(pos + 8, ast, visitors);
return;
case 12:
walkBoxAssignmentExpression(pos + 8, ast, visitors);
return;
case 13:
walkBoxAwaitExpression(pos + 8, ast, visitors);
return;
case 14:
walkBoxBinaryExpression(pos + 8, ast, visitors);
return;
case 15:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 16:
walkBoxChainExpression(pos + 8, ast, visitors);
return;
case 17:
walkBoxClass(pos + 8, ast, visitors);
return;
case 18:
walkBoxConditionalExpression(pos + 8, ast, visitors);
return;
case 19:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 20:
walkBoxImportExpression(pos + 8, ast, visitors);
return;
case 21:
walkBoxLogicalExpression(pos + 8, ast, visitors);
return;
case 22:
walkBoxNewExpression(pos + 8, ast, visitors);
return;
case 23:
walkBoxObjectExpression(pos + 8, ast, visitors);
return;
case 24:
walkBoxParenthesizedExpression(pos + 8, ast, visitors);
return;
case 25:
walkBoxSequenceExpression(pos + 8, ast, visitors);
return;
case 26:
walkBoxTaggedTemplateExpression(pos + 8, ast, visitors);
return;
case 27:
walkBoxThisExpression(pos + 8, ast, visitors);
return;
case 28:
walkBoxUnaryExpression(pos + 8, ast, visitors);
return;
case 29:
walkBoxUpdateExpression(pos + 8, ast, visitors);
return;
case 30:
walkBoxYieldExpression(pos + 8, ast, visitors);
return;
case 31:
walkBoxPrivateInExpression(pos + 8, ast, visitors);
return;
case 32:
walkBoxJSXElement(pos + 8, ast, visitors);
return;
case 33:
walkBoxJSXFragment(pos + 8, ast, visitors);
return;
case 34:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSInstantiationExpression(pos + 8, ast, visitors);
return;
case 39:
walkBoxV8IntrinsicExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
case 64:
walkBoxIdentifierName(pos + 8, ast, visitors);
return;
case 65:
walkBoxPrivateIdentifier(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for PropertyKey`);
}
}
function walkTemplateLiteral(pos, ast, visitors) {
const enterExit = visitors[42];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new TemplateLiteral(pos, ast);
if (enter !== null) enter(node);
}
walkVecTemplateElement(pos + 16, ast, visitors);
walkVecExpression(pos + 40, ast, visitors);
if (exit !== null) exit(node);
}
function walkTaggedTemplateExpression(pos, ast, visitors) {
const enterExit = visitors[43];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new TaggedTemplateExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors);
walkTemplateLiteral(pos + 40, ast, visitors);
if (exit !== null) exit(node);
}
function walkTemplateElement(pos, ast, visitors) {
const visit = visitors[6];
if (visit !== null) visit(new TemplateElement(pos, ast));
}
function walkComputedMemberExpression(pos, ast, visitors) {
const enterExit = visitors[44];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ComputedMemberExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkStaticMemberExpression(pos, ast, visitors) {
const enterExit = visitors[45];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new StaticMemberExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkIdentifierName(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkPrivateFieldExpression(pos, ast, visitors) {
const enterExit = visitors[46];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new PrivateFieldExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkPrivateIdentifier(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkCallExpression(pos, ast, visitors) {
const enterExit = visitors[47];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new CallExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors);
walkVecArgument(pos + 40, ast, visitors);
if (exit !== null) exit(node);
}
function walkNewExpression(pos, ast, visitors) {
const enterExit = visitors[48];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new NewExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkOptionBoxTSTypeParameterInstantiation(pos + 32, ast, visitors);
walkVecArgument(pos + 40, ast, visitors);
if (exit !== null) exit(node);
}
function walkMetaProperty(pos, ast, visitors) {
const enterExit = visitors[49];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new MetaProperty(pos, ast);
if (enter !== null) enter(node);
}
walkIdentifierName(pos + 16, ast, visitors);
walkIdentifierName(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkSpreadElement(pos, ast, visitors) {
const enterExit = visitors[50];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new SpreadElement(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkArgument(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBooleanLiteral(pos + 8, ast, visitors);
return;
case 1:
walkBoxNullLiteral(pos + 8, ast, visitors);
return;
case 2:
walkBoxNumericLiteral(pos + 8, ast, visitors);
return;
case 3:
walkBoxBigIntLiteral(pos + 8, ast, visitors);
return;
case 4:
walkBoxRegExpLiteral(pos + 8, ast, visitors);
return;
case 5:
walkBoxStringLiteral(pos + 8, ast, visitors);
return;
case 6:
walkBoxTemplateLiteral(pos + 8, ast, visitors);
return;
case 7:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 8:
walkBoxMetaProperty(pos + 8, ast, visitors);
return;
case 9:
walkBoxSuper(pos + 8, ast, visitors);
return;
case 10:
walkBoxArrayExpression(pos + 8, ast, visitors);
return;
case 11:
walkBoxArrowFunctionExpression(pos + 8, ast, visitors);
return;
case 12:
walkBoxAssignmentExpression(pos + 8, ast, visitors);
return;
case 13:
walkBoxAwaitExpression(pos + 8, ast, visitors);
return;
case 14:
walkBoxBinaryExpression(pos + 8, ast, visitors);
return;
case 15:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 16:
walkBoxChainExpression(pos + 8, ast, visitors);
return;
case 17:
walkBoxClass(pos + 8, ast, visitors);
return;
case 18:
walkBoxConditionalExpression(pos + 8, ast, visitors);
return;
case 19:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 20:
walkBoxImportExpression(pos + 8, ast, visitors);
return;
case 21:
walkBoxLogicalExpression(pos + 8, ast, visitors);
return;
case 22:
walkBoxNewExpression(pos + 8, ast, visitors);
return;
case 23:
walkBoxObjectExpression(pos + 8, ast, visitors);
return;
case 24:
walkBoxParenthesizedExpression(pos + 8, ast, visitors);
return;
case 25:
walkBoxSequenceExpression(pos + 8, ast, visitors);
return;
case 26:
walkBoxTaggedTemplateExpression(pos + 8, ast, visitors);
return;
case 27:
walkBoxThisExpression(pos + 8, ast, visitors);
return;
case 28:
walkBoxUnaryExpression(pos + 8, ast, visitors);
return;
case 29:
walkBoxUpdateExpression(pos + 8, ast, visitors);
return;
case 30:
walkBoxYieldExpression(pos + 8, ast, visitors);
return;
case 31:
walkBoxPrivateInExpression(pos + 8, ast, visitors);
return;
case 32:
walkBoxJSXElement(pos + 8, ast, visitors);
return;
case 33:
walkBoxJSXFragment(pos + 8, ast, visitors);
return;
case 34:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSInstantiationExpression(pos + 8, ast, visitors);
return;
case 39:
walkBoxV8IntrinsicExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
case 64:
walkBoxSpreadElement(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Argument`);
}
}
function walkUpdateExpression(pos, ast, visitors) {
const enterExit = visitors[51];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new UpdateExpression(pos, ast);
if (enter !== null) enter(node);
}
walkSimpleAssignmentTarget(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkUnaryExpression(pos, ast, visitors) {
const enterExit = visitors[52];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new UnaryExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkBinaryExpression(pos, ast, visitors) {
const enterExit = visitors[53];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new BinaryExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkPrivateInExpression(pos, ast, visitors) {
const enterExit = visitors[54];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new PrivateInExpression(pos, ast);
if (enter !== null) enter(node);
}
walkPrivateIdentifier(pos + 16, ast, visitors);
walkExpression(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkLogicalExpression(pos, ast, visitors) {
const enterExit = visitors[55];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new LogicalExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkConditionalExpression(pos, ast, visitors) {
const enterExit = visitors[56];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ConditionalExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
walkExpression(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkAssignmentExpression(pos, ast, visitors) {
const enterExit = visitors[57];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new AssignmentExpression(pos, ast);
if (enter !== null) enter(node);
}
walkAssignmentTarget(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkAssignmentTarget(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 1:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 2:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 3:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 4:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 8:
walkBoxArrayAssignmentTarget(pos + 8, ast, visitors);
return;
case 9:
walkBoxObjectAssignmentTarget(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for AssignmentTarget`);
}
}
function walkSimpleAssignmentTarget(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 1:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 2:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 3:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 4:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for SimpleAssignmentTarget`);
}
}
function walkArrayAssignmentTarget(pos, ast, visitors) {
const enterExit = visitors[58];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ArrayAssignmentTarget(pos, ast);
if (enter !== null) enter(node);
}
walkVecOptionAssignmentTargetMaybeDefault(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkObjectAssignmentTarget(pos, ast, visitors) {
const enterExit = visitors[59];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ObjectAssignmentTarget(pos, ast);
if (enter !== null) enter(node);
}
walkVecAssignmentTargetProperty(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkAssignmentTargetMaybeDefault(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 1:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 2:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 3:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 4:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 8:
walkBoxArrayAssignmentTarget(pos + 8, ast, visitors);
return;
case 9:
walkBoxObjectAssignmentTarget(pos + 8, ast, visitors);
return;
case 16:
walkBoxAssignmentTargetWithDefault(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(
`Unexpected discriminant ${ast.buffer[pos]} for AssignmentTargetMaybeDefault`,
);
}
}
function walkAssignmentTargetWithDefault(pos, ast, visitors) {
const enterExit = visitors[60];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new AssignmentTargetWithDefault(pos, ast);
if (enter !== null) enter(node);
}
walkAssignmentTarget(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkAssignmentTargetProperty(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxAssignmentTargetPropertyIdentifier(pos + 8, ast, visitors);
return;
case 1:
walkBoxAssignmentTargetPropertyProperty(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for AssignmentTargetProperty`);
}
}
function walkAssignmentTargetPropertyIdentifier(pos, ast, visitors) {
const enterExit = visitors[61];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new AssignmentTargetPropertyIdentifier(pos, ast);
if (enter !== null) enter(node);
}
walkIdentifierReference(pos + 16, ast, visitors);
walkOptionExpression(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkAssignmentTargetPropertyProperty(pos, ast, visitors) {
const enterExit = visitors[62];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new AssignmentTargetPropertyProperty(pos, ast);
if (enter !== null) enter(node);
}
walkPropertyKey(pos + 16, ast, visitors);
walkAssignmentTargetMaybeDefault(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkSequenceExpression(pos, ast, visitors) {
const enterExit = visitors[63];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new SequenceExpression(pos, ast);
if (enter !== null) enter(node);
}
walkVecExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkSuper(pos, ast, visitors) {
const visit = visitors[7];
if (visit !== null) visit(new Super(pos, ast));
}
function walkAwaitExpression(pos, ast, visitors) {
const enterExit = visitors[64];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new AwaitExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkChainExpression(pos, ast, visitors) {
const enterExit = visitors[65];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ChainExpression(pos, ast);
if (enter !== null) enter(node);
}
walkChainElement(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkChainElement(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 1:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ChainElement`);
}
}
function walkParenthesizedExpression(pos, ast, visitors) {
const enterExit = visitors[66];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ParenthesizedExpression(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkStatement(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBlockStatement(pos + 8, ast, visitors);
return;
case 1:
walkBoxBreakStatement(pos + 8, ast, visitors);
return;
case 2:
walkBoxContinueStatement(pos + 8, ast, visitors);
return;
case 3:
walkBoxDebuggerStatement(pos + 8, ast, visitors);
return;
case 4:
walkBoxDoWhileStatement(pos + 8, ast, visitors);
return;
case 5:
walkBoxEmptyStatement(pos + 8, ast, visitors);
return;
case 6:
walkBoxExpressionStatement(pos + 8, ast, visitors);
return;
case 7:
walkBoxForInStatement(pos + 8, ast, visitors);
return;
case 8:
walkBoxForOfStatement(pos + 8, ast, visitors);
return;
case 9:
walkBoxForStatement(pos + 8, ast, visitors);
return;
case 10:
walkBoxIfStatement(pos + 8, ast, visitors);
return;
case 11:
walkBoxLabeledStatement(pos + 8, ast, visitors);
return;
case 12:
walkBoxReturnStatement(pos + 8, ast, visitors);
return;
case 13:
walkBoxSwitchStatement(pos + 8, ast, visitors);
return;
case 14:
walkBoxThrowStatement(pos + 8, ast, visitors);
return;
case 15:
walkBoxTryStatement(pos + 8, ast, visitors);
return;
case 16:
walkBoxWhileStatement(pos + 8, ast, visitors);
return;
case 17:
walkBoxWithStatement(pos + 8, ast, visitors);
return;
case 32:
walkBoxVariableDeclaration(pos + 8, ast, visitors);
return;
case 33:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 34:
walkBoxClass(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSTypeAliasDeclaration(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSInterfaceDeclaration(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSEnumDeclaration(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSModuleDeclaration(pos + 8, ast, visitors);
return;
case 39:
walkBoxTSGlobalDeclaration(pos + 8, ast, visitors);
return;
case 40:
walkBoxTSImportEqualsDeclaration(pos + 8, ast, visitors);
return;
case 64:
walkBoxImportDeclaration(pos + 8, ast, visitors);
return;
case 65:
walkBoxExportAllDeclaration(pos + 8, ast, visitors);
return;
case 66:
walkBoxExportDefaultDeclaration(pos + 8, ast, visitors);
return;
case 67:
walkBoxExportNamedDeclaration(pos + 8, ast, visitors);
return;
case 68:
walkBoxTSExportAssignment(pos + 8, ast, visitors);
return;
case 69:
walkBoxTSNamespaceExportDeclaration(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Statement`);
}
}
function walkHashbang(pos, ast, visitors) {
const visit = visitors[8];
if (visit !== null) visit(new Hashbang(pos, ast));
}
function walkBlockStatement(pos, ast, visitors) {
const enterExit = visitors[67];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new BlockStatement(pos, ast);
if (enter !== null) enter(node);
}
walkVecStatement(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkDeclaration(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 32:
walkBoxVariableDeclaration(pos + 8, ast, visitors);
return;
case 33:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 34:
walkBoxClass(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSTypeAliasDeclaration(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSInterfaceDeclaration(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSEnumDeclaration(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSModuleDeclaration(pos + 8, ast, visitors);
return;
case 39:
walkBoxTSGlobalDeclaration(pos + 8, ast, visitors);
return;
case 40:
walkBoxTSImportEqualsDeclaration(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for Declaration`);
}
}
function walkVariableDeclaration(pos, ast, visitors) {
const enterExit = visitors[68];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new VariableDeclaration(pos, ast);
if (enter !== null) enter(node);
}
walkVecVariableDeclarator(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkVariableDeclarator(pos, ast, visitors) {
const enterExit = visitors[69];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new VariableDeclarator(pos, ast);
if (enter !== null) enter(node);
}
walkBindingPattern(pos + 16, ast, visitors);
walkOptionExpression(pos + 40, ast, visitors);
if (exit !== null) exit(node);
}
function walkEmptyStatement(pos, ast, visitors) {
const visit = visitors[9];
if (visit !== null) visit(new EmptyStatement(pos, ast));
}
function walkExpressionStatement(pos, ast, visitors) {
const enterExit = visitors[70];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ExpressionStatement(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkIfStatement(pos, ast, visitors) {
const enterExit = visitors[71];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new IfStatement(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkStatement(pos + 32, ast, visitors);
walkOptionStatement(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkDoWhileStatement(pos, ast, visitors) {
const enterExit = visitors[72];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new DoWhileStatement(pos, ast);
if (enter !== null) enter(node);
}
walkStatement(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkWhileStatement(pos, ast, visitors) {
const enterExit = visitors[73];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new WhileStatement(pos, ast);
if (enter !== null) enter(node);
}
walkExpression(pos + 16, ast, visitors);
walkStatement(pos + 32, ast, visitors);
if (exit !== null) exit(node);
}
function walkForStatement(pos, ast, visitors) {
const enterExit = visitors[74];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ForStatement(pos, ast);
if (enter !== null) enter(node);
}
walkOptionForStatementInit(pos + 16, ast, visitors);
walkOptionExpression(pos + 32, ast, visitors);
walkOptionExpression(pos + 48, ast, visitors);
walkStatement(pos + 64, ast, visitors);
if (exit !== null) exit(node);
}
function walkForStatementInit(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxBooleanLiteral(pos + 8, ast, visitors);
return;
case 1:
walkBoxNullLiteral(pos + 8, ast, visitors);
return;
case 2:
walkBoxNumericLiteral(pos + 8, ast, visitors);
return;
case 3:
walkBoxBigIntLiteral(pos + 8, ast, visitors);
return;
case 4:
walkBoxRegExpLiteral(pos + 8, ast, visitors);
return;
case 5:
walkBoxStringLiteral(pos + 8, ast, visitors);
return;
case 6:
walkBoxTemplateLiteral(pos + 8, ast, visitors);
return;
case 7:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 8:
walkBoxMetaProperty(pos + 8, ast, visitors);
return;
case 9:
walkBoxSuper(pos + 8, ast, visitors);
return;
case 10:
walkBoxArrayExpression(pos + 8, ast, visitors);
return;
case 11:
walkBoxArrowFunctionExpression(pos + 8, ast, visitors);
return;
case 12:
walkBoxAssignmentExpression(pos + 8, ast, visitors);
return;
case 13:
walkBoxAwaitExpression(pos + 8, ast, visitors);
return;
case 14:
walkBoxBinaryExpression(pos + 8, ast, visitors);
return;
case 15:
walkBoxCallExpression(pos + 8, ast, visitors);
return;
case 16:
walkBoxChainExpression(pos + 8, ast, visitors);
return;
case 17:
walkBoxClass(pos + 8, ast, visitors);
return;
case 18:
walkBoxConditionalExpression(pos + 8, ast, visitors);
return;
case 19:
walkBoxFunction(pos + 8, ast, visitors);
return;
case 20:
walkBoxImportExpression(pos + 8, ast, visitors);
return;
case 21:
walkBoxLogicalExpression(pos + 8, ast, visitors);
return;
case 22:
walkBoxNewExpression(pos + 8, ast, visitors);
return;
case 23:
walkBoxObjectExpression(pos + 8, ast, visitors);
return;
case 24:
walkBoxParenthesizedExpression(pos + 8, ast, visitors);
return;
case 25:
walkBoxSequenceExpression(pos + 8, ast, visitors);
return;
case 26:
walkBoxTaggedTemplateExpression(pos + 8, ast, visitors);
return;
case 27:
walkBoxThisExpression(pos + 8, ast, visitors);
return;
case 28:
walkBoxUnaryExpression(pos + 8, ast, visitors);
return;
case 29:
walkBoxUpdateExpression(pos + 8, ast, visitors);
return;
case 30:
walkBoxYieldExpression(pos + 8, ast, visitors);
return;
case 31:
walkBoxPrivateInExpression(pos + 8, ast, visitors);
return;
case 32:
walkBoxJSXElement(pos + 8, ast, visitors);
return;
case 33:
walkBoxJSXFragment(pos + 8, ast, visitors);
return;
case 34:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 35:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 36:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 37:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 38:
walkBoxTSInstantiationExpression(pos + 8, ast, visitors);
return;
case 39:
walkBoxV8IntrinsicExpression(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
case 64:
walkBoxVariableDeclaration(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ForStatementInit`);
}
}
function walkForInStatement(pos, ast, visitors) {
const enterExit = visitors[75];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ForInStatement(pos, ast);
if (enter !== null) enter(node);
}
walkForStatementLeft(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
walkStatement(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkForStatementLeft(pos, ast, visitors) {
switch (ast.buffer[pos]) {
case 0:
walkBoxIdentifierReference(pos + 8, ast, visitors);
return;
case 1:
walkBoxTSAsExpression(pos + 8, ast, visitors);
return;
case 2:
walkBoxTSSatisfiesExpression(pos + 8, ast, visitors);
return;
case 3:
walkBoxTSNonNullExpression(pos + 8, ast, visitors);
return;
case 4:
walkBoxTSTypeAssertion(pos + 8, ast, visitors);
return;
case 8:
walkBoxArrayAssignmentTarget(pos + 8, ast, visitors);
return;
case 9:
walkBoxObjectAssignmentTarget(pos + 8, ast, visitors);
return;
case 16:
walkBoxVariableDeclaration(pos + 8, ast, visitors);
return;
case 48:
walkBoxComputedMemberExpression(pos + 8, ast, visitors);
return;
case 49:
walkBoxStaticMemberExpression(pos + 8, ast, visitors);
return;
case 50:
walkBoxPrivateFieldExpression(pos + 8, ast, visitors);
return;
default:
throw new Error(`Unexpected discriminant ${ast.buffer[pos]} for ForStatementLeft`);
}
}
function walkForOfStatement(pos, ast, visitors) {
const enterExit = visitors[76];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ForOfStatement(pos, ast);
if (enter !== null) enter(node);
}
walkForStatementLeft(pos + 16, ast, visitors);
walkExpression(pos + 32, ast, visitors);
walkStatement(pos + 48, ast, visitors);
if (exit !== null) exit(node);
}
function walkContinueStatement(pos, ast, visitors) {
const enterExit = visitors[77];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new ContinueStatement(pos, ast);
if (enter !== null) enter(node);
}
walkOptionLabelIdentifier(pos + 16, ast, visitors);
if (exit !== null) exit(node);
}
function walkBreakStatement(pos, ast, visitors) {
const enterExit = visitors[78];
let node,
enter,
exit = null;
if (enterExit !== null) {
({ enter, exit } = enterExit);
node = new BreakStatement(pos, ast);