5380 lines
142 KiB
JavaScript
5380 lines
142 KiB
JavaScript
// Auto-generated code, DO NOT EDIT DIRECTLY!
|
|
// To edit this generated file you have to edit `tasks/ast_tools/src/generators/raw_transfer.rs`.
|
|
|
|
'use strict';
|
|
|
|
module.exports = deserialize;
|
|
|
|
let uint8, uint32, float64, sourceText, sourceIsAscii, sourceByteLen;
|
|
|
|
const textDecoder = new TextDecoder('utf-8', { ignoreBOM: true }),
|
|
decodeStr = textDecoder.decode.bind(textDecoder),
|
|
{ fromCodePoint } = String;
|
|
|
|
function deserialize(buffer, sourceTextInput, sourceByteLenInput) {
|
|
uint8 = buffer;
|
|
uint32 = buffer.uint32;
|
|
float64 = buffer.float64;
|
|
|
|
sourceText = sourceTextInput;
|
|
sourceByteLen = sourceByteLenInput;
|
|
sourceIsAscii = sourceText.length === sourceByteLen;
|
|
|
|
const data = deserializeRawTransferData(uint32[536870902]);
|
|
|
|
uint8 =
|
|
uint32 =
|
|
float64 =
|
|
sourceText =
|
|
undefined;
|
|
|
|
return data;
|
|
}
|
|
|
|
function deserializeProgram(pos) {
|
|
const body = deserializeVecDirective(pos + 72);
|
|
body.push(...deserializeVecStatement(pos + 96));
|
|
|
|
const start = deserializeU32(pos);
|
|
const end = deserializeU32(pos + 4);
|
|
|
|
const program = {
|
|
type: 'Program',
|
|
body,
|
|
sourceType: deserializeModuleKind(pos + 125),
|
|
hashbang: deserializeOptionHashbang(pos + 48),
|
|
start,
|
|
end,
|
|
};
|
|
return program;
|
|
}
|
|
|
|
function deserializeIdentifierName(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeIdentifierReference(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBindingIdentifier(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeLabelIdentifier(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeThisExpression(pos) {
|
|
return {
|
|
type: 'ThisExpression',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeArrayExpression(pos) {
|
|
return {
|
|
type: 'ArrayExpression',
|
|
elements: deserializeVecArrayExpressionElement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeElision(pos) {
|
|
return null;
|
|
}
|
|
|
|
function deserializeObjectExpression(pos) {
|
|
return {
|
|
type: 'ObjectExpression',
|
|
properties: deserializeVecObjectPropertyKind(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeObjectProperty(pos) {
|
|
return {
|
|
type: 'Property',
|
|
kind: deserializePropertyKind(pos + 40),
|
|
key: deserializePropertyKey(pos + 8),
|
|
value: deserializeExpression(pos + 24),
|
|
method: deserializeBool(pos + 41),
|
|
shorthand: deserializeBool(pos + 42),
|
|
computed: deserializeBool(pos + 43),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTemplateLiteral(pos) {
|
|
return {
|
|
type: 'TemplateLiteral',
|
|
quasis: deserializeVecTemplateElement(pos + 8),
|
|
expressions: deserializeVecExpression(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTaggedTemplateExpression(pos) {
|
|
return {
|
|
type: 'TaggedTemplateExpression',
|
|
tag: deserializeExpression(pos + 8),
|
|
quasi: deserializeTemplateLiteral(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTemplateElement(pos) {
|
|
const tail = deserializeBool(pos + 40),
|
|
start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4),
|
|
value = deserializeTemplateElementValue(pos + 8);
|
|
if (value.cooked !== null && deserializeBool(pos + 41)) {
|
|
value.cooked = value.cooked
|
|
.replace(/\uFFFD(.{4})/g, (_, hex) => String.fromCodePoint(parseInt(hex, 16)));
|
|
}
|
|
return { type: 'TemplateElement', value, tail, start, end };
|
|
}
|
|
|
|
function deserializeTemplateElementValue(pos) {
|
|
return {
|
|
raw: deserializeStr(pos),
|
|
cooked: deserializeOptionStr(pos + 16),
|
|
};
|
|
}
|
|
|
|
function deserializeComputedMemberExpression(pos) {
|
|
return {
|
|
type: 'MemberExpression',
|
|
object: deserializeExpression(pos + 8),
|
|
property: deserializeExpression(pos + 24),
|
|
optional: deserializeBool(pos + 40),
|
|
computed: true,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeStaticMemberExpression(pos) {
|
|
return {
|
|
type: 'MemberExpression',
|
|
object: deserializeExpression(pos + 8),
|
|
property: deserializeIdentifierName(pos + 24),
|
|
optional: deserializeBool(pos + 48),
|
|
computed: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializePrivateFieldExpression(pos) {
|
|
return {
|
|
type: 'MemberExpression',
|
|
object: deserializeExpression(pos + 8),
|
|
property: deserializePrivateIdentifier(pos + 24),
|
|
optional: deserializeBool(pos + 48),
|
|
computed: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeCallExpression(pos) {
|
|
return {
|
|
type: 'CallExpression',
|
|
callee: deserializeExpression(pos + 8),
|
|
arguments: deserializeVecArgument(pos + 32),
|
|
optional: deserializeBool(pos + 56),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeNewExpression(pos) {
|
|
return {
|
|
type: 'NewExpression',
|
|
callee: deserializeExpression(pos + 8),
|
|
arguments: deserializeVecArgument(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeMetaProperty(pos) {
|
|
return {
|
|
type: 'MetaProperty',
|
|
meta: deserializeIdentifierName(pos + 8),
|
|
property: deserializeIdentifierName(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSpreadElement(pos) {
|
|
return {
|
|
type: 'SpreadElement',
|
|
argument: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeUpdateExpression(pos) {
|
|
return {
|
|
type: 'UpdateExpression',
|
|
operator: deserializeUpdateOperator(pos + 24),
|
|
prefix: deserializeBool(pos + 25),
|
|
argument: deserializeSimpleAssignmentTarget(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeUnaryExpression(pos) {
|
|
return {
|
|
type: 'UnaryExpression',
|
|
operator: deserializeUnaryOperator(pos + 24),
|
|
argument: deserializeExpression(pos + 8),
|
|
prefix: true,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBinaryExpression(pos) {
|
|
return {
|
|
type: 'BinaryExpression',
|
|
left: deserializeExpression(pos + 8),
|
|
operator: deserializeBinaryOperator(pos + 40),
|
|
right: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializePrivateInExpression(pos) {
|
|
return {
|
|
type: 'BinaryExpression',
|
|
left: deserializePrivateIdentifier(pos + 8),
|
|
operator: 'in',
|
|
right: deserializeExpression(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeLogicalExpression(pos) {
|
|
return {
|
|
type: 'LogicalExpression',
|
|
left: deserializeExpression(pos + 8),
|
|
operator: deserializeLogicalOperator(pos + 40),
|
|
right: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeConditionalExpression(pos) {
|
|
return {
|
|
type: 'ConditionalExpression',
|
|
test: deserializeExpression(pos + 8),
|
|
consequent: deserializeExpression(pos + 24),
|
|
alternate: deserializeExpression(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAssignmentExpression(pos) {
|
|
return {
|
|
type: 'AssignmentExpression',
|
|
operator: deserializeAssignmentOperator(pos + 40),
|
|
left: deserializeAssignmentTarget(pos + 8),
|
|
right: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeArrayAssignmentTarget(pos) {
|
|
const elements = deserializeVecOptionAssignmentTargetMaybeDefault(pos + 8);
|
|
const rest = deserializeOptionBoxAssignmentTargetRest(pos + 32);
|
|
if (rest !== null) elements.push(rest);
|
|
return {
|
|
type: 'ArrayPattern',
|
|
elements,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeObjectAssignmentTarget(pos) {
|
|
const properties = deserializeVecAssignmentTargetProperty(pos + 8);
|
|
const rest = deserializeOptionBoxAssignmentTargetRest(pos + 32);
|
|
if (rest !== null) properties.push(rest);
|
|
return {
|
|
type: 'ObjectPattern',
|
|
properties,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAssignmentTargetRest(pos) {
|
|
return {
|
|
type: 'RestElement',
|
|
argument: deserializeAssignmentTarget(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAssignmentTargetWithDefault(pos) {
|
|
return {
|
|
type: 'AssignmentPattern',
|
|
left: deserializeAssignmentTarget(pos + 8),
|
|
right: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAssignmentTargetPropertyIdentifier(pos) {
|
|
const key = deserializeIdentifierReference(pos + 8),
|
|
start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4);
|
|
const init = deserializeOptionExpression(pos + 40),
|
|
keyCopy = { ...key },
|
|
value = init === null
|
|
? keyCopy
|
|
: {
|
|
type: 'AssignmentPattern',
|
|
left: keyCopy,
|
|
right: init,
|
|
start: start,
|
|
end: end,
|
|
};
|
|
return {
|
|
type: 'Property',
|
|
kind: 'init',
|
|
key,
|
|
value,
|
|
method: false,
|
|
shorthand: true,
|
|
computed: false,
|
|
start,
|
|
end,
|
|
};
|
|
}
|
|
|
|
function deserializeAssignmentTargetPropertyProperty(pos) {
|
|
return {
|
|
type: 'Property',
|
|
kind: 'init',
|
|
key: deserializePropertyKey(pos + 8),
|
|
value: deserializeAssignmentTargetMaybeDefault(pos + 24),
|
|
method: false,
|
|
shorthand: false,
|
|
computed: deserializeBool(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSequenceExpression(pos) {
|
|
return {
|
|
type: 'SequenceExpression',
|
|
expressions: deserializeVecExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSuper(pos) {
|
|
return {
|
|
type: 'Super',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAwaitExpression(pos) {
|
|
return {
|
|
type: 'AwaitExpression',
|
|
argument: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeChainExpression(pos) {
|
|
return {
|
|
type: 'ChainExpression',
|
|
expression: deserializeChainElement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeParenthesizedExpression(pos) {
|
|
return {
|
|
type: 'ParenthesizedExpression',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeDirective(pos) {
|
|
return {
|
|
type: 'ExpressionStatement',
|
|
expression: deserializeStringLiteral(pos + 8),
|
|
directive: deserializeStr(pos + 56),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeHashbang(pos) {
|
|
return {
|
|
type: 'Hashbang',
|
|
value: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBlockStatement(pos) {
|
|
return {
|
|
type: 'BlockStatement',
|
|
body: deserializeVecStatement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeVariableDeclaration(pos) {
|
|
return {
|
|
type: 'VariableDeclaration',
|
|
kind: deserializeVariableDeclarationKind(pos + 32),
|
|
declarations: deserializeVecVariableDeclarator(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeVariableDeclarator(pos) {
|
|
return {
|
|
type: 'VariableDeclarator',
|
|
id: deserializeBindingPattern(pos + 8),
|
|
init: deserializeOptionExpression(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeEmptyStatement(pos) {
|
|
return {
|
|
type: 'EmptyStatement',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExpressionStatement(pos) {
|
|
return {
|
|
type: 'ExpressionStatement',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeIfStatement(pos) {
|
|
return {
|
|
type: 'IfStatement',
|
|
test: deserializeExpression(pos + 8),
|
|
consequent: deserializeStatement(pos + 24),
|
|
alternate: deserializeOptionStatement(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeDoWhileStatement(pos) {
|
|
return {
|
|
type: 'DoWhileStatement',
|
|
body: deserializeStatement(pos + 8),
|
|
test: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeWhileStatement(pos) {
|
|
return {
|
|
type: 'WhileStatement',
|
|
test: deserializeExpression(pos + 8),
|
|
body: deserializeStatement(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeForStatement(pos) {
|
|
return {
|
|
type: 'ForStatement',
|
|
init: deserializeOptionForStatementInit(pos + 8),
|
|
test: deserializeOptionExpression(pos + 24),
|
|
update: deserializeOptionExpression(pos + 40),
|
|
body: deserializeStatement(pos + 56),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeForInStatement(pos) {
|
|
return {
|
|
type: 'ForInStatement',
|
|
left: deserializeForStatementLeft(pos + 8),
|
|
right: deserializeExpression(pos + 24),
|
|
body: deserializeStatement(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeForOfStatement(pos) {
|
|
return {
|
|
type: 'ForOfStatement',
|
|
await: deserializeBool(pos + 60),
|
|
left: deserializeForStatementLeft(pos + 8),
|
|
right: deserializeExpression(pos + 24),
|
|
body: deserializeStatement(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeContinueStatement(pos) {
|
|
return {
|
|
type: 'ContinueStatement',
|
|
label: deserializeOptionLabelIdentifier(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBreakStatement(pos) {
|
|
return {
|
|
type: 'BreakStatement',
|
|
label: deserializeOptionLabelIdentifier(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeReturnStatement(pos) {
|
|
return {
|
|
type: 'ReturnStatement',
|
|
argument: deserializeOptionExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeWithStatement(pos) {
|
|
return {
|
|
type: 'WithStatement',
|
|
object: deserializeExpression(pos + 8),
|
|
body: deserializeStatement(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSwitchStatement(pos) {
|
|
return {
|
|
type: 'SwitchStatement',
|
|
discriminant: deserializeExpression(pos + 8),
|
|
cases: deserializeVecSwitchCase(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSwitchCase(pos) {
|
|
return {
|
|
type: 'SwitchCase',
|
|
test: deserializeOptionExpression(pos + 8),
|
|
consequent: deserializeVecStatement(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeLabeledStatement(pos) {
|
|
return {
|
|
type: 'LabeledStatement',
|
|
label: deserializeLabelIdentifier(pos + 8),
|
|
body: deserializeStatement(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeThrowStatement(pos) {
|
|
return {
|
|
type: 'ThrowStatement',
|
|
argument: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTryStatement(pos) {
|
|
return {
|
|
type: 'TryStatement',
|
|
block: deserializeBoxBlockStatement(pos + 8),
|
|
handler: deserializeOptionBoxCatchClause(pos + 16),
|
|
finalizer: deserializeOptionBoxBlockStatement(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeCatchClause(pos) {
|
|
return {
|
|
type: 'CatchClause',
|
|
param: deserializeOptionCatchParameter(pos + 8),
|
|
body: deserializeBoxBlockStatement(pos + 48),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeCatchParameter(pos) {
|
|
return deserializeBindingPattern(pos + 8);
|
|
}
|
|
|
|
function deserializeDebuggerStatement(pos) {
|
|
return {
|
|
type: 'DebuggerStatement',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBindingPattern(pos) {
|
|
const pattern = deserializeBindingPatternKind(pos);
|
|
return pattern;
|
|
}
|
|
|
|
function deserializeAssignmentPattern(pos) {
|
|
return {
|
|
type: 'AssignmentPattern',
|
|
left: deserializeBindingPattern(pos + 8),
|
|
right: deserializeExpression(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeObjectPattern(pos) {
|
|
const properties = deserializeVecBindingProperty(pos + 8);
|
|
const rest = deserializeOptionBoxBindingRestElement(pos + 32);
|
|
if (rest !== null) properties.push(rest);
|
|
return {
|
|
type: 'ObjectPattern',
|
|
properties,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBindingProperty(pos) {
|
|
return {
|
|
type: 'Property',
|
|
kind: 'init',
|
|
key: deserializePropertyKey(pos + 8),
|
|
value: deserializeBindingPattern(pos + 24),
|
|
method: false,
|
|
shorthand: deserializeBool(pos + 56),
|
|
computed: deserializeBool(pos + 57),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeArrayPattern(pos) {
|
|
const elements = deserializeVecOptionBindingPattern(pos + 8);
|
|
const rest = deserializeOptionBoxBindingRestElement(pos + 32);
|
|
if (rest !== null) elements.push(rest);
|
|
return {
|
|
type: 'ArrayPattern',
|
|
elements,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBindingRestElement(pos) {
|
|
return {
|
|
type: 'RestElement',
|
|
argument: deserializeBindingPattern(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeFunction(pos) {
|
|
const params = deserializeBoxFormalParameters(pos + 56);
|
|
return {
|
|
type: deserializeFunctionType(pos + 84),
|
|
id: deserializeOptionBindingIdentifier(pos + 8),
|
|
generator: deserializeBool(pos + 85),
|
|
async: deserializeBool(pos + 86),
|
|
params,
|
|
body: deserializeOptionBoxFunctionBody(pos + 72),
|
|
expression: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeFormalParameters(pos) {
|
|
const params = deserializeVecFormalParameter(pos + 8);
|
|
if (uint32[(pos + 32) >> 2] !== 0 && uint32[(pos + 36) >> 2] !== 0) {
|
|
pos = uint32[(pos + 32) >> 2];
|
|
params.push({
|
|
type: 'RestElement',
|
|
argument: deserializeBindingPatternKind(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
});
|
|
}
|
|
return params;
|
|
}
|
|
|
|
function deserializeFormalParameter(pos) {
|
|
return deserializeBindingPatternKind(pos + 32);
|
|
}
|
|
|
|
function deserializeFunctionBody(pos) {
|
|
const body = deserializeVecDirective(pos + 8);
|
|
body.push(...deserializeVecStatement(pos + 32));
|
|
return {
|
|
type: 'BlockStatement',
|
|
body,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeArrowFunctionExpression(pos) {
|
|
const expression = deserializeBool(pos + 44);
|
|
let body = deserializeBoxFunctionBody(pos + 32);
|
|
return {
|
|
type: 'ArrowFunctionExpression',
|
|
expression,
|
|
async: deserializeBool(pos + 45),
|
|
params: deserializeBoxFormalParameters(pos + 16),
|
|
body: expression ? body.body[0].expression : body,
|
|
id: null,
|
|
generator: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeYieldExpression(pos) {
|
|
return {
|
|
type: 'YieldExpression',
|
|
delegate: deserializeBool(pos + 24),
|
|
argument: deserializeOptionExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeClass(pos) {
|
|
return {
|
|
type: deserializeClassType(pos + 132),
|
|
decorators: deserializeVecDecorator(pos + 8),
|
|
id: deserializeOptionBindingIdentifier(pos + 32),
|
|
superClass: deserializeOptionExpression(pos + 72),
|
|
body: deserializeBoxClassBody(pos + 120),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeClassBody(pos) {
|
|
return {
|
|
type: 'ClassBody',
|
|
body: deserializeVecClassElement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeMethodDefinition(pos) {
|
|
return {
|
|
type: deserializeMethodDefinitionType(pos + 56),
|
|
decorators: deserializeVecDecorator(pos + 8),
|
|
key: deserializePropertyKey(pos + 32),
|
|
value: deserializeBoxFunction(pos + 48),
|
|
kind: deserializeMethodDefinitionKind(pos + 57),
|
|
computed: deserializeBool(pos + 58),
|
|
static: deserializeBool(pos + 59),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializePropertyDefinition(pos) {
|
|
return {
|
|
type: deserializePropertyDefinitionType(pos + 72),
|
|
decorators: deserializeVecDecorator(pos + 8),
|
|
key: deserializePropertyKey(pos + 32),
|
|
value: deserializeOptionExpression(pos + 56),
|
|
computed: deserializeBool(pos + 73),
|
|
static: deserializeBool(pos + 74),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializePrivateIdentifier(pos) {
|
|
return {
|
|
type: 'PrivateIdentifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeStaticBlock(pos) {
|
|
return {
|
|
type: 'StaticBlock',
|
|
body: deserializeVecStatement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeAccessorProperty(pos) {
|
|
return {
|
|
type: deserializeAccessorPropertyType(pos + 72),
|
|
decorators: deserializeVecDecorator(pos + 8),
|
|
key: deserializePropertyKey(pos + 32),
|
|
value: deserializeOptionExpression(pos + 56),
|
|
computed: deserializeBool(pos + 73),
|
|
static: deserializeBool(pos + 74),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportExpression(pos) {
|
|
return {
|
|
type: 'ImportExpression',
|
|
source: deserializeExpression(pos + 8),
|
|
options: deserializeOptionExpression(pos + 24),
|
|
phase: deserializeOptionImportPhase(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportDeclaration(pos) {
|
|
let specifiers = deserializeOptionVecImportDeclarationSpecifier(pos + 8);
|
|
if (specifiers === null) specifiers = [];
|
|
const withClause = deserializeOptionBoxWithClause(pos + 80);
|
|
return {
|
|
type: 'ImportDeclaration',
|
|
specifiers,
|
|
source: deserializeStringLiteral(pos + 32),
|
|
phase: deserializeOptionImportPhase(pos + 88),
|
|
attributes: withClause === null ? [] : withClause.attributes,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportSpecifier(pos) {
|
|
return {
|
|
type: 'ImportSpecifier',
|
|
imported: deserializeModuleExportName(pos + 8),
|
|
local: deserializeBindingIdentifier(pos + 64),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportDefaultSpecifier(pos) {
|
|
return {
|
|
type: 'ImportDefaultSpecifier',
|
|
local: deserializeBindingIdentifier(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportNamespaceSpecifier(pos) {
|
|
return {
|
|
type: 'ImportNamespaceSpecifier',
|
|
local: deserializeBindingIdentifier(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeWithClause(pos) {
|
|
return {
|
|
attributes: deserializeVecImportAttribute(pos + 8),
|
|
};
|
|
}
|
|
|
|
function deserializeImportAttribute(pos) {
|
|
return {
|
|
type: 'ImportAttribute',
|
|
key: deserializeImportAttributeKey(pos + 8),
|
|
value: deserializeStringLiteral(pos + 64),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExportNamedDeclaration(pos) {
|
|
const withClause = deserializeOptionBoxWithClause(pos + 96);
|
|
return {
|
|
type: 'ExportNamedDeclaration',
|
|
declaration: deserializeOptionDeclaration(pos + 8),
|
|
specifiers: deserializeVecExportSpecifier(pos + 24),
|
|
source: deserializeOptionStringLiteral(pos + 48),
|
|
attributes: withClause === null ? [] : withClause.attributes,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExportDefaultDeclaration(pos) {
|
|
return {
|
|
type: 'ExportDefaultDeclaration',
|
|
declaration: deserializeExportDefaultDeclarationKind(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExportAllDeclaration(pos) {
|
|
const withClause = deserializeOptionBoxWithClause(pos + 112);
|
|
return {
|
|
type: 'ExportAllDeclaration',
|
|
exported: deserializeOptionModuleExportName(pos + 8),
|
|
source: deserializeStringLiteral(pos + 64),
|
|
attributes: withClause === null ? [] : withClause.attributes,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExportSpecifier(pos) {
|
|
return {
|
|
type: 'ExportSpecifier',
|
|
local: deserializeModuleExportName(pos + 8),
|
|
exported: deserializeModuleExportName(pos + 64),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeV8IntrinsicExpression(pos) {
|
|
return {
|
|
type: 'V8IntrinsicExpression',
|
|
name: deserializeIdentifierName(pos + 8),
|
|
arguments: deserializeVecArgument(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBooleanLiteral(pos) {
|
|
const value = deserializeBool(pos + 8),
|
|
start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4);
|
|
return {
|
|
type: 'Literal',
|
|
value,
|
|
raw: (start === 0 && end === 0) ? null : value + '',
|
|
start,
|
|
end,
|
|
};
|
|
}
|
|
|
|
function deserializeNullLiteral(pos) {
|
|
const start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4);
|
|
return {
|
|
type: 'Literal',
|
|
value: null,
|
|
raw: (start === 0 && end === 0) ? null : 'null',
|
|
start,
|
|
end,
|
|
};
|
|
}
|
|
|
|
function deserializeNumericLiteral(pos) {
|
|
return {
|
|
type: 'Literal',
|
|
value: deserializeF64(pos + 8),
|
|
raw: deserializeOptionStr(pos + 16),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeStringLiteral(pos) {
|
|
let value = deserializeStr(pos + 8);
|
|
if (deserializeBool(pos + 40)) {
|
|
value = value.replace(/\uFFFD(.{4})/g, (_, hex) => String.fromCodePoint(parseInt(hex, 16)));
|
|
}
|
|
return {
|
|
type: 'Literal',
|
|
value,
|
|
raw: deserializeOptionStr(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeBigIntLiteral(pos) {
|
|
const bigint = deserializeStr(pos + 8);
|
|
return {
|
|
type: 'Literal',
|
|
value: BigInt(bigint),
|
|
raw: deserializeOptionStr(pos + 24),
|
|
bigint,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeRegExpLiteral(pos) {
|
|
const regex = deserializeRegExp(pos + 8);
|
|
let value = null;
|
|
try {
|
|
value = new RegExp(regex.pattern, regex.flags);
|
|
} catch (e) {}
|
|
return {
|
|
type: 'Literal',
|
|
value,
|
|
raw: deserializeOptionStr(pos + 40),
|
|
regex,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeRegExp(pos) {
|
|
return {
|
|
pattern: deserializeStr(pos),
|
|
flags: deserializeRegExpFlags(pos + 24),
|
|
};
|
|
}
|
|
|
|
function deserializeRegExpPattern(pos) {
|
|
return {
|
|
pattern: deserializeStr(pos),
|
|
};
|
|
}
|
|
|
|
function deserializeRegExpFlags(pos) {
|
|
const flagBits = deserializeU8(pos);
|
|
let flags = '';
|
|
// Alphabetical order
|
|
if (flagBits & 64) flags += 'd';
|
|
if (flagBits & 1) flags += 'g';
|
|
if (flagBits & 2) flags += 'i';
|
|
if (flagBits & 4) flags += 'm';
|
|
if (flagBits & 8) flags += 's';
|
|
if (flagBits & 16) flags += 'u';
|
|
if (flagBits & 128) flags += 'v';
|
|
if (flagBits & 32) flags += 'y';
|
|
return flags;
|
|
}
|
|
|
|
function deserializeJSXElement(pos) {
|
|
const closingElement = deserializeOptionBoxJSXClosingElement(pos + 40);
|
|
const openingElement = deserializeBoxJSXOpeningElement(pos + 8);
|
|
if (closingElement === null) openingElement.selfClosing = true;
|
|
return {
|
|
type: 'JSXElement',
|
|
openingElement,
|
|
children: deserializeVecJSXChild(pos + 16),
|
|
closingElement,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXOpeningElement(pos) {
|
|
return {
|
|
type: 'JSXOpeningElement',
|
|
name: deserializeJSXElementName(pos + 8),
|
|
attributes: deserializeVecJSXAttributeItem(pos + 32),
|
|
selfClosing: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXClosingElement(pos) {
|
|
return {
|
|
type: 'JSXClosingElement',
|
|
name: deserializeJSXElementName(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXFragment(pos) {
|
|
return {
|
|
type: 'JSXFragment',
|
|
openingFragment: deserializeJSXOpeningFragment(pos + 8),
|
|
children: deserializeVecJSXChild(pos + 16),
|
|
closingFragment: deserializeJSXClosingFragment(pos + 40),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXOpeningFragment(pos) {
|
|
return {
|
|
type: 'JSXOpeningFragment',
|
|
attributes: [],
|
|
selfClosing: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXClosingFragment(pos) {
|
|
return {
|
|
type: 'JSXClosingFragment',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXNamespacedName(pos) {
|
|
return {
|
|
type: 'JSXNamespacedName',
|
|
namespace: deserializeJSXIdentifier(pos + 8),
|
|
name: deserializeJSXIdentifier(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXMemberExpression(pos) {
|
|
return {
|
|
type: 'JSXMemberExpression',
|
|
object: deserializeJSXMemberExpressionObject(pos + 8),
|
|
property: deserializeJSXIdentifier(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXExpressionContainer(pos) {
|
|
return {
|
|
type: 'JSXExpressionContainer',
|
|
expression: deserializeJSXExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXEmptyExpression(pos) {
|
|
return {
|
|
type: 'JSXEmptyExpression',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXAttribute(pos) {
|
|
return {
|
|
type: 'JSXAttribute',
|
|
name: deserializeJSXAttributeName(pos + 8),
|
|
value: deserializeOptionJSXAttributeValue(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXSpreadAttribute(pos) {
|
|
return {
|
|
type: 'JSXSpreadAttribute',
|
|
argument: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXIdentifier(pos) {
|
|
return {
|
|
type: 'JSXIdentifier',
|
|
name: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXSpreadChild(pos) {
|
|
return {
|
|
type: 'JSXSpreadChild',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSXText(pos) {
|
|
return {
|
|
type: 'JSXText',
|
|
value: deserializeStr(pos + 8),
|
|
raw: deserializeOptionStr(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSThisParameter(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
decorators: [],
|
|
name: 'this',
|
|
optional: false,
|
|
typeAnnotation: deserializeOptionBoxTSTypeAnnotation(pos + 16),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSEnumDeclaration(pos) {
|
|
return {
|
|
type: 'TSEnumDeclaration',
|
|
id: deserializeBindingIdentifier(pos + 8),
|
|
body: deserializeTSEnumBody(pos + 40),
|
|
const: deserializeBool(pos + 76),
|
|
declare: deserializeBool(pos + 77),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSEnumBody(pos) {
|
|
return {
|
|
type: 'TSEnumBody',
|
|
members: deserializeVecTSEnumMember(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSEnumMember(pos) {
|
|
return {
|
|
type: 'TSEnumMember',
|
|
id: deserializeTSEnumMemberName(pos + 8),
|
|
initializer: deserializeOptionExpression(pos + 24),
|
|
computed: deserializeU8(pos + 8) > 1,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeAnnotation(pos) {
|
|
return {
|
|
type: 'TSTypeAnnotation',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSLiteralType(pos) {
|
|
return {
|
|
type: 'TSLiteralType',
|
|
literal: deserializeTSLiteral(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSConditionalType(pos) {
|
|
return {
|
|
type: 'TSConditionalType',
|
|
checkType: deserializeTSType(pos + 8),
|
|
extendsType: deserializeTSType(pos + 24),
|
|
trueType: deserializeTSType(pos + 40),
|
|
falseType: deserializeTSType(pos + 56),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSUnionType(pos) {
|
|
return {
|
|
type: 'TSUnionType',
|
|
types: deserializeVecTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSIntersectionType(pos) {
|
|
return {
|
|
type: 'TSIntersectionType',
|
|
types: deserializeVecTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSParenthesizedType(pos) {
|
|
return {
|
|
type: 'TSParenthesizedType',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeOperator(pos) {
|
|
return {
|
|
type: 'TSTypeOperator',
|
|
operator: deserializeTSTypeOperatorOperator(pos + 24),
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSArrayType(pos) {
|
|
return {
|
|
type: 'TSArrayType',
|
|
elementType: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSIndexedAccessType(pos) {
|
|
return {
|
|
type: 'TSIndexedAccessType',
|
|
objectType: deserializeTSType(pos + 8),
|
|
indexType: deserializeTSType(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTupleType(pos) {
|
|
return {
|
|
type: 'TSTupleType',
|
|
elementTypes: deserializeVecTSTupleElement(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNamedTupleMember(pos) {
|
|
return {
|
|
type: 'TSNamedTupleMember',
|
|
label: deserializeIdentifierName(pos + 8),
|
|
elementType: deserializeTSTupleElement(pos + 32),
|
|
optional: deserializeBool(pos + 48),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSOptionalType(pos) {
|
|
return {
|
|
type: 'TSOptionalType',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSRestType(pos) {
|
|
return {
|
|
type: 'TSRestType',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSAnyKeyword(pos) {
|
|
return {
|
|
type: 'TSAnyKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSStringKeyword(pos) {
|
|
return {
|
|
type: 'TSStringKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSBooleanKeyword(pos) {
|
|
return {
|
|
type: 'TSBooleanKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNumberKeyword(pos) {
|
|
return {
|
|
type: 'TSNumberKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNeverKeyword(pos) {
|
|
return {
|
|
type: 'TSNeverKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSIntrinsicKeyword(pos) {
|
|
return {
|
|
type: 'TSIntrinsicKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSUnknownKeyword(pos) {
|
|
return {
|
|
type: 'TSUnknownKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNullKeyword(pos) {
|
|
return {
|
|
type: 'TSNullKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSUndefinedKeyword(pos) {
|
|
return {
|
|
type: 'TSUndefinedKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSVoidKeyword(pos) {
|
|
return {
|
|
type: 'TSVoidKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSSymbolKeyword(pos) {
|
|
return {
|
|
type: 'TSSymbolKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSThisType(pos) {
|
|
return {
|
|
type: 'TSThisType',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSObjectKeyword(pos) {
|
|
return {
|
|
type: 'TSObjectKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSBigIntKeyword(pos) {
|
|
return {
|
|
type: 'TSBigIntKeyword',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeReference(pos) {
|
|
return {
|
|
type: 'TSTypeReference',
|
|
typeName: deserializeTSTypeName(pos + 8),
|
|
typeArguments: deserializeOptionBoxTSTypeParameterInstantiation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSQualifiedName(pos) {
|
|
return {
|
|
type: 'TSQualifiedName',
|
|
left: deserializeTSTypeName(pos + 8),
|
|
right: deserializeIdentifierName(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeParameterInstantiation(pos) {
|
|
return {
|
|
type: 'TSTypeParameterInstantiation',
|
|
params: deserializeVecTSType(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeParameter(pos) {
|
|
return {
|
|
type: 'TSTypeParameter',
|
|
name: deserializeBindingIdentifier(pos + 8),
|
|
constraint: deserializeOptionTSType(pos + 40),
|
|
default: deserializeOptionTSType(pos + 56),
|
|
in: deserializeBool(pos + 72),
|
|
out: deserializeBool(pos + 73),
|
|
const: deserializeBool(pos + 74),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeParameterDeclaration(pos) {
|
|
return {
|
|
type: 'TSTypeParameterDeclaration',
|
|
params: deserializeVecTSTypeParameter(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeAliasDeclaration(pos) {
|
|
return {
|
|
type: 'TSTypeAliasDeclaration',
|
|
id: deserializeBindingIdentifier(pos + 8),
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 40),
|
|
typeAnnotation: deserializeTSType(pos + 48),
|
|
declare: deserializeBool(pos + 68),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSClassImplements(pos) {
|
|
let expression = deserializeTSTypeName(pos + 8);
|
|
if (expression.type === 'TSQualifiedName') {
|
|
let object = expression.left;
|
|
let parent = expression = {
|
|
type: 'MemberExpression',
|
|
object,
|
|
property: expression.right,
|
|
optional: false,
|
|
computed: false,
|
|
start: expression.start,
|
|
end: expression.end,
|
|
};
|
|
|
|
while (object.type === 'TSQualifiedName') {
|
|
const { left } = object;
|
|
parent = parent.object = {
|
|
type: 'MemberExpression',
|
|
object: left,
|
|
property: object.right,
|
|
optional: false,
|
|
computed: false,
|
|
start: object.start,
|
|
end: object.end,
|
|
};
|
|
object = left;
|
|
}
|
|
}
|
|
return {
|
|
type: 'TSClassImplements',
|
|
expression,
|
|
typeArguments: deserializeOptionBoxTSTypeParameterInstantiation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSInterfaceDeclaration(pos) {
|
|
return {
|
|
type: 'TSInterfaceDeclaration',
|
|
id: deserializeBindingIdentifier(pos + 8),
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 40),
|
|
extends: deserializeVecTSInterfaceHeritage(pos + 48),
|
|
body: deserializeBoxTSInterfaceBody(pos + 72),
|
|
declare: deserializeBool(pos + 84),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSInterfaceBody(pos) {
|
|
return {
|
|
type: 'TSInterfaceBody',
|
|
body: deserializeVecTSSignature(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSPropertySignature(pos) {
|
|
return {
|
|
type: 'TSPropertySignature',
|
|
computed: deserializeBool(pos + 32),
|
|
optional: deserializeBool(pos + 33),
|
|
readonly: deserializeBool(pos + 34),
|
|
key: deserializePropertyKey(pos + 8),
|
|
typeAnnotation: deserializeOptionBoxTSTypeAnnotation(pos + 24),
|
|
accessibility: null,
|
|
static: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSIndexSignature(pos) {
|
|
return {
|
|
type: 'TSIndexSignature',
|
|
parameters: deserializeVecTSIndexSignatureName(pos + 8),
|
|
typeAnnotation: deserializeBoxTSTypeAnnotation(pos + 32),
|
|
readonly: deserializeBool(pos + 40),
|
|
static: deserializeBool(pos + 41),
|
|
accessibility: null,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSCallSignatureDeclaration(pos) {
|
|
const params = deserializeBoxFormalParameters(pos + 24);
|
|
const thisParam = deserializeOptionBoxTSThisParameter(pos + 16);
|
|
if (thisParam !== null) params.unshift(thisParam);
|
|
return {
|
|
type: 'TSCallSignatureDeclaration',
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 8),
|
|
params,
|
|
returnType: deserializeOptionBoxTSTypeAnnotation(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSMethodSignature(pos) {
|
|
const params = deserializeBoxFormalParameters(pos + 40);
|
|
const thisParam = deserializeOptionBoxTSThisParameter(pos + 32);
|
|
if (thisParam !== null) params.unshift(thisParam);
|
|
return {
|
|
type: 'TSMethodSignature',
|
|
key: deserializePropertyKey(pos + 8),
|
|
computed: deserializeBool(pos + 60),
|
|
optional: deserializeBool(pos + 61),
|
|
kind: deserializeTSMethodSignatureKind(pos + 62),
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 24),
|
|
params,
|
|
returnType: deserializeOptionBoxTSTypeAnnotation(pos + 48),
|
|
accessibility: null,
|
|
readonly: false,
|
|
static: false,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSConstructSignatureDeclaration(pos) {
|
|
return {
|
|
type: 'TSConstructSignatureDeclaration',
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 8),
|
|
params: deserializeBoxFormalParameters(pos + 16),
|
|
returnType: deserializeOptionBoxTSTypeAnnotation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSIndexSignatureName(pos) {
|
|
return {
|
|
type: 'Identifier',
|
|
decorators: [],
|
|
name: deserializeStr(pos + 8),
|
|
optional: false,
|
|
typeAnnotation: deserializeBoxTSTypeAnnotation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSInterfaceHeritage(pos) {
|
|
return {
|
|
type: 'TSInterfaceHeritage',
|
|
expression: deserializeExpression(pos + 8),
|
|
typeArguments: deserializeOptionBoxTSTypeParameterInstantiation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypePredicate(pos) {
|
|
return {
|
|
type: 'TSTypePredicate',
|
|
parameterName: deserializeTSTypePredicateName(pos + 8),
|
|
asserts: deserializeBool(pos + 32),
|
|
typeAnnotation: deserializeOptionBoxTSTypeAnnotation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSModuleDeclaration(pos) {
|
|
const kind = deserializeTSModuleDeclarationKind(pos + 84),
|
|
global = kind === 'global',
|
|
start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4),
|
|
declare = deserializeBool(pos + 85);
|
|
let id = deserializeTSModuleDeclarationName(pos + 8),
|
|
body = deserializeOptionTSModuleDeclarationBody(pos + 64);
|
|
|
|
// Flatten `body`, and nest `id`
|
|
if (body !== null && body.type === 'TSModuleDeclaration') {
|
|
let innerId = body.id;
|
|
if (innerId.type === 'Identifier') {
|
|
id = {
|
|
type: 'TSQualifiedName',
|
|
left: id,
|
|
right: innerId,
|
|
start: id.start,
|
|
end: innerId.end,
|
|
};
|
|
} else {
|
|
// Replace `left` of innermost `TSQualifiedName` with a nested `TSQualifiedName` with `id` of
|
|
// this module on left, and previous `left` of innermost `TSQualifiedName` on right
|
|
while (true) {
|
|
innerId.start = id.start;
|
|
if (innerId.left.type === 'Identifier') break;
|
|
innerId = innerId.left;
|
|
}
|
|
innerId.left = {
|
|
type: 'TSQualifiedName',
|
|
left: id,
|
|
right: innerId.left,
|
|
start: id.start,
|
|
end: innerId.left.end,
|
|
};
|
|
id = body.id;
|
|
}
|
|
body = Object.hasOwn(body, 'body') ? body.body : null;
|
|
}
|
|
|
|
// Skip `body` field if `null`
|
|
const node = body === null
|
|
? { type: 'TSModuleDeclaration', id, kind, declare, global, start, end }
|
|
: { type: 'TSModuleDeclaration', id, body, kind, declare, global, start, end };
|
|
return node;
|
|
}
|
|
|
|
function deserializeTSModuleBlock(pos) {
|
|
const body = deserializeVecDirective(pos + 8);
|
|
body.push(...deserializeVecStatement(pos + 32));
|
|
return {
|
|
type: 'TSModuleBlock',
|
|
body,
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeLiteral(pos) {
|
|
return {
|
|
type: 'TSTypeLiteral',
|
|
members: deserializeVecTSSignature(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSInferType(pos) {
|
|
return {
|
|
type: 'TSInferType',
|
|
typeParameter: deserializeBoxTSTypeParameter(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeQuery(pos) {
|
|
return {
|
|
type: 'TSTypeQuery',
|
|
exprName: deserializeTSTypeQueryExprName(pos + 8),
|
|
typeArguments: deserializeOptionBoxTSTypeParameterInstantiation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSImportType(pos) {
|
|
return {
|
|
type: 'TSImportType',
|
|
argument: deserializeTSType(pos + 8),
|
|
options: deserializeOptionBoxObjectExpression(pos + 24),
|
|
qualifier: deserializeOptionTSImportTypeQualifier(pos + 32),
|
|
typeArguments: deserializeOptionBoxTSTypeParameterInstantiation(pos + 48),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSImportTypeQualifiedName(pos) {
|
|
return {
|
|
type: 'TSQualifiedName',
|
|
left: deserializeTSImportTypeQualifier(pos + 8),
|
|
right: deserializeIdentifierName(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSFunctionType(pos) {
|
|
const params = deserializeBoxFormalParameters(pos + 24);
|
|
const thisParam = deserializeOptionBoxTSThisParameter(pos + 16);
|
|
if (thisParam !== null) params.unshift(thisParam);
|
|
return {
|
|
type: 'TSFunctionType',
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 8),
|
|
params,
|
|
returnType: deserializeBoxTSTypeAnnotation(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSConstructorType(pos) {
|
|
return {
|
|
type: 'TSConstructorType',
|
|
abstract: deserializeBool(pos + 32),
|
|
typeParameters: deserializeOptionBoxTSTypeParameterDeclaration(pos + 8),
|
|
params: deserializeBoxFormalParameters(pos + 16),
|
|
returnType: deserializeBoxTSTypeAnnotation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSMappedType(pos) {
|
|
const typeParameter = deserializeBoxTSTypeParameter(pos + 8);
|
|
let optional = deserializeOptionTSMappedTypeModifierOperator(pos + 52);
|
|
if (optional === null) optional = false;
|
|
return {
|
|
type: 'TSMappedType',
|
|
key: typeParameter.name,
|
|
constraint: typeParameter.constraint,
|
|
nameType: deserializeOptionTSType(pos + 16),
|
|
typeAnnotation: deserializeOptionTSType(pos + 32),
|
|
optional,
|
|
readonly: deserializeOptionTSMappedTypeModifierOperator(pos + 53),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTemplateLiteralType(pos) {
|
|
return {
|
|
type: 'TSTemplateLiteralType',
|
|
quasis: deserializeVecTemplateElement(pos + 8),
|
|
types: deserializeVecTSType(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSAsExpression(pos) {
|
|
return {
|
|
type: 'TSAsExpression',
|
|
expression: deserializeExpression(pos + 8),
|
|
typeAnnotation: deserializeTSType(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSSatisfiesExpression(pos) {
|
|
return {
|
|
type: 'TSSatisfiesExpression',
|
|
expression: deserializeExpression(pos + 8),
|
|
typeAnnotation: deserializeTSType(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSTypeAssertion(pos) {
|
|
return {
|
|
type: 'TSTypeAssertion',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
expression: deserializeExpression(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSImportEqualsDeclaration(pos) {
|
|
return {
|
|
type: 'TSImportEqualsDeclaration',
|
|
id: deserializeBindingIdentifier(pos + 8),
|
|
moduleReference: deserializeTSModuleReference(pos + 40),
|
|
importKind: deserializeImportOrExportKind(pos + 56),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSExternalModuleReference(pos) {
|
|
return {
|
|
type: 'TSExternalModuleReference',
|
|
expression: deserializeStringLiteral(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNonNullExpression(pos) {
|
|
return {
|
|
type: 'TSNonNullExpression',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeDecorator(pos) {
|
|
return {
|
|
type: 'Decorator',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSExportAssignment(pos) {
|
|
return {
|
|
type: 'TSExportAssignment',
|
|
expression: deserializeExpression(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSNamespaceExportDeclaration(pos) {
|
|
return {
|
|
type: 'TSNamespaceExportDeclaration',
|
|
id: deserializeIdentifierName(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeTSInstantiationExpression(pos) {
|
|
return {
|
|
type: 'TSInstantiationExpression',
|
|
expression: deserializeExpression(pos + 8),
|
|
typeArguments: deserializeBoxTSTypeParameterInstantiation(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSDocNullableType(pos) {
|
|
return {
|
|
type: 'TSJSDocNullableType',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
postfix: deserializeBool(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSDocNonNullableType(pos) {
|
|
return {
|
|
type: 'TSJSDocNonNullableType',
|
|
typeAnnotation: deserializeTSType(pos + 8),
|
|
postfix: deserializeBool(pos + 24),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeJSDocUnknownType(pos) {
|
|
return {
|
|
type: 'TSJSDocUnknownType',
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeComment(pos) {
|
|
const type = deserializeCommentKind(pos + 12),
|
|
start = deserializeU32(pos),
|
|
end = deserializeU32(pos + 4);
|
|
const endCut = type === 'Line' ? 0 : 2;
|
|
return {
|
|
type,
|
|
value: sourceText.slice(start + 2, end - endCut),
|
|
start,
|
|
end,
|
|
};
|
|
}
|
|
|
|
function deserializeNameSpan(pos) {
|
|
return {
|
|
value: deserializeStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeImportEntry(pos) {
|
|
return {
|
|
importName: deserializeImportImportName(pos + 32),
|
|
localName: deserializeNameSpan(pos + 64),
|
|
isType: deserializeBool(pos + 88),
|
|
};
|
|
}
|
|
|
|
function deserializeExportEntry(pos) {
|
|
return {
|
|
moduleRequest: deserializeOptionNameSpan(pos + 16),
|
|
importName: deserializeExportImportName(pos + 40),
|
|
exportName: deserializeExportExportName(pos + 72),
|
|
localName: deserializeExportLocalName(pos + 104),
|
|
isType: deserializeBool(pos + 136),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeDynamicImport(pos) {
|
|
return {
|
|
moduleRequest: deserializeSpan(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSpan(pos) {
|
|
return {
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeSourceType(pos) {
|
|
return {
|
|
sourceType: deserializeModuleKind(pos + 1),
|
|
};
|
|
}
|
|
|
|
function deserializeRawTransferData(pos) {
|
|
return {
|
|
program: deserializeProgram(pos),
|
|
comments: deserializeVecComment(pos + 128),
|
|
module: deserializeEcmaScriptModule(pos + 152),
|
|
errors: deserializeVecError(pos + 256),
|
|
};
|
|
}
|
|
|
|
function deserializeError(pos) {
|
|
return {
|
|
severity: deserializeErrorSeverity(pos + 72),
|
|
message: deserializeStr(pos),
|
|
labels: deserializeVecErrorLabel(pos + 16),
|
|
helpMessage: deserializeOptionStr(pos + 40),
|
|
codeframe: deserializeStr(pos + 56),
|
|
};
|
|
}
|
|
|
|
function deserializeErrorLabel(pos) {
|
|
return {
|
|
message: deserializeOptionStr(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeEcmaScriptModule(pos) {
|
|
return {
|
|
hasModuleSyntax: deserializeBool(pos + 96),
|
|
staticImports: deserializeVecStaticImport(pos),
|
|
staticExports: deserializeVecStaticExport(pos + 24),
|
|
dynamicImports: deserializeVecDynamicImport(pos + 48),
|
|
importMetas: deserializeVecSpan(pos + 72),
|
|
};
|
|
}
|
|
|
|
function deserializeStaticImport(pos) {
|
|
return {
|
|
moduleRequest: deserializeNameSpan(pos + 8),
|
|
entries: deserializeVecImportEntry(pos + 32),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeStaticExport(pos) {
|
|
return {
|
|
entries: deserializeVecExportEntry(pos + 8),
|
|
start: deserializeU32(pos),
|
|
end: deserializeU32(pos + 4),
|
|
};
|
|
}
|
|
|
|
function deserializeExpression(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for Expression`);
|
|
}
|
|
}
|
|
|
|
function deserializeArrayExpressionElement(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeBoxSpreadElement(pos + 8);
|
|
case 65:
|
|
return deserializeElision(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ArrayExpressionElement`);
|
|
}
|
|
}
|
|
|
|
function deserializeObjectPropertyKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxObjectProperty(pos + 8);
|
|
case 1:
|
|
return deserializeBoxSpreadElement(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ObjectPropertyKind`);
|
|
}
|
|
}
|
|
|
|
function deserializePropertyKey(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeBoxIdentifierName(pos + 8);
|
|
case 65:
|
|
return deserializeBoxPrivateIdentifier(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for PropertyKey`);
|
|
}
|
|
}
|
|
|
|
function deserializePropertyKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'init';
|
|
case 1:
|
|
return 'get';
|
|
case 2:
|
|
return 'set';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for PropertyKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeMemberExpression(pos) {
|
|
switch (uint8[pos]) {
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for MemberExpression`);
|
|
}
|
|
}
|
|
|
|
function deserializeArgument(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeBoxSpreadElement(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for Argument`);
|
|
}
|
|
}
|
|
|
|
function deserializeAssignmentTarget(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 8:
|
|
return deserializeBoxArrayAssignmentTarget(pos + 8);
|
|
case 9:
|
|
return deserializeBoxObjectAssignmentTarget(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTarget`);
|
|
}
|
|
}
|
|
|
|
function deserializeSimpleAssignmentTarget(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for SimpleAssignmentTarget`);
|
|
}
|
|
}
|
|
|
|
function deserializeAssignmentTargetPattern(pos) {
|
|
switch (uint8[pos]) {
|
|
case 8:
|
|
return deserializeBoxArrayAssignmentTarget(pos + 8);
|
|
case 9:
|
|
return deserializeBoxObjectAssignmentTarget(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTargetPattern`);
|
|
}
|
|
}
|
|
|
|
function deserializeAssignmentTargetMaybeDefault(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 8:
|
|
return deserializeBoxArrayAssignmentTarget(pos + 8);
|
|
case 9:
|
|
return deserializeBoxObjectAssignmentTarget(pos + 8);
|
|
case 16:
|
|
return deserializeBoxAssignmentTargetWithDefault(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTargetMaybeDefault`);
|
|
}
|
|
}
|
|
|
|
function deserializeAssignmentTargetProperty(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxAssignmentTargetPropertyIdentifier(pos + 8);
|
|
case 1:
|
|
return deserializeBoxAssignmentTargetPropertyProperty(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AssignmentTargetProperty`);
|
|
}
|
|
}
|
|
|
|
function deserializeChainElement(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ChainElement`);
|
|
}
|
|
}
|
|
|
|
function deserializeStatement(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBlockStatement(pos + 8);
|
|
case 1:
|
|
return deserializeBoxBreakStatement(pos + 8);
|
|
case 2:
|
|
return deserializeBoxContinueStatement(pos + 8);
|
|
case 3:
|
|
return deserializeBoxDebuggerStatement(pos + 8);
|
|
case 4:
|
|
return deserializeBoxDoWhileStatement(pos + 8);
|
|
case 5:
|
|
return deserializeBoxEmptyStatement(pos + 8);
|
|
case 6:
|
|
return deserializeBoxExpressionStatement(pos + 8);
|
|
case 7:
|
|
return deserializeBoxForInStatement(pos + 8);
|
|
case 8:
|
|
return deserializeBoxForOfStatement(pos + 8);
|
|
case 9:
|
|
return deserializeBoxForStatement(pos + 8);
|
|
case 10:
|
|
return deserializeBoxIfStatement(pos + 8);
|
|
case 11:
|
|
return deserializeBoxLabeledStatement(pos + 8);
|
|
case 12:
|
|
return deserializeBoxReturnStatement(pos + 8);
|
|
case 13:
|
|
return deserializeBoxSwitchStatement(pos + 8);
|
|
case 14:
|
|
return deserializeBoxThrowStatement(pos + 8);
|
|
case 15:
|
|
return deserializeBoxTryStatement(pos + 8);
|
|
case 16:
|
|
return deserializeBoxWhileStatement(pos + 8);
|
|
case 17:
|
|
return deserializeBoxWithStatement(pos + 8);
|
|
case 32:
|
|
return deserializeBoxVariableDeclaration(pos + 8);
|
|
case 33:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 34:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSTypeAliasDeclaration(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSInterfaceDeclaration(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSEnumDeclaration(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSModuleDeclaration(pos + 8);
|
|
case 39:
|
|
return deserializeBoxTSImportEqualsDeclaration(pos + 8);
|
|
case 64:
|
|
return deserializeBoxImportDeclaration(pos + 8);
|
|
case 65:
|
|
return deserializeBoxExportAllDeclaration(pos + 8);
|
|
case 66:
|
|
return deserializeBoxExportDefaultDeclaration(pos + 8);
|
|
case 67:
|
|
return deserializeBoxExportNamedDeclaration(pos + 8);
|
|
case 68:
|
|
return deserializeBoxTSExportAssignment(pos + 8);
|
|
case 69:
|
|
return deserializeBoxTSNamespaceExportDeclaration(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for Statement`);
|
|
}
|
|
}
|
|
|
|
function deserializeDeclaration(pos) {
|
|
switch (uint8[pos]) {
|
|
case 32:
|
|
return deserializeBoxVariableDeclaration(pos + 8);
|
|
case 33:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 34:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSTypeAliasDeclaration(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSInterfaceDeclaration(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSEnumDeclaration(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSModuleDeclaration(pos + 8);
|
|
case 39:
|
|
return deserializeBoxTSImportEqualsDeclaration(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for Declaration`);
|
|
}
|
|
}
|
|
|
|
function deserializeVariableDeclarationKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'var';
|
|
case 1:
|
|
return 'let';
|
|
case 2:
|
|
return 'const';
|
|
case 3:
|
|
return 'using';
|
|
case 4:
|
|
return 'await using';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for VariableDeclarationKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeForStatementInit(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeBoxVariableDeclaration(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ForStatementInit`);
|
|
}
|
|
}
|
|
|
|
function deserializeForStatementLeft(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 8:
|
|
return deserializeBoxArrayAssignmentTarget(pos + 8);
|
|
case 9:
|
|
return deserializeBoxObjectAssignmentTarget(pos + 8);
|
|
case 16:
|
|
return deserializeBoxVariableDeclaration(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ForStatementLeft`);
|
|
}
|
|
}
|
|
|
|
function deserializeBindingPatternKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBindingIdentifier(pos + 8);
|
|
case 1:
|
|
return deserializeBoxObjectPattern(pos + 8);
|
|
case 2:
|
|
return deserializeBoxArrayPattern(pos + 8);
|
|
case 3:
|
|
return deserializeBoxAssignmentPattern(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for BindingPatternKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeFunctionType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'FunctionDeclaration';
|
|
case 1:
|
|
return 'FunctionExpression';
|
|
case 2:
|
|
return 'TSDeclareFunction';
|
|
case 3:
|
|
return 'TSEmptyBodyFunctionExpression';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for FunctionType`);
|
|
}
|
|
}
|
|
|
|
function deserializeFormalParameterKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'FormalParameter';
|
|
case 1:
|
|
return 'UniqueFormalParameters';
|
|
case 2:
|
|
return 'ArrowFormalParameters';
|
|
case 3:
|
|
return 'Signature';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for FormalParameterKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeClassType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'ClassDeclaration';
|
|
case 1:
|
|
return 'ClassExpression';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ClassType`);
|
|
}
|
|
}
|
|
|
|
function deserializeClassElement(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxStaticBlock(pos + 8);
|
|
case 1:
|
|
return deserializeBoxMethodDefinition(pos + 8);
|
|
case 2:
|
|
return deserializeBoxPropertyDefinition(pos + 8);
|
|
case 3:
|
|
return deserializeBoxAccessorProperty(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSIndexSignature(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ClassElement`);
|
|
}
|
|
}
|
|
|
|
function deserializeMethodDefinitionType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'MethodDefinition';
|
|
case 1:
|
|
return 'TSAbstractMethodDefinition';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionType`);
|
|
}
|
|
}
|
|
|
|
function deserializePropertyDefinitionType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'PropertyDefinition';
|
|
case 1:
|
|
return 'TSAbstractPropertyDefinition';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for PropertyDefinitionType`);
|
|
}
|
|
}
|
|
|
|
function deserializeMethodDefinitionKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'constructor';
|
|
case 1:
|
|
return 'method';
|
|
case 2:
|
|
return 'get';
|
|
case 3:
|
|
return 'set';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for MethodDefinitionKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeModuleDeclaration(pos) {
|
|
switch (uint8[pos]) {
|
|
case 64:
|
|
return deserializeBoxImportDeclaration(pos + 8);
|
|
case 65:
|
|
return deserializeBoxExportAllDeclaration(pos + 8);
|
|
case 66:
|
|
return deserializeBoxExportDefaultDeclaration(pos + 8);
|
|
case 67:
|
|
return deserializeBoxExportNamedDeclaration(pos + 8);
|
|
case 68:
|
|
return deserializeBoxTSExportAssignment(pos + 8);
|
|
case 69:
|
|
return deserializeBoxTSNamespaceExportDeclaration(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ModuleDeclaration`);
|
|
}
|
|
}
|
|
|
|
function deserializeAccessorPropertyType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'AccessorProperty';
|
|
case 1:
|
|
return 'TSAbstractAccessorProperty';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AccessorPropertyType`);
|
|
}
|
|
}
|
|
|
|
function deserializeImportPhase(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'source';
|
|
case 1:
|
|
return 'defer';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ImportPhase`);
|
|
}
|
|
}
|
|
|
|
function deserializeImportDeclarationSpecifier(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxImportSpecifier(pos + 8);
|
|
case 1:
|
|
return deserializeBoxImportDefaultSpecifier(pos + 8);
|
|
case 2:
|
|
return deserializeBoxImportNamespaceSpecifier(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ImportDeclarationSpecifier`);
|
|
}
|
|
}
|
|
|
|
function deserializeImportAttributeKey(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeIdentifierName(pos + 8);
|
|
case 1:
|
|
return deserializeStringLiteral(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ImportAttributeKey`);
|
|
}
|
|
}
|
|
|
|
function deserializeExportDefaultDeclarationKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 65:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 66:
|
|
return deserializeBoxTSInterfaceDeclaration(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ExportDefaultDeclarationKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeModuleExportName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeIdentifierName(pos + 8);
|
|
case 1:
|
|
return deserializeIdentifierReference(pos + 8);
|
|
case 2:
|
|
return deserializeStringLiteral(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ModuleExportName`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXElementName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxJSXIdentifier(pos + 8);
|
|
case 1:
|
|
const ident = deserializeBoxIdentifierReference(pos + 8);
|
|
return { type: 'JSXIdentifier', name: ident.name, start: ident.start, end: ident.end };
|
|
case 2:
|
|
return deserializeBoxJSXNamespacedName(pos + 8);
|
|
case 3:
|
|
return deserializeBoxJSXMemberExpression(pos + 8);
|
|
case 4:
|
|
const thisExpr = deserializeBoxThisExpression(pos + 8);
|
|
return { type: 'JSXIdentifier', name: 'this', start: thisExpr.start, end: thisExpr.end };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXElementName`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXMemberExpressionObject(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
const ident = deserializeBoxIdentifierReference(pos + 8);
|
|
return { type: 'JSXIdentifier', name: ident.name, start: ident.start, end: ident.end };
|
|
case 1:
|
|
return deserializeBoxJSXMemberExpression(pos + 8);
|
|
case 2:
|
|
const thisExpr = deserializeBoxThisExpression(pos + 8);
|
|
return { type: 'JSXIdentifier', name: 'this', start: thisExpr.start, end: thisExpr.end };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXMemberExpressionObject`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXExpression(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNullLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxRegExpLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 7:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 8:
|
|
return deserializeBoxMetaProperty(pos + 8);
|
|
case 9:
|
|
return deserializeBoxSuper(pos + 8);
|
|
case 10:
|
|
return deserializeBoxArrayExpression(pos + 8);
|
|
case 11:
|
|
return deserializeBoxArrowFunctionExpression(pos + 8);
|
|
case 12:
|
|
return deserializeBoxAssignmentExpression(pos + 8);
|
|
case 13:
|
|
return deserializeBoxAwaitExpression(pos + 8);
|
|
case 14:
|
|
return deserializeBoxBinaryExpression(pos + 8);
|
|
case 15:
|
|
return deserializeBoxCallExpression(pos + 8);
|
|
case 16:
|
|
return deserializeBoxChainExpression(pos + 8);
|
|
case 17:
|
|
return deserializeBoxClass(pos + 8);
|
|
case 18:
|
|
return deserializeBoxConditionalExpression(pos + 8);
|
|
case 19:
|
|
return deserializeBoxFunction(pos + 8);
|
|
case 20:
|
|
return deserializeBoxImportExpression(pos + 8);
|
|
case 21:
|
|
return deserializeBoxLogicalExpression(pos + 8);
|
|
case 22:
|
|
return deserializeBoxNewExpression(pos + 8);
|
|
case 23:
|
|
return deserializeBoxObjectExpression(pos + 8);
|
|
case 24:
|
|
return deserializeBoxParenthesizedExpression(pos + 8);
|
|
case 25:
|
|
return deserializeBoxSequenceExpression(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTaggedTemplateExpression(pos + 8);
|
|
case 27:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 28:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
case 29:
|
|
return deserializeBoxUpdateExpression(pos + 8);
|
|
case 30:
|
|
return deserializeBoxYieldExpression(pos + 8);
|
|
case 31:
|
|
return deserializeBoxPrivateInExpression(pos + 8);
|
|
case 32:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 33:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSAsExpression(pos + 8);
|
|
case 35:
|
|
return deserializeBoxTSSatisfiesExpression(pos + 8);
|
|
case 36:
|
|
return deserializeBoxTSTypeAssertion(pos + 8);
|
|
case 37:
|
|
return deserializeBoxTSNonNullExpression(pos + 8);
|
|
case 38:
|
|
return deserializeBoxTSInstantiationExpression(pos + 8);
|
|
case 39:
|
|
return deserializeBoxV8IntrinsicExpression(pos + 8);
|
|
case 48:
|
|
return deserializeBoxComputedMemberExpression(pos + 8);
|
|
case 49:
|
|
return deserializeBoxStaticMemberExpression(pos + 8);
|
|
case 50:
|
|
return deserializeBoxPrivateFieldExpression(pos + 8);
|
|
case 64:
|
|
return deserializeJSXEmptyExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXExpression`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXAttributeItem(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxJSXAttribute(pos + 8);
|
|
case 1:
|
|
return deserializeBoxJSXSpreadAttribute(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeItem`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXAttributeName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxJSXIdentifier(pos + 8);
|
|
case 1:
|
|
return deserializeBoxJSXNamespacedName(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeName`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXAttributeValue(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxJSXExpressionContainer(pos + 8);
|
|
case 2:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 3:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXAttributeValue`);
|
|
}
|
|
}
|
|
|
|
function deserializeJSXChild(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxJSXText(pos + 8);
|
|
case 1:
|
|
return deserializeBoxJSXElement(pos + 8);
|
|
case 2:
|
|
return deserializeBoxJSXFragment(pos + 8);
|
|
case 3:
|
|
return deserializeBoxJSXExpressionContainer(pos + 8);
|
|
case 4:
|
|
return deserializeBoxJSXSpreadChild(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for JSXChild`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSEnumMemberName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierName(pos + 8);
|
|
case 1:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSEnumMemberName`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSLiteral(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxBooleanLiteral(pos + 8);
|
|
case 1:
|
|
return deserializeBoxNumericLiteral(pos + 8);
|
|
case 2:
|
|
return deserializeBoxBigIntLiteral(pos + 8);
|
|
case 3:
|
|
return deserializeBoxStringLiteral(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTemplateLiteral(pos + 8);
|
|
case 5:
|
|
return deserializeBoxUnaryExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSLiteral`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSType(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxTSAnyKeyword(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSBigIntKeyword(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSBooleanKeyword(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSIntrinsicKeyword(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSNeverKeyword(pos + 8);
|
|
case 5:
|
|
return deserializeBoxTSNullKeyword(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTSNumberKeyword(pos + 8);
|
|
case 7:
|
|
return deserializeBoxTSObjectKeyword(pos + 8);
|
|
case 8:
|
|
return deserializeBoxTSStringKeyword(pos + 8);
|
|
case 9:
|
|
return deserializeBoxTSSymbolKeyword(pos + 8);
|
|
case 10:
|
|
return deserializeBoxTSThisType(pos + 8);
|
|
case 11:
|
|
return deserializeBoxTSUndefinedKeyword(pos + 8);
|
|
case 12:
|
|
return deserializeBoxTSUnknownKeyword(pos + 8);
|
|
case 13:
|
|
return deserializeBoxTSVoidKeyword(pos + 8);
|
|
case 14:
|
|
return deserializeBoxTSArrayType(pos + 8);
|
|
case 15:
|
|
return deserializeBoxTSConditionalType(pos + 8);
|
|
case 16:
|
|
return deserializeBoxTSConstructorType(pos + 8);
|
|
case 17:
|
|
return deserializeBoxTSFunctionType(pos + 8);
|
|
case 18:
|
|
return deserializeBoxTSImportType(pos + 8);
|
|
case 19:
|
|
return deserializeBoxTSIndexedAccessType(pos + 8);
|
|
case 20:
|
|
return deserializeBoxTSInferType(pos + 8);
|
|
case 21:
|
|
return deserializeBoxTSIntersectionType(pos + 8);
|
|
case 22:
|
|
return deserializeBoxTSLiteralType(pos + 8);
|
|
case 23:
|
|
return deserializeBoxTSMappedType(pos + 8);
|
|
case 24:
|
|
return deserializeBoxTSNamedTupleMember(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTSTemplateLiteralType(pos + 8);
|
|
case 27:
|
|
return deserializeBoxTSTupleType(pos + 8);
|
|
case 28:
|
|
return deserializeBoxTSTypeLiteral(pos + 8);
|
|
case 29:
|
|
return deserializeBoxTSTypeOperator(pos + 8);
|
|
case 30:
|
|
return deserializeBoxTSTypePredicate(pos + 8);
|
|
case 31:
|
|
return deserializeBoxTSTypeQuery(pos + 8);
|
|
case 32:
|
|
return deserializeBoxTSTypeReference(pos + 8);
|
|
case 33:
|
|
return deserializeBoxTSUnionType(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSParenthesizedType(pos + 8);
|
|
case 35:
|
|
return deserializeBoxJSDocNullableType(pos + 8);
|
|
case 36:
|
|
return deserializeBoxJSDocNonNullableType(pos + 8);
|
|
case 37:
|
|
return deserializeBoxJSDocUnknownType(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSType`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSTypeOperatorOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'keyof';
|
|
case 1:
|
|
return 'unique';
|
|
case 2:
|
|
return 'readonly';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSTypeOperatorOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSTupleElement(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxTSAnyKeyword(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSBigIntKeyword(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSBooleanKeyword(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSIntrinsicKeyword(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSNeverKeyword(pos + 8);
|
|
case 5:
|
|
return deserializeBoxTSNullKeyword(pos + 8);
|
|
case 6:
|
|
return deserializeBoxTSNumberKeyword(pos + 8);
|
|
case 7:
|
|
return deserializeBoxTSObjectKeyword(pos + 8);
|
|
case 8:
|
|
return deserializeBoxTSStringKeyword(pos + 8);
|
|
case 9:
|
|
return deserializeBoxTSSymbolKeyword(pos + 8);
|
|
case 10:
|
|
return deserializeBoxTSThisType(pos + 8);
|
|
case 11:
|
|
return deserializeBoxTSUndefinedKeyword(pos + 8);
|
|
case 12:
|
|
return deserializeBoxTSUnknownKeyword(pos + 8);
|
|
case 13:
|
|
return deserializeBoxTSVoidKeyword(pos + 8);
|
|
case 14:
|
|
return deserializeBoxTSArrayType(pos + 8);
|
|
case 15:
|
|
return deserializeBoxTSConditionalType(pos + 8);
|
|
case 16:
|
|
return deserializeBoxTSConstructorType(pos + 8);
|
|
case 17:
|
|
return deserializeBoxTSFunctionType(pos + 8);
|
|
case 18:
|
|
return deserializeBoxTSImportType(pos + 8);
|
|
case 19:
|
|
return deserializeBoxTSIndexedAccessType(pos + 8);
|
|
case 20:
|
|
return deserializeBoxTSInferType(pos + 8);
|
|
case 21:
|
|
return deserializeBoxTSIntersectionType(pos + 8);
|
|
case 22:
|
|
return deserializeBoxTSLiteralType(pos + 8);
|
|
case 23:
|
|
return deserializeBoxTSMappedType(pos + 8);
|
|
case 24:
|
|
return deserializeBoxTSNamedTupleMember(pos + 8);
|
|
case 26:
|
|
return deserializeBoxTSTemplateLiteralType(pos + 8);
|
|
case 27:
|
|
return deserializeBoxTSTupleType(pos + 8);
|
|
case 28:
|
|
return deserializeBoxTSTypeLiteral(pos + 8);
|
|
case 29:
|
|
return deserializeBoxTSTypeOperator(pos + 8);
|
|
case 30:
|
|
return deserializeBoxTSTypePredicate(pos + 8);
|
|
case 31:
|
|
return deserializeBoxTSTypeQuery(pos + 8);
|
|
case 32:
|
|
return deserializeBoxTSTypeReference(pos + 8);
|
|
case 33:
|
|
return deserializeBoxTSUnionType(pos + 8);
|
|
case 34:
|
|
return deserializeBoxTSParenthesizedType(pos + 8);
|
|
case 35:
|
|
return deserializeBoxJSDocNullableType(pos + 8);
|
|
case 36:
|
|
return deserializeBoxJSDocNonNullableType(pos + 8);
|
|
case 37:
|
|
return deserializeBoxJSDocUnknownType(pos + 8);
|
|
case 64:
|
|
return deserializeBoxTSOptionalType(pos + 8);
|
|
case 65:
|
|
return deserializeBoxTSRestType(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSTupleElement`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSTypeName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSQualifiedName(pos + 8);
|
|
case 2:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSTypeName`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSAccessibility(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'private';
|
|
case 1:
|
|
return 'protected';
|
|
case 2:
|
|
return 'public';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSAccessibility`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSSignature(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxTSIndexSignature(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSPropertySignature(pos + 8);
|
|
case 2:
|
|
return deserializeBoxTSCallSignatureDeclaration(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSConstructSignatureDeclaration(pos + 8);
|
|
case 4:
|
|
return deserializeBoxTSMethodSignature(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSSignature`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSMethodSignatureKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'method';
|
|
case 1:
|
|
return 'get';
|
|
case 2:
|
|
return 'set';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSMethodSignatureKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSTypePredicateName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierName(pos + 8);
|
|
case 1:
|
|
return deserializeTSThisType(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSTypePredicateName`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSModuleDeclarationKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'global';
|
|
case 1:
|
|
return 'module';
|
|
case 2:
|
|
return 'namespace';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSModuleDeclarationKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSModuleDeclarationName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBindingIdentifier(pos + 8);
|
|
case 1:
|
|
return deserializeStringLiteral(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSModuleDeclarationName`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSModuleDeclarationBody(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxTSModuleDeclaration(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSModuleBlock(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSModuleDeclarationBody`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSTypeQueryExprName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSQualifiedName(pos + 8);
|
|
case 2:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSImportType(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSTypeQueryExprName`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSImportTypeQualifier(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierName(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSImportTypeQualifiedName(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSImportTypeQualifier`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSMappedTypeModifierOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return true;
|
|
case 1:
|
|
return '+';
|
|
case 2:
|
|
return '-';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSMappedTypeModifierOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeTSModuleReference(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return deserializeBoxIdentifierReference(pos + 8);
|
|
case 1:
|
|
return deserializeBoxTSQualifiedName(pos + 8);
|
|
case 2:
|
|
return deserializeBoxThisExpression(pos + 8);
|
|
case 3:
|
|
return deserializeBoxTSExternalModuleReference(pos + 8);
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for TSModuleReference`);
|
|
}
|
|
}
|
|
|
|
function deserializeImportOrExportKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'value';
|
|
case 1:
|
|
return 'type';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ImportOrExportKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeCommentKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'Line';
|
|
case 1:
|
|
return 'Block';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for CommentKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeImportImportName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
var nameSpan = deserializeNameSpan(pos + 8);
|
|
return { kind: 'Name', name: nameSpan.value, start: nameSpan.start, end: nameSpan.end };
|
|
case 1:
|
|
return { kind: 'NamespaceObject', name: null, start: null, end: null };
|
|
case 2:
|
|
var span = deserializeSpan(pos + 8);
|
|
return { kind: 'Default', name: null, start: span.start, end: span.end };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ImportImportName`);
|
|
}
|
|
}
|
|
|
|
function deserializeExportImportName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
var nameSpan = deserializeNameSpan(pos + 8);
|
|
return { kind: 'Name', name: nameSpan.value, start: nameSpan.start, end: nameSpan.end };
|
|
case 1:
|
|
return { kind: 'All', name: null, start: null, end: null };
|
|
case 2:
|
|
return { kind: 'AllButDefault', name: null, start: null, end: null };
|
|
case 3:
|
|
return { kind: 'None', name: null, start: null, end: null };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ExportImportName`);
|
|
}
|
|
}
|
|
|
|
function deserializeExportExportName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
var nameSpan = deserializeNameSpan(pos + 8);
|
|
return { kind: 'Name', name: nameSpan.value, start: nameSpan.start, end: nameSpan.end };
|
|
case 1:
|
|
var span = deserializeSpan(pos + 8);
|
|
return { kind: 'Default', name: null, start: span.start, end: span.end };
|
|
case 2:
|
|
return { kind: 'None', name: null, start: null, end: null };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ExportExportName`);
|
|
}
|
|
}
|
|
|
|
function deserializeExportLocalName(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
var nameSpan = deserializeNameSpan(pos + 8);
|
|
return { kind: 'Name', name: nameSpan.value, start: nameSpan.start, end: nameSpan.end };
|
|
case 1:
|
|
var nameSpan = deserializeNameSpan(pos + 8);
|
|
return { kind: 'Default', name: nameSpan.value, start: nameSpan.start, end: nameSpan.end };
|
|
case 2:
|
|
return { kind: 'None', name: null, start: null, end: null };
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ExportLocalName`);
|
|
}
|
|
}
|
|
|
|
function deserializeAssignmentOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return '=';
|
|
case 1:
|
|
return '+=';
|
|
case 2:
|
|
return '-=';
|
|
case 3:
|
|
return '*=';
|
|
case 4:
|
|
return '/=';
|
|
case 5:
|
|
return '%=';
|
|
case 6:
|
|
return '**=';
|
|
case 7:
|
|
return '<<=';
|
|
case 8:
|
|
return '>>=';
|
|
case 9:
|
|
return '>>>=';
|
|
case 10:
|
|
return '|=';
|
|
case 11:
|
|
return '^=';
|
|
case 12:
|
|
return '&=';
|
|
case 13:
|
|
return '||=';
|
|
case 14:
|
|
return '&&=';
|
|
case 15:
|
|
return '??=';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for AssignmentOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeBinaryOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return '==';
|
|
case 1:
|
|
return '!=';
|
|
case 2:
|
|
return '===';
|
|
case 3:
|
|
return '!==';
|
|
case 4:
|
|
return '<';
|
|
case 5:
|
|
return '<=';
|
|
case 6:
|
|
return '>';
|
|
case 7:
|
|
return '>=';
|
|
case 8:
|
|
return '+';
|
|
case 9:
|
|
return '-';
|
|
case 10:
|
|
return '*';
|
|
case 11:
|
|
return '/';
|
|
case 12:
|
|
return '%';
|
|
case 13:
|
|
return '**';
|
|
case 14:
|
|
return '<<';
|
|
case 15:
|
|
return '>>';
|
|
case 16:
|
|
return '>>>';
|
|
case 17:
|
|
return '|';
|
|
case 18:
|
|
return '^';
|
|
case 19:
|
|
return '&';
|
|
case 20:
|
|
return 'in';
|
|
case 21:
|
|
return 'instanceof';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for BinaryOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeLogicalOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return '||';
|
|
case 1:
|
|
return '&&';
|
|
case 2:
|
|
return '??';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for LogicalOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeUnaryOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return '+';
|
|
case 1:
|
|
return '-';
|
|
case 2:
|
|
return '!';
|
|
case 3:
|
|
return '~';
|
|
case 4:
|
|
return 'typeof';
|
|
case 5:
|
|
return 'void';
|
|
case 6:
|
|
return 'delete';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for UnaryOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeUpdateOperator(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return '++';
|
|
case 1:
|
|
return '--';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for UpdateOperator`);
|
|
}
|
|
}
|
|
|
|
function deserializeModuleKind(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'script';
|
|
case 1:
|
|
return 'module';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ModuleKind`);
|
|
}
|
|
}
|
|
|
|
function deserializeErrorSeverity(pos) {
|
|
switch (uint8[pos]) {
|
|
case 0:
|
|
return 'Error';
|
|
case 1:
|
|
return 'Warning';
|
|
case 2:
|
|
return 'Advice';
|
|
default:
|
|
throw new Error(`Unexpected discriminant ${uint8[pos]} for ErrorSeverity`);
|
|
}
|
|
}
|
|
|
|
function deserializeU32(pos) {
|
|
return uint32[pos >> 2];
|
|
}
|
|
|
|
function deserializeU8(pos) {
|
|
return uint8[pos];
|
|
}
|
|
|
|
function deserializeStr(pos) {
|
|
const pos32 = pos >> 2,
|
|
len = uint32[pos32 + 2];
|
|
if (len === 0) return '';
|
|
|
|
pos = uint32[pos32];
|
|
if (sourceIsAscii && pos < sourceByteLen) return sourceText.substr(pos, len);
|
|
|
|
// Longer strings use `TextDecoder`
|
|
// TODO: Find best switch-over point
|
|
const end = pos + len;
|
|
if (len > 50) return decodeStr(uint8.subarray(pos, end));
|
|
|
|
// Shorter strings decode by hand to avoid native call
|
|
let out = '',
|
|
c;
|
|
do {
|
|
c = uint8[pos++];
|
|
if (c < 0x80) {
|
|
out += fromCodePoint(c);
|
|
} else {
|
|
out += decodeStr(uint8.subarray(pos - 1, end));
|
|
break;
|
|
}
|
|
} while (pos < end);
|
|
|
|
return out;
|
|
}
|
|
|
|
function deserializeVecComment(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeComment(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionHashbang(pos) {
|
|
if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
|
|
return deserializeHashbang(pos);
|
|
}
|
|
|
|
function deserializeVecDirective(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 72;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeDirective(pos));
|
|
pos += 72;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecStatement(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeStatement(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxBooleanLiteral(pos) {
|
|
return deserializeBooleanLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxNullLiteral(pos) {
|
|
return deserializeNullLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxNumericLiteral(pos) {
|
|
return deserializeNumericLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxBigIntLiteral(pos) {
|
|
return deserializeBigIntLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxRegExpLiteral(pos) {
|
|
return deserializeRegExpLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxStringLiteral(pos) {
|
|
return deserializeStringLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTemplateLiteral(pos) {
|
|
return deserializeTemplateLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxIdentifierReference(pos) {
|
|
return deserializeIdentifierReference(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxMetaProperty(pos) {
|
|
return deserializeMetaProperty(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxSuper(pos) {
|
|
return deserializeSuper(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxArrayExpression(pos) {
|
|
return deserializeArrayExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxArrowFunctionExpression(pos) {
|
|
return deserializeArrowFunctionExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAssignmentExpression(pos) {
|
|
return deserializeAssignmentExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAwaitExpression(pos) {
|
|
return deserializeAwaitExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxBinaryExpression(pos) {
|
|
return deserializeBinaryExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxCallExpression(pos) {
|
|
return deserializeCallExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxChainExpression(pos) {
|
|
return deserializeChainExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxClass(pos) {
|
|
return deserializeClass(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxConditionalExpression(pos) {
|
|
return deserializeConditionalExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxFunction(pos) {
|
|
return deserializeFunction(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxImportExpression(pos) {
|
|
return deserializeImportExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxLogicalExpression(pos) {
|
|
return deserializeLogicalExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxNewExpression(pos) {
|
|
return deserializeNewExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxObjectExpression(pos) {
|
|
return deserializeObjectExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxParenthesizedExpression(pos) {
|
|
return deserializeParenthesizedExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxSequenceExpression(pos) {
|
|
return deserializeSequenceExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTaggedTemplateExpression(pos) {
|
|
return deserializeTaggedTemplateExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxThisExpression(pos) {
|
|
return deserializeThisExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxUnaryExpression(pos) {
|
|
return deserializeUnaryExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxUpdateExpression(pos) {
|
|
return deserializeUpdateExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxYieldExpression(pos) {
|
|
return deserializeYieldExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxPrivateInExpression(pos) {
|
|
return deserializePrivateInExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXElement(pos) {
|
|
return deserializeJSXElement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXFragment(pos) {
|
|
return deserializeJSXFragment(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSAsExpression(pos) {
|
|
return deserializeTSAsExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSSatisfiesExpression(pos) {
|
|
return deserializeTSSatisfiesExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeAssertion(pos) {
|
|
return deserializeTSTypeAssertion(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNonNullExpression(pos) {
|
|
return deserializeTSNonNullExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSInstantiationExpression(pos) {
|
|
return deserializeTSInstantiationExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxV8IntrinsicExpression(pos) {
|
|
return deserializeV8IntrinsicExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecArrayExpressionElement(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeArrayExpressionElement(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxSpreadElement(pos) {
|
|
return deserializeSpreadElement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecObjectPropertyKind(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeObjectPropertyKind(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxObjectProperty(pos) {
|
|
return deserializeObjectProperty(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBool(pos) {
|
|
return uint8[pos] === 1;
|
|
}
|
|
|
|
function deserializeBoxIdentifierName(pos) {
|
|
return deserializeIdentifierName(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxPrivateIdentifier(pos) {
|
|
return deserializePrivateIdentifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecTemplateElement(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 48;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTemplateElement(pos));
|
|
pos += 48;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecExpression(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeExpression(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxTSTypeParameterInstantiation(pos) {
|
|
return deserializeTSTypeParameterInstantiation(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxTSTypeParameterInstantiation(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxTSTypeParameterInstantiation(pos);
|
|
}
|
|
|
|
function deserializeOptionStr(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeStr(pos);
|
|
}
|
|
|
|
function deserializeBoxComputedMemberExpression(pos) {
|
|
return deserializeComputedMemberExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxStaticMemberExpression(pos) {
|
|
return deserializeStaticMemberExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxPrivateFieldExpression(pos) {
|
|
return deserializePrivateFieldExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecArgument(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeArgument(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxArrayAssignmentTarget(pos) {
|
|
return deserializeArrayAssignmentTarget(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxObjectAssignmentTarget(pos) {
|
|
return deserializeObjectAssignmentTarget(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionAssignmentTargetMaybeDefault(pos) {
|
|
if (uint8[pos] === 51) return null;
|
|
return deserializeAssignmentTargetMaybeDefault(pos);
|
|
}
|
|
|
|
function deserializeVecOptionAssignmentTargetMaybeDefault(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeOptionAssignmentTargetMaybeDefault(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxAssignmentTargetRest(pos) {
|
|
return deserializeAssignmentTargetRest(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxAssignmentTargetRest(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxAssignmentTargetRest(pos);
|
|
}
|
|
|
|
function deserializeVecAssignmentTargetProperty(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeAssignmentTargetProperty(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxAssignmentTargetWithDefault(pos) {
|
|
return deserializeAssignmentTargetWithDefault(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAssignmentTargetPropertyIdentifier(pos) {
|
|
return deserializeAssignmentTargetPropertyIdentifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAssignmentTargetPropertyProperty(pos) {
|
|
return deserializeAssignmentTargetPropertyProperty(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionExpression(pos) {
|
|
if (uint8[pos] === 51) return null;
|
|
return deserializeExpression(pos);
|
|
}
|
|
|
|
function deserializeBoxBlockStatement(pos) {
|
|
return deserializeBlockStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxBreakStatement(pos) {
|
|
return deserializeBreakStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxContinueStatement(pos) {
|
|
return deserializeContinueStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxDebuggerStatement(pos) {
|
|
return deserializeDebuggerStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxDoWhileStatement(pos) {
|
|
return deserializeDoWhileStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxEmptyStatement(pos) {
|
|
return deserializeEmptyStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxExpressionStatement(pos) {
|
|
return deserializeExpressionStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxForInStatement(pos) {
|
|
return deserializeForInStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxForOfStatement(pos) {
|
|
return deserializeForOfStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxForStatement(pos) {
|
|
return deserializeForStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxIfStatement(pos) {
|
|
return deserializeIfStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxLabeledStatement(pos) {
|
|
return deserializeLabeledStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxReturnStatement(pos) {
|
|
return deserializeReturnStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxSwitchStatement(pos) {
|
|
return deserializeSwitchStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxThrowStatement(pos) {
|
|
return deserializeThrowStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTryStatement(pos) {
|
|
return deserializeTryStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxWhileStatement(pos) {
|
|
return deserializeWhileStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxWithStatement(pos) {
|
|
return deserializeWithStatement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxVariableDeclaration(pos) {
|
|
return deserializeVariableDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeAliasDeclaration(pos) {
|
|
return deserializeTSTypeAliasDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSInterfaceDeclaration(pos) {
|
|
return deserializeTSInterfaceDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSEnumDeclaration(pos) {
|
|
return deserializeTSEnumDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSModuleDeclaration(pos) {
|
|
return deserializeTSModuleDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSImportEqualsDeclaration(pos) {
|
|
return deserializeTSImportEqualsDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecVariableDeclarator(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 64;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeVariableDeclarator(pos));
|
|
pos += 64;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionStatement(pos) {
|
|
if (uint8[pos] === 70) return null;
|
|
return deserializeStatement(pos);
|
|
}
|
|
|
|
function deserializeOptionForStatementInit(pos) {
|
|
if (uint8[pos] === 65) return null;
|
|
return deserializeForStatementInit(pos);
|
|
}
|
|
|
|
function deserializeOptionLabelIdentifier(pos) {
|
|
if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
|
|
return deserializeLabelIdentifier(pos);
|
|
}
|
|
|
|
function deserializeVecSwitchCase(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 48;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeSwitchCase(pos));
|
|
pos += 48;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxCatchClause(pos) {
|
|
return deserializeCatchClause(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxCatchClause(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxCatchClause(pos);
|
|
}
|
|
|
|
function deserializeOptionBoxBlockStatement(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxBlockStatement(pos);
|
|
}
|
|
|
|
function deserializeOptionCatchParameter(pos) {
|
|
if (uint8[pos + 32] === 2) return null;
|
|
return deserializeCatchParameter(pos);
|
|
}
|
|
|
|
function deserializeBoxTSTypeAnnotation(pos) {
|
|
return deserializeTSTypeAnnotation(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxTSTypeAnnotation(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxTSTypeAnnotation(pos);
|
|
}
|
|
|
|
function deserializeBoxBindingIdentifier(pos) {
|
|
return deserializeBindingIdentifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxObjectPattern(pos) {
|
|
return deserializeObjectPattern(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxArrayPattern(pos) {
|
|
return deserializeArrayPattern(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAssignmentPattern(pos) {
|
|
return deserializeAssignmentPattern(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecBindingProperty(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 64;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeBindingProperty(pos));
|
|
pos += 64;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxBindingRestElement(pos) {
|
|
return deserializeBindingRestElement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxBindingRestElement(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxBindingRestElement(pos);
|
|
}
|
|
|
|
function deserializeOptionBindingPattern(pos) {
|
|
if (uint8[pos + 24] === 2) return null;
|
|
return deserializeBindingPattern(pos);
|
|
}
|
|
|
|
function deserializeVecOptionBindingPattern(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 32;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeOptionBindingPattern(pos));
|
|
pos += 32;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionBindingIdentifier(pos) {
|
|
if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
|
|
return deserializeBindingIdentifier(pos);
|
|
}
|
|
|
|
function deserializeBoxTSTypeParameterDeclaration(pos) {
|
|
return deserializeTSTypeParameterDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxTSTypeParameterDeclaration(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxTSTypeParameterDeclaration(pos);
|
|
}
|
|
|
|
function deserializeBoxTSThisParameter(pos) {
|
|
return deserializeTSThisParameter(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxTSThisParameter(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxTSThisParameter(pos);
|
|
}
|
|
|
|
function deserializeBoxFormalParameters(pos) {
|
|
return deserializeFormalParameters(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxFunctionBody(pos) {
|
|
return deserializeFunctionBody(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxFunctionBody(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxFunctionBody(pos);
|
|
}
|
|
|
|
function deserializeVecFormalParameter(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 72;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeFormalParameter(pos));
|
|
pos += 72;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecDecorator(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 24;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeDecorator(pos));
|
|
pos += 24;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionTSAccessibility(pos) {
|
|
if (uint8[pos] === 3) return null;
|
|
return deserializeTSAccessibility(pos);
|
|
}
|
|
|
|
function deserializeVecTSClassImplements(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 32;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSClassImplements(pos));
|
|
pos += 32;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxClassBody(pos) {
|
|
return deserializeClassBody(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecClassElement(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeClassElement(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxStaticBlock(pos) {
|
|
return deserializeStaticBlock(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxMethodDefinition(pos) {
|
|
return deserializeMethodDefinition(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxPropertyDefinition(pos) {
|
|
return deserializePropertyDefinition(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxAccessorProperty(pos) {
|
|
return deserializeAccessorProperty(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSIndexSignature(pos) {
|
|
return deserializeTSIndexSignature(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxImportDeclaration(pos) {
|
|
return deserializeImportDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxExportAllDeclaration(pos) {
|
|
return deserializeExportAllDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxExportDefaultDeclaration(pos) {
|
|
return deserializeExportDefaultDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxExportNamedDeclaration(pos) {
|
|
return deserializeExportNamedDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSExportAssignment(pos) {
|
|
return deserializeTSExportAssignment(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNamespaceExportDeclaration(pos) {
|
|
return deserializeTSNamespaceExportDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionImportPhase(pos) {
|
|
if (uint8[pos] === 2) return null;
|
|
return deserializeImportPhase(pos);
|
|
}
|
|
|
|
function deserializeVecImportDeclarationSpecifier(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeImportDeclarationSpecifier(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionVecImportDeclarationSpecifier(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeVecImportDeclarationSpecifier(pos);
|
|
}
|
|
|
|
function deserializeBoxWithClause(pos) {
|
|
return deserializeWithClause(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxWithClause(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxWithClause(pos);
|
|
}
|
|
|
|
function deserializeBoxImportSpecifier(pos) {
|
|
return deserializeImportSpecifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxImportDefaultSpecifier(pos) {
|
|
return deserializeImportDefaultSpecifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxImportNamespaceSpecifier(pos) {
|
|
return deserializeImportNamespaceSpecifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecImportAttribute(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 112;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeImportAttribute(pos));
|
|
pos += 112;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionDeclaration(pos) {
|
|
if (uint8[pos] === 31) return null;
|
|
return deserializeDeclaration(pos);
|
|
}
|
|
|
|
function deserializeVecExportSpecifier(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 128;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeExportSpecifier(pos));
|
|
pos += 128;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionStringLiteral(pos) {
|
|
if (uint8[pos + 40] === 2) return null;
|
|
return deserializeStringLiteral(pos);
|
|
}
|
|
|
|
function deserializeOptionModuleExportName(pos) {
|
|
if (uint8[pos] === 3) return null;
|
|
return deserializeModuleExportName(pos);
|
|
}
|
|
|
|
function deserializeF64(pos) {
|
|
return float64[pos >> 3];
|
|
}
|
|
|
|
function deserializeBoxJSXOpeningElement(pos) {
|
|
return deserializeJSXOpeningElement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecJSXChild(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeJSXChild(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxJSXClosingElement(pos) {
|
|
return deserializeJSXClosingElement(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxJSXClosingElement(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxJSXClosingElement(pos);
|
|
}
|
|
|
|
function deserializeVecJSXAttributeItem(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeJSXAttributeItem(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxJSXIdentifier(pos) {
|
|
return deserializeJSXIdentifier(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXNamespacedName(pos) {
|
|
return deserializeJSXNamespacedName(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXMemberExpression(pos) {
|
|
return deserializeJSXMemberExpression(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXAttribute(pos) {
|
|
return deserializeJSXAttribute(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXSpreadAttribute(pos) {
|
|
return deserializeJSXSpreadAttribute(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionJSXAttributeValue(pos) {
|
|
if (uint8[pos] === 4) return null;
|
|
return deserializeJSXAttributeValue(pos);
|
|
}
|
|
|
|
function deserializeBoxJSXExpressionContainer(pos) {
|
|
return deserializeJSXExpressionContainer(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXText(pos) {
|
|
return deserializeJSXText(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSXSpreadChild(pos) {
|
|
return deserializeJSXSpreadChild(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecTSEnumMember(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 40;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSEnumMember(pos));
|
|
pos += 40;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxTSAnyKeyword(pos) {
|
|
return deserializeTSAnyKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSBigIntKeyword(pos) {
|
|
return deserializeTSBigIntKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSBooleanKeyword(pos) {
|
|
return deserializeTSBooleanKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSIntrinsicKeyword(pos) {
|
|
return deserializeTSIntrinsicKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNeverKeyword(pos) {
|
|
return deserializeTSNeverKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNullKeyword(pos) {
|
|
return deserializeTSNullKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNumberKeyword(pos) {
|
|
return deserializeTSNumberKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSObjectKeyword(pos) {
|
|
return deserializeTSObjectKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSStringKeyword(pos) {
|
|
return deserializeTSStringKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSSymbolKeyword(pos) {
|
|
return deserializeTSSymbolKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSUndefinedKeyword(pos) {
|
|
return deserializeTSUndefinedKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSUnknownKeyword(pos) {
|
|
return deserializeTSUnknownKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSVoidKeyword(pos) {
|
|
return deserializeTSVoidKeyword(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSArrayType(pos) {
|
|
return deserializeTSArrayType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSConditionalType(pos) {
|
|
return deserializeTSConditionalType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSConstructorType(pos) {
|
|
return deserializeTSConstructorType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSFunctionType(pos) {
|
|
return deserializeTSFunctionType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSImportType(pos) {
|
|
return deserializeTSImportType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSIndexedAccessType(pos) {
|
|
return deserializeTSIndexedAccessType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSInferType(pos) {
|
|
return deserializeTSInferType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSIntersectionType(pos) {
|
|
return deserializeTSIntersectionType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSLiteralType(pos) {
|
|
return deserializeTSLiteralType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSMappedType(pos) {
|
|
return deserializeTSMappedType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSNamedTupleMember(pos) {
|
|
return deserializeTSNamedTupleMember(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTemplateLiteralType(pos) {
|
|
return deserializeTSTemplateLiteralType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSThisType(pos) {
|
|
return deserializeTSThisType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTupleType(pos) {
|
|
return deserializeTSTupleType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeLiteral(pos) {
|
|
return deserializeTSTypeLiteral(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeOperator(pos) {
|
|
return deserializeTSTypeOperator(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypePredicate(pos) {
|
|
return deserializeTSTypePredicate(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeQuery(pos) {
|
|
return deserializeTSTypeQuery(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeReference(pos) {
|
|
return deserializeTSTypeReference(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSUnionType(pos) {
|
|
return deserializeTSUnionType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSParenthesizedType(pos) {
|
|
return deserializeTSParenthesizedType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSDocNullableType(pos) {
|
|
return deserializeJSDocNullableType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSDocNonNullableType(pos) {
|
|
return deserializeJSDocNonNullableType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxJSDocUnknownType(pos) {
|
|
return deserializeJSDocUnknownType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecTSType(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSType(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecTSTupleElement(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSTupleElement(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxTSOptionalType(pos) {
|
|
return deserializeTSOptionalType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSRestType(pos) {
|
|
return deserializeTSRestType(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSQualifiedName(pos) {
|
|
return deserializeTSQualifiedName(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionTSType(pos) {
|
|
if (uint8[pos] === 38) return null;
|
|
return deserializeTSType(pos);
|
|
}
|
|
|
|
function deserializeVecTSTypeParameter(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 80;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSTypeParameter(pos));
|
|
pos += 80;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecTSInterfaceHeritage(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 32;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSInterfaceHeritage(pos));
|
|
pos += 32;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxTSInterfaceBody(pos) {
|
|
return deserializeTSInterfaceBody(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecTSSignature(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSSignature(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeBoxTSPropertySignature(pos) {
|
|
return deserializeTSPropertySignature(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSCallSignatureDeclaration(pos) {
|
|
return deserializeTSCallSignatureDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSConstructSignatureDeclaration(pos) {
|
|
return deserializeTSConstructSignatureDeclaration(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSMethodSignature(pos) {
|
|
return deserializeTSMethodSignature(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeVecTSIndexSignatureName(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 32;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeTSIndexSignatureName(pos));
|
|
pos += 32;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeOptionTSModuleDeclarationBody(pos) {
|
|
if (uint8[pos] === 2) return null;
|
|
return deserializeTSModuleDeclarationBody(pos);
|
|
}
|
|
|
|
function deserializeBoxTSModuleBlock(pos) {
|
|
return deserializeTSModuleBlock(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeBoxTSTypeParameter(pos) {
|
|
return deserializeTSTypeParameter(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionBoxObjectExpression(pos) {
|
|
if (uint32[pos >> 2] === 0 && uint32[(pos + 4) >> 2] === 0) return null;
|
|
return deserializeBoxObjectExpression(pos);
|
|
}
|
|
|
|
function deserializeOptionTSImportTypeQualifier(pos) {
|
|
if (uint8[pos] === 2) return null;
|
|
return deserializeTSImportTypeQualifier(pos);
|
|
}
|
|
|
|
function deserializeBoxTSImportTypeQualifiedName(pos) {
|
|
return deserializeTSImportTypeQualifiedName(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeOptionTSMappedTypeModifierOperator(pos) {
|
|
if (uint8[pos] === 3) return null;
|
|
return deserializeTSMappedTypeModifierOperator(pos);
|
|
}
|
|
|
|
function deserializeBoxTSExternalModuleReference(pos) {
|
|
return deserializeTSExternalModuleReference(uint32[pos >> 2]);
|
|
}
|
|
|
|
function deserializeU64(pos) {
|
|
const pos32 = pos >> 2;
|
|
return uint32[pos32] + uint32[pos32 + 1] * 4294967296;
|
|
}
|
|
|
|
function deserializeOptionNameSpan(pos) {
|
|
if (uint32[(pos + 8) >> 2] === 0 && uint32[(pos + 12) >> 2] === 0) return null;
|
|
return deserializeNameSpan(pos);
|
|
}
|
|
|
|
function deserializeOptionU64(pos) {
|
|
if (uint8[pos] === 0) return null;
|
|
return deserializeU64(pos + 8);
|
|
}
|
|
|
|
function deserializeVecError(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 80;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeError(pos));
|
|
pos += 80;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecErrorLabel(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 24;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeErrorLabel(pos));
|
|
pos += 24;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecStaticImport(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 56;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeStaticImport(pos));
|
|
pos += 56;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecStaticExport(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 32;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeStaticExport(pos));
|
|
pos += 32;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecDynamicImport(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 16;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeDynamicImport(pos));
|
|
pos += 16;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecSpan(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 8;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeSpan(pos));
|
|
pos += 8;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecImportEntry(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 96;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeImportEntry(pos));
|
|
pos += 96;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function deserializeVecExportEntry(pos) {
|
|
const arr = [],
|
|
pos32 = pos >> 2;
|
|
pos = uint32[pos32];
|
|
const endPos = pos + uint32[pos32 + 2] * 144;
|
|
while (pos !== endPos) {
|
|
arr.push(deserializeExportEntry(pos));
|
|
pos += 144;
|
|
}
|
|
return arr;
|
|
}
|