clawbot-estree 0.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2774 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @generated
9
+ */
10
+
11
+ /*
12
+ * !!! GENERATED FILE !!!
13
+ *
14
+ * Any manual changes to this file will be overwritten. To regenerate run `yarn build`.
15
+ */
16
+ // lint directives to let us do some basic validation of generated files
17
+
18
+ /* eslint no-undef: 'error', no-unused-vars: ['error', {vars: "local"}], no-redeclare: 'error' */
19
+
20
+ /* global $NonMaybeType, Partial, $ReadOnly, $ReadOnlyArray, $FlowFixMe */
21
+ 'use strict';
22
+ /*::
23
+ import type {
24
+ ESNode,
25
+ Token,
26
+ AFunction,
27
+ ClassMember,
28
+ BigIntLiteral,
29
+ BooleanLiteral,
30
+ NullLiteral,
31
+ NumericLiteral,
32
+ RegExpLiteral,
33
+ StringLiteral,
34
+ Identifier,
35
+ JSXIdentifier,
36
+ JSXText,
37
+ AnyTypeAnnotation,
38
+ ArrayExpression,
39
+ ArrayPattern,
40
+ ArrayTypeAnnotation,
41
+ ArrowFunctionExpression,
42
+ AsConstExpression,
43
+ AsExpression,
44
+ AssignmentExpression,
45
+ AssignmentPattern,
46
+ AwaitExpression,
47
+ BigIntLiteralTypeAnnotation,
48
+ BigIntTypeAnnotation,
49
+ BinaryExpression,
50
+ BlockStatement,
51
+ BooleanLiteralTypeAnnotation,
52
+ BooleanTypeAnnotation,
53
+ BreakStatement,
54
+ CallExpression,
55
+ CatchClause,
56
+ ChainExpression,
57
+ ClassBody,
58
+ ClassDeclaration,
59
+ ClassExpression,
60
+ ClassImplements,
61
+ ComponentDeclaration,
62
+ ComponentParameter,
63
+ ComponentTypeAnnotation,
64
+ ComponentTypeParameter,
65
+ ConditionalExpression,
66
+ ConditionalTypeAnnotation,
67
+ ContinueStatement,
68
+ DebuggerStatement,
69
+ DeclareClass,
70
+ DeclareComponent,
71
+ DeclaredPredicate,
72
+ DeclareEnum,
73
+ DeclareExportAllDeclaration,
74
+ DeclareExportDeclaration,
75
+ DeclareFunction,
76
+ DeclareHook,
77
+ DeclareInterface,
78
+ DeclareModule,
79
+ DeclareModuleExports,
80
+ DeclareNamespace,
81
+ DeclareOpaqueType,
82
+ DeclareTypeAlias,
83
+ DeclareVariable,
84
+ DoWhileStatement,
85
+ EmptyStatement,
86
+ EmptyTypeAnnotation,
87
+ EnumBigIntBody,
88
+ EnumBigIntMember,
89
+ EnumBooleanBody,
90
+ EnumBooleanMember,
91
+ EnumDeclaration,
92
+ EnumDefaultedMember,
93
+ EnumNumberBody,
94
+ EnumNumberMember,
95
+ EnumStringBody,
96
+ EnumStringMember,
97
+ EnumSymbolBody,
98
+ ExistsTypeAnnotation,
99
+ ExportAllDeclaration,
100
+ ExportDefaultDeclaration,
101
+ ExportNamedDeclaration,
102
+ ExportSpecifier,
103
+ ExpressionStatement,
104
+ ForInStatement,
105
+ ForOfStatement,
106
+ ForStatement,
107
+ FunctionDeclaration,
108
+ FunctionExpression,
109
+ FunctionTypeAnnotation,
110
+ FunctionTypeParam,
111
+ GenericTypeAnnotation,
112
+ HookDeclaration,
113
+ HookTypeAnnotation,
114
+ IfStatement,
115
+ ImportAttribute,
116
+ ImportDeclaration,
117
+ ImportDefaultSpecifier,
118
+ ImportExpression,
119
+ ImportNamespaceSpecifier,
120
+ ImportSpecifier,
121
+ IndexedAccessType,
122
+ InferredPredicate,
123
+ InferTypeAnnotation,
124
+ InterfaceDeclaration,
125
+ InterfaceExtends,
126
+ InterfaceTypeAnnotation,
127
+ IntersectionTypeAnnotation,
128
+ JSXAttribute,
129
+ JSXClosingElement,
130
+ JSXClosingFragment,
131
+ JSXElement,
132
+ JSXEmptyExpression,
133
+ JSXExpressionContainer,
134
+ JSXFragment,
135
+ JSXMemberExpression,
136
+ JSXNamespacedName,
137
+ JSXOpeningElement,
138
+ JSXOpeningFragment,
139
+ JSXSpreadAttribute,
140
+ JSXSpreadChild,
141
+ KeyofTypeAnnotation,
142
+ LabeledStatement,
143
+ LogicalExpression,
144
+ MemberExpression,
145
+ MetaProperty,
146
+ MethodDefinition,
147
+ MixedTypeAnnotation,
148
+ NewExpression,
149
+ NullableTypeAnnotation,
150
+ NullLiteralTypeAnnotation,
151
+ NumberLiteralTypeAnnotation,
152
+ NumberTypeAnnotation,
153
+ ObjectExpression,
154
+ ObjectPattern,
155
+ ObjectTypeAnnotation,
156
+ ObjectTypeCallProperty,
157
+ ObjectTypeIndexer,
158
+ ObjectTypeInternalSlot,
159
+ ObjectTypeMappedTypeProperty,
160
+ ObjectTypeProperty,
161
+ ObjectTypeSpreadProperty,
162
+ OpaqueType,
163
+ OptionalIndexedAccessType,
164
+ PrivateIdentifier,
165
+ Program,
166
+ Property,
167
+ PropertyDefinition,
168
+ QualifiedTypeIdentifier,
169
+ QualifiedTypeofIdentifier,
170
+ RestElement,
171
+ ReturnStatement,
172
+ SequenceExpression,
173
+ SpreadElement,
174
+ StringLiteralTypeAnnotation,
175
+ StringTypeAnnotation,
176
+ Super,
177
+ SwitchCase,
178
+ SwitchStatement,
179
+ SymbolTypeAnnotation,
180
+ TaggedTemplateExpression,
181
+ TemplateElement,
182
+ TemplateLiteral,
183
+ ThisExpression,
184
+ ThisTypeAnnotation,
185
+ ThrowStatement,
186
+ TryStatement,
187
+ TupleTypeAnnotation,
188
+ TupleTypeLabeledElement,
189
+ TupleTypeSpreadElement,
190
+ TypeAlias,
191
+ TypeAnnotation,
192
+ TypeCastExpression,
193
+ TypeofTypeAnnotation,
194
+ TypeOperator,
195
+ TypeParameter,
196
+ TypeParameterDeclaration,
197
+ TypeParameterInstantiation,
198
+ TypePredicate,
199
+ UnaryExpression,
200
+ UnionTypeAnnotation,
201
+ UpdateExpression,
202
+ VariableDeclaration,
203
+ VariableDeclarator,
204
+ Variance,
205
+ VoidTypeAnnotation,
206
+ WhileStatement,
207
+ WithStatement,
208
+ YieldExpression,
209
+ Literal,
210
+ LineComment,
211
+ BlockComment,
212
+ MostTokens,
213
+ } from '../types';
214
+ */
215
+
216
+ Object.defineProperty(exports, "__esModule", {
217
+ value: true
218
+ });
219
+ exports.isAnyTypeAnnotation = isAnyTypeAnnotation;
220
+ exports.isArrayExpression = isArrayExpression;
221
+ exports.isArrayPattern = isArrayPattern;
222
+ exports.isArrayTypeAnnotation = isArrayTypeAnnotation;
223
+ exports.isArrowFunctionExpression = isArrowFunctionExpression;
224
+ exports.isAsConstExpression = isAsConstExpression;
225
+ exports.isAsExpression = isAsExpression;
226
+ exports.isAsKeyword = isAsKeyword;
227
+ exports.isAssignmentExpression = isAssignmentExpression;
228
+ exports.isAssignmentPattern = isAssignmentPattern;
229
+ exports.isAsterixToken = isAsterixToken;
230
+ exports.isAsyncKeyword = isAsyncKeyword;
231
+ exports.isAwaitExpression = isAwaitExpression;
232
+ exports.isAwaitKeyword = isAwaitKeyword;
233
+ exports.isBigIntLiteralTypeAnnotation = isBigIntLiteralTypeAnnotation;
234
+ exports.isBigIntTypeAnnotation = isBigIntTypeAnnotation;
235
+ exports.isBinaryExpression = isBinaryExpression;
236
+ exports.isBitwiseANDEqualToken = isBitwiseANDEqualToken;
237
+ exports.isBitwiseANDToken = isBitwiseANDToken;
238
+ exports.isBitwiseLeftShiftEqualToken = isBitwiseLeftShiftEqualToken;
239
+ exports.isBitwiseLeftShiftToken = isBitwiseLeftShiftToken;
240
+ exports.isBitwiseOREqualToken = isBitwiseOREqualToken;
241
+ exports.isBitwiseORToken = isBitwiseORToken;
242
+ exports.isBitwiseRightShiftEqualToken = isBitwiseRightShiftEqualToken;
243
+ exports.isBitwiseRightShiftToken = isBitwiseRightShiftToken;
244
+ exports.isBitwiseUnsignedRightShiftEqualToken = isBitwiseUnsignedRightShiftEqualToken;
245
+ exports.isBitwiseUnsignedRightShiftToken = isBitwiseUnsignedRightShiftToken;
246
+ exports.isBitwiseXOREqualToken = isBitwiseXOREqualToken;
247
+ exports.isBitwiseXORToken = isBitwiseXORToken;
248
+ exports.isBlockComment = isBlockComment;
249
+ exports.isBlockStatement = isBlockStatement;
250
+ exports.isBooleanLiteralTypeAnnotation = isBooleanLiteralTypeAnnotation;
251
+ exports.isBooleanTypeAnnotation = isBooleanTypeAnnotation;
252
+ exports.isBreakStatement = isBreakStatement;
253
+ exports.isBreakToken = isBreakToken;
254
+ exports.isCallExpression = isCallExpression;
255
+ exports.isCaseToken = isCaseToken;
256
+ exports.isCatchClause = isCatchClause;
257
+ exports.isCatchToken = isCatchToken;
258
+ exports.isChainExpression = isChainExpression;
259
+ exports.isClassBody = isClassBody;
260
+ exports.isClassDeclaration = isClassDeclaration;
261
+ exports.isClassExpression = isClassExpression;
262
+ exports.isClassImplements = isClassImplements;
263
+ exports.isClassToken = isClassToken;
264
+ exports.isClosingAngleBracketToken = isClosingAngleBracketToken;
265
+ exports.isClosingCurlyBracketToken = isClosingCurlyBracketToken;
266
+ exports.isClosingParenthesisToken = isClosingParenthesisToken;
267
+ exports.isColonToken = isColonToken;
268
+ exports.isCommaToken = isCommaToken;
269
+ exports.isComponentDeclaration = isComponentDeclaration;
270
+ exports.isComponentParameter = isComponentParameter;
271
+ exports.isComponentTypeAnnotation = isComponentTypeAnnotation;
272
+ exports.isComponentTypeParameter = isComponentTypeParameter;
273
+ exports.isConditionalExpression = isConditionalExpression;
274
+ exports.isConditionalTypeAnnotation = isConditionalTypeAnnotation;
275
+ exports.isConstToken = isConstToken;
276
+ exports.isContinueStatement = isContinueStatement;
277
+ exports.isContinueToken = isContinueToken;
278
+ exports.isDebuggerStatement = isDebuggerStatement;
279
+ exports.isDebuggerToken = isDebuggerToken;
280
+ exports.isDeclareClass = isDeclareClass;
281
+ exports.isDeclareComponent = isDeclareComponent;
282
+ exports.isDeclareEnum = isDeclareEnum;
283
+ exports.isDeclareExportAllDeclaration = isDeclareExportAllDeclaration;
284
+ exports.isDeclareExportDeclaration = isDeclareExportDeclaration;
285
+ exports.isDeclareFunction = isDeclareFunction;
286
+ exports.isDeclareHook = isDeclareHook;
287
+ exports.isDeclareInterface = isDeclareInterface;
288
+ exports.isDeclareKeyword = isDeclareKeyword;
289
+ exports.isDeclareModule = isDeclareModule;
290
+ exports.isDeclareModuleExports = isDeclareModuleExports;
291
+ exports.isDeclareNamespace = isDeclareNamespace;
292
+ exports.isDeclareOpaqueType = isDeclareOpaqueType;
293
+ exports.isDeclareTypeAlias = isDeclareTypeAlias;
294
+ exports.isDeclareVariable = isDeclareVariable;
295
+ exports.isDeclaredPredicate = isDeclaredPredicate;
296
+ exports.isDecrementToken = isDecrementToken;
297
+ exports.isDefaultToken = isDefaultToken;
298
+ exports.isDeleteToken = isDeleteToken;
299
+ exports.isDivideEqualToken = isDivideEqualToken;
300
+ exports.isDoToken = isDoToken;
301
+ exports.isDoWhileStatement = isDoWhileStatement;
302
+ exports.isDotDotDotToken = isDotDotDotToken;
303
+ exports.isDotToken = isDotToken;
304
+ exports.isElseToken = isElseToken;
305
+ exports.isEmptyStatement = isEmptyStatement;
306
+ exports.isEmptyTypeAnnotation = isEmptyTypeAnnotation;
307
+ exports.isEnumBigIntBody = isEnumBigIntBody;
308
+ exports.isEnumBigIntMember = isEnumBigIntMember;
309
+ exports.isEnumBooleanBody = isEnumBooleanBody;
310
+ exports.isEnumBooleanMember = isEnumBooleanMember;
311
+ exports.isEnumDeclaration = isEnumDeclaration;
312
+ exports.isEnumDefaultedMember = isEnumDefaultedMember;
313
+ exports.isEnumNumberBody = isEnumNumberBody;
314
+ exports.isEnumNumberMember = isEnumNumberMember;
315
+ exports.isEnumStringBody = isEnumStringBody;
316
+ exports.isEnumStringMember = isEnumStringMember;
317
+ exports.isEnumSymbolBody = isEnumSymbolBody;
318
+ exports.isEnumToken = isEnumToken;
319
+ exports.isEqualToken = isEqualToken;
320
+ exports.isExistsTypeAnnotation = isExistsTypeAnnotation;
321
+ exports.isExponentateEqualToken = isExponentateEqualToken;
322
+ exports.isExponentiationToken = isExponentiationToken;
323
+ exports.isExportAllDeclaration = isExportAllDeclaration;
324
+ exports.isExportDefaultDeclaration = isExportDefaultDeclaration;
325
+ exports.isExportNamedDeclaration = isExportNamedDeclaration;
326
+ exports.isExportSpecifier = isExportSpecifier;
327
+ exports.isExportToken = isExportToken;
328
+ exports.isExpressionStatement = isExpressionStatement;
329
+ exports.isExtendsToken = isExtendsToken;
330
+ exports.isFinallyToken = isFinallyToken;
331
+ exports.isForInStatement = isForInStatement;
332
+ exports.isForOfStatement = isForOfStatement;
333
+ exports.isForStatement = isForStatement;
334
+ exports.isForToken = isForToken;
335
+ exports.isForwardSlashToken = isForwardSlashToken;
336
+ exports.isFromKeyword = isFromKeyword;
337
+ exports.isFunctionDeclaration = isFunctionDeclaration;
338
+ exports.isFunctionExpression = isFunctionExpression;
339
+ exports.isFunctionToken = isFunctionToken;
340
+ exports.isFunctionTypeAnnotation = isFunctionTypeAnnotation;
341
+ exports.isFunctionTypeParam = isFunctionTypeParam;
342
+ exports.isGenericTypeAnnotation = isGenericTypeAnnotation;
343
+ exports.isGetKeyword = isGetKeyword;
344
+ exports.isGreaterThanOrEqualToToken = isGreaterThanOrEqualToToken;
345
+ exports.isGreaterThanToken = isGreaterThanToken;
346
+ exports.isHookDeclaration = isHookDeclaration;
347
+ exports.isHookTypeAnnotation = isHookTypeAnnotation;
348
+ exports.isIdentifier = isIdentifier;
349
+ exports.isIfStatement = isIfStatement;
350
+ exports.isIfToken = isIfToken;
351
+ exports.isImplementsToken = isImplementsToken;
352
+ exports.isImportAttribute = isImportAttribute;
353
+ exports.isImportDeclaration = isImportDeclaration;
354
+ exports.isImportDefaultSpecifier = isImportDefaultSpecifier;
355
+ exports.isImportExpression = isImportExpression;
356
+ exports.isImportNamespaceSpecifier = isImportNamespaceSpecifier;
357
+ exports.isImportSpecifier = isImportSpecifier;
358
+ exports.isImportToken = isImportToken;
359
+ exports.isInToken = isInToken;
360
+ exports.isIncrementToken = isIncrementToken;
361
+ exports.isIndexedAccessType = isIndexedAccessType;
362
+ exports.isInferTypeAnnotation = isInferTypeAnnotation;
363
+ exports.isInferredPredicate = isInferredPredicate;
364
+ exports.isInstanceOfToken = isInstanceOfToken;
365
+ exports.isInterfaceDeclaration = isInterfaceDeclaration;
366
+ exports.isInterfaceExtends = isInterfaceExtends;
367
+ exports.isInterfaceToken = isInterfaceToken;
368
+ exports.isInterfaceTypeAnnotation = isInterfaceTypeAnnotation;
369
+ exports.isIntersectionTypeAnnotation = isIntersectionTypeAnnotation;
370
+ exports.isIntersectionTypeToken = isIntersectionTypeToken;
371
+ exports.isJSXAttribute = isJSXAttribute;
372
+ exports.isJSXClosingElement = isJSXClosingElement;
373
+ exports.isJSXClosingFragment = isJSXClosingFragment;
374
+ exports.isJSXElement = isJSXElement;
375
+ exports.isJSXEmptyExpression = isJSXEmptyExpression;
376
+ exports.isJSXExpressionContainer = isJSXExpressionContainer;
377
+ exports.isJSXFragment = isJSXFragment;
378
+ exports.isJSXIdentifier = isJSXIdentifier;
379
+ exports.isJSXMemberExpression = isJSXMemberExpression;
380
+ exports.isJSXNamespacedName = isJSXNamespacedName;
381
+ exports.isJSXOpeningElement = isJSXOpeningElement;
382
+ exports.isJSXOpeningFragment = isJSXOpeningFragment;
383
+ exports.isJSXSpreadAttribute = isJSXSpreadAttribute;
384
+ exports.isJSXSpreadChild = isJSXSpreadChild;
385
+ exports.isJSXText = isJSXText;
386
+ exports.isKeyofTypeAnnotation = isKeyofTypeAnnotation;
387
+ exports.isLabeledStatement = isLabeledStatement;
388
+ exports.isLessThanOrEqualToToken = isLessThanOrEqualToToken;
389
+ exports.isLessThanToken = isLessThanToken;
390
+ exports.isLetKeyword = isLetKeyword;
391
+ exports.isLineComment = isLineComment;
392
+ exports.isLiteral = isLiteral;
393
+ exports.isLogicalANDEqualToken = isLogicalANDEqualToken;
394
+ exports.isLogicalANDToken = isLogicalANDToken;
395
+ exports.isLogicalExpression = isLogicalExpression;
396
+ exports.isLogicalNotToken = isLogicalNotToken;
397
+ exports.isLogicalOREqualToken = isLogicalOREqualToken;
398
+ exports.isLogicalORToken = isLogicalORToken;
399
+ exports.isLooseEqualToken = isLooseEqualToken;
400
+ exports.isLooseNotEqualToken = isLooseNotEqualToken;
401
+ exports.isMemberExpression = isMemberExpression;
402
+ exports.isMetaProperty = isMetaProperty;
403
+ exports.isMethodDefinition = isMethodDefinition;
404
+ exports.isMinusEqualToken = isMinusEqualToken;
405
+ exports.isMinusToken = isMinusToken;
406
+ exports.isMixedTypeAnnotation = isMixedTypeAnnotation;
407
+ exports.isModuleKeyword = isModuleKeyword;
408
+ exports.isMultiplyEqualToken = isMultiplyEqualToken;
409
+ exports.isNewExpression = isNewExpression;
410
+ exports.isNewToken = isNewToken;
411
+ exports.isNullLiteralTypeAnnotation = isNullLiteralTypeAnnotation;
412
+ exports.isNullableTypeAnnotation = isNullableTypeAnnotation;
413
+ exports.isNullishCoalesceEqualToken = isNullishCoalesceEqualToken;
414
+ exports.isNullishCoalesceToken = isNullishCoalesceToken;
415
+ exports.isNumberLiteralTypeAnnotation = isNumberLiteralTypeAnnotation;
416
+ exports.isNumberTypeAnnotation = isNumberTypeAnnotation;
417
+ exports.isObjectExpression = isObjectExpression;
418
+ exports.isObjectPattern = isObjectPattern;
419
+ exports.isObjectTypeAnnotation = isObjectTypeAnnotation;
420
+ exports.isObjectTypeCallProperty = isObjectTypeCallProperty;
421
+ exports.isObjectTypeIndexer = isObjectTypeIndexer;
422
+ exports.isObjectTypeInternalSlot = isObjectTypeInternalSlot;
423
+ exports.isObjectTypeMappedTypeProperty = isObjectTypeMappedTypeProperty;
424
+ exports.isObjectTypeProperty = isObjectTypeProperty;
425
+ exports.isObjectTypeSpreadProperty = isObjectTypeSpreadProperty;
426
+ exports.isOfKeyword = isOfKeyword;
427
+ exports.isOpaqueType = isOpaqueType;
428
+ exports.isOpeningAngleBracketToken = isOpeningAngleBracketToken;
429
+ exports.isOpeningCurlyBracketToken = isOpeningCurlyBracketToken;
430
+ exports.isOpeningParenthesisToken = isOpeningParenthesisToken;
431
+ exports.isOptionalChainToken = isOptionalChainToken;
432
+ exports.isOptionalIndexedAccessType = isOptionalIndexedAccessType;
433
+ exports.isPercentToken = isPercentToken;
434
+ exports.isPlusEqualToken = isPlusEqualToken;
435
+ exports.isPlusToken = isPlusToken;
436
+ exports.isPrivateIdentifier = isPrivateIdentifier;
437
+ exports.isProgram = isProgram;
438
+ exports.isProperty = isProperty;
439
+ exports.isPropertyDefinition = isPropertyDefinition;
440
+ exports.isQualifiedTypeIdentifier = isQualifiedTypeIdentifier;
441
+ exports.isQualifiedTypeofIdentifier = isQualifiedTypeofIdentifier;
442
+ exports.isQuestionMarkToken = isQuestionMarkToken;
443
+ exports.isRemainderEqualToken = isRemainderEqualToken;
444
+ exports.isRestElement = isRestElement;
445
+ exports.isReturnStatement = isReturnStatement;
446
+ exports.isReturnToken = isReturnToken;
447
+ exports.isSemicolonToken = isSemicolonToken;
448
+ exports.isSequenceExpression = isSequenceExpression;
449
+ exports.isSetKeyword = isSetKeyword;
450
+ exports.isSpreadElement = isSpreadElement;
451
+ exports.isStaticToken = isStaticToken;
452
+ exports.isStrictEqualToken = isStrictEqualToken;
453
+ exports.isStrictNotEqualToken = isStrictNotEqualToken;
454
+ exports.isStringLiteralTypeAnnotation = isStringLiteralTypeAnnotation;
455
+ exports.isStringTypeAnnotation = isStringTypeAnnotation;
456
+ exports.isSuper = isSuper;
457
+ exports.isSuperToken = isSuperToken;
458
+ exports.isSwitchCase = isSwitchCase;
459
+ exports.isSwitchStatement = isSwitchStatement;
460
+ exports.isSwitchToken = isSwitchToken;
461
+ exports.isSymbolTypeAnnotation = isSymbolTypeAnnotation;
462
+ exports.isTaggedTemplateExpression = isTaggedTemplateExpression;
463
+ exports.isTemplateElement = isTemplateElement;
464
+ exports.isTemplateLiteral = isTemplateLiteral;
465
+ exports.isThisExpression = isThisExpression;
466
+ exports.isThisToken = isThisToken;
467
+ exports.isThisTypeAnnotation = isThisTypeAnnotation;
468
+ exports.isThrowStatement = isThrowStatement;
469
+ exports.isThrowToken = isThrowToken;
470
+ exports.isTryStatement = isTryStatement;
471
+ exports.isTryToken = isTryToken;
472
+ exports.isTupleTypeAnnotation = isTupleTypeAnnotation;
473
+ exports.isTupleTypeLabeledElement = isTupleTypeLabeledElement;
474
+ exports.isTupleTypeSpreadElement = isTupleTypeSpreadElement;
475
+ exports.isTypeAlias = isTypeAlias;
476
+ exports.isTypeAnnotation = isTypeAnnotation;
477
+ exports.isTypeCastExpression = isTypeCastExpression;
478
+ exports.isTypeKeyword = isTypeKeyword;
479
+ exports.isTypeOfToken = isTypeOfToken;
480
+ exports.isTypeOperator = isTypeOperator;
481
+ exports.isTypeParameter = isTypeParameter;
482
+ exports.isTypeParameterDeclaration = isTypeParameterDeclaration;
483
+ exports.isTypeParameterInstantiation = isTypeParameterInstantiation;
484
+ exports.isTypePredicate = isTypePredicate;
485
+ exports.isTypeofTypeAnnotation = isTypeofTypeAnnotation;
486
+ exports.isUnaryExpression = isUnaryExpression;
487
+ exports.isUnaryNegationToken = isUnaryNegationToken;
488
+ exports.isUnionTypeAnnotation = isUnionTypeAnnotation;
489
+ exports.isUnionTypeToken = isUnionTypeToken;
490
+ exports.isUpdateExpression = isUpdateExpression;
491
+ exports.isVarToken = isVarToken;
492
+ exports.isVariableDeclaration = isVariableDeclaration;
493
+ exports.isVariableDeclarator = isVariableDeclarator;
494
+ exports.isVariance = isVariance;
495
+ exports.isVoidToken = isVoidToken;
496
+ exports.isVoidTypeAnnotation = isVoidTypeAnnotation;
497
+ exports.isWhileStatement = isWhileStatement;
498
+ exports.isWhileToken = isWhileToken;
499
+ exports.isWithStatement = isWithStatement;
500
+ exports.isWithToken = isWithToken;
501
+ exports.isYieldExpression = isYieldExpression;
502
+ exports.isYieldToken = isYieldToken;
503
+
504
+ function isIdentifier(node
505
+ /*: ESNode | Token */
506
+ )
507
+ /*: implies node is (Identifier | MostTokens) */
508
+ {
509
+ return node.type === 'Identifier';
510
+ }
511
+
512
+ function isJSXIdentifier(node
513
+ /*: ESNode | Token */
514
+ )
515
+ /*: implies node is (JSXIdentifier | MostTokens) */
516
+ {
517
+ return node.type === 'JSXIdentifier';
518
+ }
519
+
520
+ function isJSXText(node
521
+ /*: ESNode | Token */
522
+ )
523
+ /*: implies node is (JSXText | MostTokens) */
524
+ {
525
+ return node.type === 'JSXText';
526
+ }
527
+
528
+ function isAnyTypeAnnotation(node
529
+ /*: ESNode | Token */
530
+ )
531
+ /*: implies node is AnyTypeAnnotation */
532
+ {
533
+ return node.type === 'AnyTypeAnnotation';
534
+ }
535
+
536
+ function isArrayExpression(node
537
+ /*: ESNode | Token */
538
+ )
539
+ /*: implies node is ArrayExpression */
540
+ {
541
+ return node.type === 'ArrayExpression';
542
+ }
543
+
544
+ function isArrayPattern(node
545
+ /*: ESNode | Token */
546
+ )
547
+ /*: implies node is ArrayPattern */
548
+ {
549
+ return node.type === 'ArrayPattern';
550
+ }
551
+
552
+ function isArrayTypeAnnotation(node
553
+ /*: ESNode | Token */
554
+ )
555
+ /*: implies node is ArrayTypeAnnotation */
556
+ {
557
+ return node.type === 'ArrayTypeAnnotation';
558
+ }
559
+
560
+ function isArrowFunctionExpression(node
561
+ /*: ESNode | Token */
562
+ )
563
+ /*: implies node is ArrowFunctionExpression */
564
+ {
565
+ return node.type === 'ArrowFunctionExpression';
566
+ }
567
+
568
+ function isAsConstExpression(node
569
+ /*: ESNode | Token */
570
+ )
571
+ /*: implies node is AsConstExpression */
572
+ {
573
+ return node.type === 'AsConstExpression';
574
+ }
575
+
576
+ function isAsExpression(node
577
+ /*: ESNode | Token */
578
+ )
579
+ /*: implies node is AsExpression */
580
+ {
581
+ return node.type === 'AsExpression';
582
+ }
583
+
584
+ function isAssignmentExpression(node
585
+ /*: ESNode | Token */
586
+ )
587
+ /*: implies node is AssignmentExpression */
588
+ {
589
+ return node.type === 'AssignmentExpression';
590
+ }
591
+
592
+ function isAssignmentPattern(node
593
+ /*: ESNode | Token */
594
+ )
595
+ /*: implies node is AssignmentPattern */
596
+ {
597
+ return node.type === 'AssignmentPattern';
598
+ }
599
+
600
+ function isAwaitExpression(node
601
+ /*: ESNode | Token */
602
+ )
603
+ /*: implies node is AwaitExpression */
604
+ {
605
+ return node.type === 'AwaitExpression';
606
+ }
607
+
608
+ function isBigIntLiteralTypeAnnotation(node
609
+ /*: ESNode | Token */
610
+ )
611
+ /*: implies node is BigIntLiteralTypeAnnotation */
612
+ {
613
+ return node.type === 'BigIntLiteralTypeAnnotation';
614
+ }
615
+
616
+ function isBigIntTypeAnnotation(node
617
+ /*: ESNode | Token */
618
+ )
619
+ /*: implies node is BigIntTypeAnnotation */
620
+ {
621
+ return node.type === 'BigIntTypeAnnotation';
622
+ }
623
+
624
+ function isBinaryExpression(node
625
+ /*: ESNode | Token */
626
+ )
627
+ /*: implies node is BinaryExpression */
628
+ {
629
+ return node.type === 'BinaryExpression';
630
+ }
631
+
632
+ function isBlockStatement(node
633
+ /*: ESNode | Token */
634
+ )
635
+ /*: implies node is BlockStatement */
636
+ {
637
+ return node.type === 'BlockStatement';
638
+ }
639
+
640
+ function isBooleanLiteralTypeAnnotation(node
641
+ /*: ESNode | Token */
642
+ )
643
+ /*: implies node is BooleanLiteralTypeAnnotation */
644
+ {
645
+ return node.type === 'BooleanLiteralTypeAnnotation';
646
+ }
647
+
648
+ function isBooleanTypeAnnotation(node
649
+ /*: ESNode | Token */
650
+ )
651
+ /*: implies node is BooleanTypeAnnotation */
652
+ {
653
+ return node.type === 'BooleanTypeAnnotation';
654
+ }
655
+
656
+ function isBreakStatement(node
657
+ /*: ESNode | Token */
658
+ )
659
+ /*: implies node is BreakStatement */
660
+ {
661
+ return node.type === 'BreakStatement';
662
+ }
663
+
664
+ function isCallExpression(node
665
+ /*: ESNode | Token */
666
+ )
667
+ /*: implies node is CallExpression */
668
+ {
669
+ return node.type === 'CallExpression';
670
+ }
671
+
672
+ function isCatchClause(node
673
+ /*: ESNode | Token */
674
+ )
675
+ /*: implies node is CatchClause */
676
+ {
677
+ return node.type === 'CatchClause';
678
+ }
679
+
680
+ function isChainExpression(node
681
+ /*: ESNode | Token */
682
+ )
683
+ /*: implies node is ChainExpression */
684
+ {
685
+ return node.type === 'ChainExpression';
686
+ }
687
+
688
+ function isClassBody(node
689
+ /*: ESNode | Token */
690
+ )
691
+ /*: implies node is ClassBody */
692
+ {
693
+ return node.type === 'ClassBody';
694
+ }
695
+
696
+ function isClassDeclaration(node
697
+ /*: ESNode | Token */
698
+ )
699
+ /*: implies node is ClassDeclaration */
700
+ {
701
+ return node.type === 'ClassDeclaration';
702
+ }
703
+
704
+ function isClassExpression(node
705
+ /*: ESNode | Token */
706
+ )
707
+ /*: implies node is ClassExpression */
708
+ {
709
+ return node.type === 'ClassExpression';
710
+ }
711
+
712
+ function isClassImplements(node
713
+ /*: ESNode | Token */
714
+ )
715
+ /*: implies node is ClassImplements */
716
+ {
717
+ return node.type === 'ClassImplements';
718
+ }
719
+
720
+ function isComponentDeclaration(node
721
+ /*: ESNode | Token */
722
+ )
723
+ /*: implies node is ComponentDeclaration */
724
+ {
725
+ return node.type === 'ComponentDeclaration';
726
+ }
727
+
728
+ function isComponentParameter(node
729
+ /*: ESNode | Token */
730
+ )
731
+ /*: implies node is ComponentParameter */
732
+ {
733
+ return node.type === 'ComponentParameter';
734
+ }
735
+
736
+ function isComponentTypeAnnotation(node
737
+ /*: ESNode | Token */
738
+ )
739
+ /*: implies node is ComponentTypeAnnotation */
740
+ {
741
+ return node.type === 'ComponentTypeAnnotation';
742
+ }
743
+
744
+ function isComponentTypeParameter(node
745
+ /*: ESNode | Token */
746
+ )
747
+ /*: implies node is ComponentTypeParameter */
748
+ {
749
+ return node.type === 'ComponentTypeParameter';
750
+ }
751
+
752
+ function isConditionalExpression(node
753
+ /*: ESNode | Token */
754
+ )
755
+ /*: implies node is ConditionalExpression */
756
+ {
757
+ return node.type === 'ConditionalExpression';
758
+ }
759
+
760
+ function isConditionalTypeAnnotation(node
761
+ /*: ESNode | Token */
762
+ )
763
+ /*: implies node is ConditionalTypeAnnotation */
764
+ {
765
+ return node.type === 'ConditionalTypeAnnotation';
766
+ }
767
+
768
+ function isContinueStatement(node
769
+ /*: ESNode | Token */
770
+ )
771
+ /*: implies node is ContinueStatement */
772
+ {
773
+ return node.type === 'ContinueStatement';
774
+ }
775
+
776
+ function isDebuggerStatement(node
777
+ /*: ESNode | Token */
778
+ )
779
+ /*: implies node is DebuggerStatement */
780
+ {
781
+ return node.type === 'DebuggerStatement';
782
+ }
783
+
784
+ function isDeclareClass(node
785
+ /*: ESNode | Token */
786
+ )
787
+ /*: implies node is DeclareClass */
788
+ {
789
+ return node.type === 'DeclareClass';
790
+ }
791
+
792
+ function isDeclareComponent(node
793
+ /*: ESNode | Token */
794
+ )
795
+ /*: implies node is DeclareComponent */
796
+ {
797
+ return node.type === 'DeclareComponent';
798
+ }
799
+
800
+ function isDeclaredPredicate(node
801
+ /*: ESNode | Token */
802
+ )
803
+ /*: implies node is DeclaredPredicate */
804
+ {
805
+ return node.type === 'DeclaredPredicate';
806
+ }
807
+
808
+ function isDeclareEnum(node
809
+ /*: ESNode | Token */
810
+ )
811
+ /*: implies node is DeclareEnum */
812
+ {
813
+ return node.type === 'DeclareEnum';
814
+ }
815
+
816
+ function isDeclareExportAllDeclaration(node
817
+ /*: ESNode | Token */
818
+ )
819
+ /*: implies node is DeclareExportAllDeclaration */
820
+ {
821
+ return node.type === 'DeclareExportAllDeclaration';
822
+ }
823
+
824
+ function isDeclareExportDeclaration(node
825
+ /*: ESNode | Token */
826
+ )
827
+ /*: implies node is DeclareExportDeclaration */
828
+ {
829
+ return node.type === 'DeclareExportDeclaration';
830
+ }
831
+
832
+ function isDeclareFunction(node
833
+ /*: ESNode | Token */
834
+ )
835
+ /*: implies node is DeclareFunction */
836
+ {
837
+ return node.type === 'DeclareFunction';
838
+ }
839
+
840
+ function isDeclareHook(node
841
+ /*: ESNode | Token */
842
+ )
843
+ /*: implies node is DeclareHook */
844
+ {
845
+ return node.type === 'DeclareHook';
846
+ }
847
+
848
+ function isDeclareInterface(node
849
+ /*: ESNode | Token */
850
+ )
851
+ /*: implies node is DeclareInterface */
852
+ {
853
+ return node.type === 'DeclareInterface';
854
+ }
855
+
856
+ function isDeclareModule(node
857
+ /*: ESNode | Token */
858
+ )
859
+ /*: implies node is DeclareModule */
860
+ {
861
+ return node.type === 'DeclareModule';
862
+ }
863
+
864
+ function isDeclareModuleExports(node
865
+ /*: ESNode | Token */
866
+ )
867
+ /*: implies node is DeclareModuleExports */
868
+ {
869
+ return node.type === 'DeclareModuleExports';
870
+ }
871
+
872
+ function isDeclareNamespace(node
873
+ /*: ESNode | Token */
874
+ )
875
+ /*: implies node is DeclareNamespace */
876
+ {
877
+ return node.type === 'DeclareNamespace';
878
+ }
879
+
880
+ function isDeclareOpaqueType(node
881
+ /*: ESNode | Token */
882
+ )
883
+ /*: implies node is DeclareOpaqueType */
884
+ {
885
+ return node.type === 'DeclareOpaqueType';
886
+ }
887
+
888
+ function isDeclareTypeAlias(node
889
+ /*: ESNode | Token */
890
+ )
891
+ /*: implies node is DeclareTypeAlias */
892
+ {
893
+ return node.type === 'DeclareTypeAlias';
894
+ }
895
+
896
+ function isDeclareVariable(node
897
+ /*: ESNode | Token */
898
+ )
899
+ /*: implies node is DeclareVariable */
900
+ {
901
+ return node.type === 'DeclareVariable';
902
+ }
903
+
904
+ function isDoWhileStatement(node
905
+ /*: ESNode | Token */
906
+ )
907
+ /*: implies node is DoWhileStatement */
908
+ {
909
+ return node.type === 'DoWhileStatement';
910
+ }
911
+
912
+ function isEmptyStatement(node
913
+ /*: ESNode | Token */
914
+ )
915
+ /*: implies node is EmptyStatement */
916
+ {
917
+ return node.type === 'EmptyStatement';
918
+ }
919
+
920
+ function isEmptyTypeAnnotation(node
921
+ /*: ESNode | Token */
922
+ )
923
+ /*: implies node is EmptyTypeAnnotation */
924
+ {
925
+ return node.type === 'EmptyTypeAnnotation';
926
+ }
927
+
928
+ function isEnumBigIntBody(node
929
+ /*: ESNode | Token */
930
+ )
931
+ /*: implies node is EnumBigIntBody */
932
+ {
933
+ return node.type === 'EnumBigIntBody';
934
+ }
935
+
936
+ function isEnumBigIntMember(node
937
+ /*: ESNode | Token */
938
+ )
939
+ /*: implies node is EnumBigIntMember */
940
+ {
941
+ return node.type === 'EnumBigIntMember';
942
+ }
943
+
944
+ function isEnumBooleanBody(node
945
+ /*: ESNode | Token */
946
+ )
947
+ /*: implies node is EnumBooleanBody */
948
+ {
949
+ return node.type === 'EnumBooleanBody';
950
+ }
951
+
952
+ function isEnumBooleanMember(node
953
+ /*: ESNode | Token */
954
+ )
955
+ /*: implies node is EnumBooleanMember */
956
+ {
957
+ return node.type === 'EnumBooleanMember';
958
+ }
959
+
960
+ function isEnumDeclaration(node
961
+ /*: ESNode | Token */
962
+ )
963
+ /*: implies node is EnumDeclaration */
964
+ {
965
+ return node.type === 'EnumDeclaration';
966
+ }
967
+
968
+ function isEnumDefaultedMember(node
969
+ /*: ESNode | Token */
970
+ )
971
+ /*: implies node is EnumDefaultedMember */
972
+ {
973
+ return node.type === 'EnumDefaultedMember';
974
+ }
975
+
976
+ function isEnumNumberBody(node
977
+ /*: ESNode | Token */
978
+ )
979
+ /*: implies node is EnumNumberBody */
980
+ {
981
+ return node.type === 'EnumNumberBody';
982
+ }
983
+
984
+ function isEnumNumberMember(node
985
+ /*: ESNode | Token */
986
+ )
987
+ /*: implies node is EnumNumberMember */
988
+ {
989
+ return node.type === 'EnumNumberMember';
990
+ }
991
+
992
+ function isEnumStringBody(node
993
+ /*: ESNode | Token */
994
+ )
995
+ /*: implies node is EnumStringBody */
996
+ {
997
+ return node.type === 'EnumStringBody';
998
+ }
999
+
1000
+ function isEnumStringMember(node
1001
+ /*: ESNode | Token */
1002
+ )
1003
+ /*: implies node is EnumStringMember */
1004
+ {
1005
+ return node.type === 'EnumStringMember';
1006
+ }
1007
+
1008
+ function isEnumSymbolBody(node
1009
+ /*: ESNode | Token */
1010
+ )
1011
+ /*: implies node is EnumSymbolBody */
1012
+ {
1013
+ return node.type === 'EnumSymbolBody';
1014
+ }
1015
+
1016
+ function isExistsTypeAnnotation(node
1017
+ /*: ESNode | Token */
1018
+ )
1019
+ /*: implies node is ExistsTypeAnnotation */
1020
+ {
1021
+ return node.type === 'ExistsTypeAnnotation';
1022
+ }
1023
+
1024
+ function isExportAllDeclaration(node
1025
+ /*: ESNode | Token */
1026
+ )
1027
+ /*: implies node is ExportAllDeclaration */
1028
+ {
1029
+ return node.type === 'ExportAllDeclaration';
1030
+ }
1031
+
1032
+ function isExportDefaultDeclaration(node
1033
+ /*: ESNode | Token */
1034
+ )
1035
+ /*: implies node is ExportDefaultDeclaration */
1036
+ {
1037
+ return node.type === 'ExportDefaultDeclaration';
1038
+ }
1039
+
1040
+ function isExportNamedDeclaration(node
1041
+ /*: ESNode | Token */
1042
+ )
1043
+ /*: implies node is ExportNamedDeclaration */
1044
+ {
1045
+ return node.type === 'ExportNamedDeclaration';
1046
+ }
1047
+
1048
+ function isExportSpecifier(node
1049
+ /*: ESNode | Token */
1050
+ )
1051
+ /*: implies node is ExportSpecifier */
1052
+ {
1053
+ return node.type === 'ExportSpecifier';
1054
+ }
1055
+
1056
+ function isExpressionStatement(node
1057
+ /*: ESNode | Token */
1058
+ )
1059
+ /*: implies node is ExpressionStatement */
1060
+ {
1061
+ return node.type === 'ExpressionStatement';
1062
+ }
1063
+
1064
+ function isForInStatement(node
1065
+ /*: ESNode | Token */
1066
+ )
1067
+ /*: implies node is ForInStatement */
1068
+ {
1069
+ return node.type === 'ForInStatement';
1070
+ }
1071
+
1072
+ function isForOfStatement(node
1073
+ /*: ESNode | Token */
1074
+ )
1075
+ /*: implies node is ForOfStatement */
1076
+ {
1077
+ return node.type === 'ForOfStatement';
1078
+ }
1079
+
1080
+ function isForStatement(node
1081
+ /*: ESNode | Token */
1082
+ )
1083
+ /*: implies node is ForStatement */
1084
+ {
1085
+ return node.type === 'ForStatement';
1086
+ }
1087
+
1088
+ function isFunctionDeclaration(node
1089
+ /*: ESNode | Token */
1090
+ )
1091
+ /*: implies node is FunctionDeclaration */
1092
+ {
1093
+ return node.type === 'FunctionDeclaration';
1094
+ }
1095
+
1096
+ function isFunctionExpression(node
1097
+ /*: ESNode | Token */
1098
+ )
1099
+ /*: implies node is FunctionExpression */
1100
+ {
1101
+ return node.type === 'FunctionExpression';
1102
+ }
1103
+
1104
+ function isFunctionTypeAnnotation(node
1105
+ /*: ESNode | Token */
1106
+ )
1107
+ /*: implies node is FunctionTypeAnnotation */
1108
+ {
1109
+ return node.type === 'FunctionTypeAnnotation';
1110
+ }
1111
+
1112
+ function isFunctionTypeParam(node
1113
+ /*: ESNode | Token */
1114
+ )
1115
+ /*: implies node is FunctionTypeParam */
1116
+ {
1117
+ return node.type === 'FunctionTypeParam';
1118
+ }
1119
+
1120
+ function isGenericTypeAnnotation(node
1121
+ /*: ESNode | Token */
1122
+ )
1123
+ /*: implies node is GenericTypeAnnotation */
1124
+ {
1125
+ return node.type === 'GenericTypeAnnotation';
1126
+ }
1127
+
1128
+ function isHookDeclaration(node
1129
+ /*: ESNode | Token */
1130
+ )
1131
+ /*: implies node is HookDeclaration */
1132
+ {
1133
+ return node.type === 'HookDeclaration';
1134
+ }
1135
+
1136
+ function isHookTypeAnnotation(node
1137
+ /*: ESNode | Token */
1138
+ )
1139
+ /*: implies node is HookTypeAnnotation */
1140
+ {
1141
+ return node.type === 'HookTypeAnnotation';
1142
+ }
1143
+
1144
+ function isIfStatement(node
1145
+ /*: ESNode | Token */
1146
+ )
1147
+ /*: implies node is IfStatement */
1148
+ {
1149
+ return node.type === 'IfStatement';
1150
+ }
1151
+
1152
+ function isImportAttribute(node
1153
+ /*: ESNode | Token */
1154
+ )
1155
+ /*: implies node is ImportAttribute */
1156
+ {
1157
+ return node.type === 'ImportAttribute';
1158
+ }
1159
+
1160
+ function isImportDeclaration(node
1161
+ /*: ESNode | Token */
1162
+ )
1163
+ /*: implies node is ImportDeclaration */
1164
+ {
1165
+ return node.type === 'ImportDeclaration';
1166
+ }
1167
+
1168
+ function isImportDefaultSpecifier(node
1169
+ /*: ESNode | Token */
1170
+ )
1171
+ /*: implies node is ImportDefaultSpecifier */
1172
+ {
1173
+ return node.type === 'ImportDefaultSpecifier';
1174
+ }
1175
+
1176
+ function isImportExpression(node
1177
+ /*: ESNode | Token */
1178
+ )
1179
+ /*: implies node is ImportExpression */
1180
+ {
1181
+ return node.type === 'ImportExpression';
1182
+ }
1183
+
1184
+ function isImportNamespaceSpecifier(node
1185
+ /*: ESNode | Token */
1186
+ )
1187
+ /*: implies node is ImportNamespaceSpecifier */
1188
+ {
1189
+ return node.type === 'ImportNamespaceSpecifier';
1190
+ }
1191
+
1192
+ function isImportSpecifier(node
1193
+ /*: ESNode | Token */
1194
+ )
1195
+ /*: implies node is ImportSpecifier */
1196
+ {
1197
+ return node.type === 'ImportSpecifier';
1198
+ }
1199
+
1200
+ function isIndexedAccessType(node
1201
+ /*: ESNode | Token */
1202
+ )
1203
+ /*: implies node is IndexedAccessType */
1204
+ {
1205
+ return node.type === 'IndexedAccessType';
1206
+ }
1207
+
1208
+ function isInferredPredicate(node
1209
+ /*: ESNode | Token */
1210
+ )
1211
+ /*: implies node is InferredPredicate */
1212
+ {
1213
+ return node.type === 'InferredPredicate';
1214
+ }
1215
+
1216
+ function isInferTypeAnnotation(node
1217
+ /*: ESNode | Token */
1218
+ )
1219
+ /*: implies node is InferTypeAnnotation */
1220
+ {
1221
+ return node.type === 'InferTypeAnnotation';
1222
+ }
1223
+
1224
+ function isInterfaceDeclaration(node
1225
+ /*: ESNode | Token */
1226
+ )
1227
+ /*: implies node is InterfaceDeclaration */
1228
+ {
1229
+ return node.type === 'InterfaceDeclaration';
1230
+ }
1231
+
1232
+ function isInterfaceExtends(node
1233
+ /*: ESNode | Token */
1234
+ )
1235
+ /*: implies node is InterfaceExtends */
1236
+ {
1237
+ return node.type === 'InterfaceExtends';
1238
+ }
1239
+
1240
+ function isInterfaceTypeAnnotation(node
1241
+ /*: ESNode | Token */
1242
+ )
1243
+ /*: implies node is InterfaceTypeAnnotation */
1244
+ {
1245
+ return node.type === 'InterfaceTypeAnnotation';
1246
+ }
1247
+
1248
+ function isIntersectionTypeAnnotation(node
1249
+ /*: ESNode | Token */
1250
+ )
1251
+ /*: implies node is IntersectionTypeAnnotation */
1252
+ {
1253
+ return node.type === 'IntersectionTypeAnnotation';
1254
+ }
1255
+
1256
+ function isJSXAttribute(node
1257
+ /*: ESNode | Token */
1258
+ )
1259
+ /*: implies node is JSXAttribute */
1260
+ {
1261
+ return node.type === 'JSXAttribute';
1262
+ }
1263
+
1264
+ function isJSXClosingElement(node
1265
+ /*: ESNode | Token */
1266
+ )
1267
+ /*: implies node is JSXClosingElement */
1268
+ {
1269
+ return node.type === 'JSXClosingElement';
1270
+ }
1271
+
1272
+ function isJSXClosingFragment(node
1273
+ /*: ESNode | Token */
1274
+ )
1275
+ /*: implies node is JSXClosingFragment */
1276
+ {
1277
+ return node.type === 'JSXClosingFragment';
1278
+ }
1279
+
1280
+ function isJSXElement(node
1281
+ /*: ESNode | Token */
1282
+ )
1283
+ /*: implies node is JSXElement */
1284
+ {
1285
+ return node.type === 'JSXElement';
1286
+ }
1287
+
1288
+ function isJSXEmptyExpression(node
1289
+ /*: ESNode | Token */
1290
+ )
1291
+ /*: implies node is JSXEmptyExpression */
1292
+ {
1293
+ return node.type === 'JSXEmptyExpression';
1294
+ }
1295
+
1296
+ function isJSXExpressionContainer(node
1297
+ /*: ESNode | Token */
1298
+ )
1299
+ /*: implies node is JSXExpressionContainer */
1300
+ {
1301
+ return node.type === 'JSXExpressionContainer';
1302
+ }
1303
+
1304
+ function isJSXFragment(node
1305
+ /*: ESNode | Token */
1306
+ )
1307
+ /*: implies node is JSXFragment */
1308
+ {
1309
+ return node.type === 'JSXFragment';
1310
+ }
1311
+
1312
+ function isJSXMemberExpression(node
1313
+ /*: ESNode | Token */
1314
+ )
1315
+ /*: implies node is JSXMemberExpression */
1316
+ {
1317
+ return node.type === 'JSXMemberExpression';
1318
+ }
1319
+
1320
+ function isJSXNamespacedName(node
1321
+ /*: ESNode | Token */
1322
+ )
1323
+ /*: implies node is JSXNamespacedName */
1324
+ {
1325
+ return node.type === 'JSXNamespacedName';
1326
+ }
1327
+
1328
+ function isJSXOpeningElement(node
1329
+ /*: ESNode | Token */
1330
+ )
1331
+ /*: implies node is JSXOpeningElement */
1332
+ {
1333
+ return node.type === 'JSXOpeningElement';
1334
+ }
1335
+
1336
+ function isJSXOpeningFragment(node
1337
+ /*: ESNode | Token */
1338
+ )
1339
+ /*: implies node is JSXOpeningFragment */
1340
+ {
1341
+ return node.type === 'JSXOpeningFragment';
1342
+ }
1343
+
1344
+ function isJSXSpreadAttribute(node
1345
+ /*: ESNode | Token */
1346
+ )
1347
+ /*: implies node is JSXSpreadAttribute */
1348
+ {
1349
+ return node.type === 'JSXSpreadAttribute';
1350
+ }
1351
+
1352
+ function isJSXSpreadChild(node
1353
+ /*: ESNode | Token */
1354
+ )
1355
+ /*: implies node is JSXSpreadChild */
1356
+ {
1357
+ return node.type === 'JSXSpreadChild';
1358
+ }
1359
+
1360
+ function isKeyofTypeAnnotation(node
1361
+ /*: ESNode | Token */
1362
+ )
1363
+ /*: implies node is KeyofTypeAnnotation */
1364
+ {
1365
+ return node.type === 'KeyofTypeAnnotation';
1366
+ }
1367
+
1368
+ function isLabeledStatement(node
1369
+ /*: ESNode | Token */
1370
+ )
1371
+ /*: implies node is LabeledStatement */
1372
+ {
1373
+ return node.type === 'LabeledStatement';
1374
+ }
1375
+
1376
+ function isLogicalExpression(node
1377
+ /*: ESNode | Token */
1378
+ )
1379
+ /*: implies node is LogicalExpression */
1380
+ {
1381
+ return node.type === 'LogicalExpression';
1382
+ }
1383
+
1384
+ function isMemberExpression(node
1385
+ /*: ESNode | Token */
1386
+ )
1387
+ /*: implies node is MemberExpression */
1388
+ {
1389
+ return node.type === 'MemberExpression';
1390
+ }
1391
+
1392
+ function isMetaProperty(node
1393
+ /*: ESNode | Token */
1394
+ )
1395
+ /*: implies node is MetaProperty */
1396
+ {
1397
+ return node.type === 'MetaProperty';
1398
+ }
1399
+
1400
+ function isMethodDefinition(node
1401
+ /*: ESNode | Token */
1402
+ )
1403
+ /*: implies node is MethodDefinition */
1404
+ {
1405
+ return node.type === 'MethodDefinition';
1406
+ }
1407
+
1408
+ function isMixedTypeAnnotation(node
1409
+ /*: ESNode | Token */
1410
+ )
1411
+ /*: implies node is MixedTypeAnnotation */
1412
+ {
1413
+ return node.type === 'MixedTypeAnnotation';
1414
+ }
1415
+
1416
+ function isNewExpression(node
1417
+ /*: ESNode | Token */
1418
+ )
1419
+ /*: implies node is NewExpression */
1420
+ {
1421
+ return node.type === 'NewExpression';
1422
+ }
1423
+
1424
+ function isNullableTypeAnnotation(node
1425
+ /*: ESNode | Token */
1426
+ )
1427
+ /*: implies node is NullableTypeAnnotation */
1428
+ {
1429
+ return node.type === 'NullableTypeAnnotation';
1430
+ }
1431
+
1432
+ function isNullLiteralTypeAnnotation(node
1433
+ /*: ESNode | Token */
1434
+ )
1435
+ /*: implies node is NullLiteralTypeAnnotation */
1436
+ {
1437
+ return node.type === 'NullLiteralTypeAnnotation';
1438
+ }
1439
+
1440
+ function isNumberLiteralTypeAnnotation(node
1441
+ /*: ESNode | Token */
1442
+ )
1443
+ /*: implies node is NumberLiteralTypeAnnotation */
1444
+ {
1445
+ return node.type === 'NumberLiteralTypeAnnotation';
1446
+ }
1447
+
1448
+ function isNumberTypeAnnotation(node
1449
+ /*: ESNode | Token */
1450
+ )
1451
+ /*: implies node is NumberTypeAnnotation */
1452
+ {
1453
+ return node.type === 'NumberTypeAnnotation';
1454
+ }
1455
+
1456
+ function isObjectExpression(node
1457
+ /*: ESNode | Token */
1458
+ )
1459
+ /*: implies node is ObjectExpression */
1460
+ {
1461
+ return node.type === 'ObjectExpression';
1462
+ }
1463
+
1464
+ function isObjectPattern(node
1465
+ /*: ESNode | Token */
1466
+ )
1467
+ /*: implies node is ObjectPattern */
1468
+ {
1469
+ return node.type === 'ObjectPattern';
1470
+ }
1471
+
1472
+ function isObjectTypeAnnotation(node
1473
+ /*: ESNode | Token */
1474
+ )
1475
+ /*: implies node is ObjectTypeAnnotation */
1476
+ {
1477
+ return node.type === 'ObjectTypeAnnotation';
1478
+ }
1479
+
1480
+ function isObjectTypeCallProperty(node
1481
+ /*: ESNode | Token */
1482
+ )
1483
+ /*: implies node is ObjectTypeCallProperty */
1484
+ {
1485
+ return node.type === 'ObjectTypeCallProperty';
1486
+ }
1487
+
1488
+ function isObjectTypeIndexer(node
1489
+ /*: ESNode | Token */
1490
+ )
1491
+ /*: implies node is ObjectTypeIndexer */
1492
+ {
1493
+ return node.type === 'ObjectTypeIndexer';
1494
+ }
1495
+
1496
+ function isObjectTypeInternalSlot(node
1497
+ /*: ESNode | Token */
1498
+ )
1499
+ /*: implies node is ObjectTypeInternalSlot */
1500
+ {
1501
+ return node.type === 'ObjectTypeInternalSlot';
1502
+ }
1503
+
1504
+ function isObjectTypeMappedTypeProperty(node
1505
+ /*: ESNode | Token */
1506
+ )
1507
+ /*: implies node is ObjectTypeMappedTypeProperty */
1508
+ {
1509
+ return node.type === 'ObjectTypeMappedTypeProperty';
1510
+ }
1511
+
1512
+ function isObjectTypeProperty(node
1513
+ /*: ESNode | Token */
1514
+ )
1515
+ /*: implies node is ObjectTypeProperty */
1516
+ {
1517
+ return node.type === 'ObjectTypeProperty';
1518
+ }
1519
+
1520
+ function isObjectTypeSpreadProperty(node
1521
+ /*: ESNode | Token */
1522
+ )
1523
+ /*: implies node is ObjectTypeSpreadProperty */
1524
+ {
1525
+ return node.type === 'ObjectTypeSpreadProperty';
1526
+ }
1527
+
1528
+ function isOpaqueType(node
1529
+ /*: ESNode | Token */
1530
+ )
1531
+ /*: implies node is OpaqueType */
1532
+ {
1533
+ return node.type === 'OpaqueType';
1534
+ }
1535
+
1536
+ function isOptionalIndexedAccessType(node
1537
+ /*: ESNode | Token */
1538
+ )
1539
+ /*: implies node is OptionalIndexedAccessType */
1540
+ {
1541
+ return node.type === 'OptionalIndexedAccessType';
1542
+ }
1543
+
1544
+ function isPrivateIdentifier(node
1545
+ /*: ESNode | Token */
1546
+ )
1547
+ /*: implies node is PrivateIdentifier */
1548
+ {
1549
+ return node.type === 'PrivateIdentifier';
1550
+ }
1551
+
1552
+ function isProgram(node
1553
+ /*: ESNode | Token */
1554
+ )
1555
+ /*: implies node is Program */
1556
+ {
1557
+ return node.type === 'Program';
1558
+ }
1559
+
1560
+ function isProperty(node
1561
+ /*: ESNode | Token */
1562
+ )
1563
+ /*: implies node is Property */
1564
+ {
1565
+ return node.type === 'Property';
1566
+ }
1567
+
1568
+ function isPropertyDefinition(node
1569
+ /*: ESNode | Token */
1570
+ )
1571
+ /*: implies node is PropertyDefinition */
1572
+ {
1573
+ return node.type === 'PropertyDefinition';
1574
+ }
1575
+
1576
+ function isQualifiedTypeIdentifier(node
1577
+ /*: ESNode | Token */
1578
+ )
1579
+ /*: implies node is QualifiedTypeIdentifier */
1580
+ {
1581
+ return node.type === 'QualifiedTypeIdentifier';
1582
+ }
1583
+
1584
+ function isQualifiedTypeofIdentifier(node
1585
+ /*: ESNode | Token */
1586
+ )
1587
+ /*: implies node is QualifiedTypeofIdentifier */
1588
+ {
1589
+ return node.type === 'QualifiedTypeofIdentifier';
1590
+ }
1591
+
1592
+ function isRestElement(node
1593
+ /*: ESNode | Token */
1594
+ )
1595
+ /*: implies node is RestElement */
1596
+ {
1597
+ return node.type === 'RestElement';
1598
+ }
1599
+
1600
+ function isReturnStatement(node
1601
+ /*: ESNode | Token */
1602
+ )
1603
+ /*: implies node is ReturnStatement */
1604
+ {
1605
+ return node.type === 'ReturnStatement';
1606
+ }
1607
+
1608
+ function isSequenceExpression(node
1609
+ /*: ESNode | Token */
1610
+ )
1611
+ /*: implies node is SequenceExpression */
1612
+ {
1613
+ return node.type === 'SequenceExpression';
1614
+ }
1615
+
1616
+ function isSpreadElement(node
1617
+ /*: ESNode | Token */
1618
+ )
1619
+ /*: implies node is SpreadElement */
1620
+ {
1621
+ return node.type === 'SpreadElement';
1622
+ }
1623
+
1624
+ function isStringLiteralTypeAnnotation(node
1625
+ /*: ESNode | Token */
1626
+ )
1627
+ /*: implies node is StringLiteralTypeAnnotation */
1628
+ {
1629
+ return node.type === 'StringLiteralTypeAnnotation';
1630
+ }
1631
+
1632
+ function isStringTypeAnnotation(node
1633
+ /*: ESNode | Token */
1634
+ )
1635
+ /*: implies node is StringTypeAnnotation */
1636
+ {
1637
+ return node.type === 'StringTypeAnnotation';
1638
+ }
1639
+
1640
+ function isSuper(node
1641
+ /*: ESNode | Token */
1642
+ )
1643
+ /*: implies node is Super */
1644
+ {
1645
+ return node.type === 'Super';
1646
+ }
1647
+
1648
+ function isSwitchCase(node
1649
+ /*: ESNode | Token */
1650
+ )
1651
+ /*: implies node is SwitchCase */
1652
+ {
1653
+ return node.type === 'SwitchCase';
1654
+ }
1655
+
1656
+ function isSwitchStatement(node
1657
+ /*: ESNode | Token */
1658
+ )
1659
+ /*: implies node is SwitchStatement */
1660
+ {
1661
+ return node.type === 'SwitchStatement';
1662
+ }
1663
+
1664
+ function isSymbolTypeAnnotation(node
1665
+ /*: ESNode | Token */
1666
+ )
1667
+ /*: implies node is SymbolTypeAnnotation */
1668
+ {
1669
+ return node.type === 'SymbolTypeAnnotation';
1670
+ }
1671
+
1672
+ function isTaggedTemplateExpression(node
1673
+ /*: ESNode | Token */
1674
+ )
1675
+ /*: implies node is TaggedTemplateExpression */
1676
+ {
1677
+ return node.type === 'TaggedTemplateExpression';
1678
+ }
1679
+
1680
+ function isTemplateElement(node
1681
+ /*: ESNode | Token */
1682
+ )
1683
+ /*: implies node is TemplateElement */
1684
+ {
1685
+ return node.type === 'TemplateElement';
1686
+ }
1687
+
1688
+ function isTemplateLiteral(node
1689
+ /*: ESNode | Token */
1690
+ )
1691
+ /*: implies node is TemplateLiteral */
1692
+ {
1693
+ return node.type === 'TemplateLiteral';
1694
+ }
1695
+
1696
+ function isThisExpression(node
1697
+ /*: ESNode | Token */
1698
+ )
1699
+ /*: implies node is ThisExpression */
1700
+ {
1701
+ return node.type === 'ThisExpression';
1702
+ }
1703
+
1704
+ function isThisTypeAnnotation(node
1705
+ /*: ESNode | Token */
1706
+ )
1707
+ /*: implies node is ThisTypeAnnotation */
1708
+ {
1709
+ return node.type === 'ThisTypeAnnotation';
1710
+ }
1711
+
1712
+ function isThrowStatement(node
1713
+ /*: ESNode | Token */
1714
+ )
1715
+ /*: implies node is ThrowStatement */
1716
+ {
1717
+ return node.type === 'ThrowStatement';
1718
+ }
1719
+
1720
+ function isTryStatement(node
1721
+ /*: ESNode | Token */
1722
+ )
1723
+ /*: implies node is TryStatement */
1724
+ {
1725
+ return node.type === 'TryStatement';
1726
+ }
1727
+
1728
+ function isTupleTypeAnnotation(node
1729
+ /*: ESNode | Token */
1730
+ )
1731
+ /*: implies node is TupleTypeAnnotation */
1732
+ {
1733
+ return node.type === 'TupleTypeAnnotation';
1734
+ }
1735
+
1736
+ function isTupleTypeLabeledElement(node
1737
+ /*: ESNode | Token */
1738
+ )
1739
+ /*: implies node is TupleTypeLabeledElement */
1740
+ {
1741
+ return node.type === 'TupleTypeLabeledElement';
1742
+ }
1743
+
1744
+ function isTupleTypeSpreadElement(node
1745
+ /*: ESNode | Token */
1746
+ )
1747
+ /*: implies node is TupleTypeSpreadElement */
1748
+ {
1749
+ return node.type === 'TupleTypeSpreadElement';
1750
+ }
1751
+
1752
+ function isTypeAlias(node
1753
+ /*: ESNode | Token */
1754
+ )
1755
+ /*: implies node is TypeAlias */
1756
+ {
1757
+ return node.type === 'TypeAlias';
1758
+ }
1759
+
1760
+ function isTypeAnnotation(node
1761
+ /*: ESNode | Token */
1762
+ )
1763
+ /*: implies node is TypeAnnotation */
1764
+ {
1765
+ return node.type === 'TypeAnnotation';
1766
+ }
1767
+
1768
+ function isTypeCastExpression(node
1769
+ /*: ESNode | Token */
1770
+ )
1771
+ /*: implies node is TypeCastExpression */
1772
+ {
1773
+ return node.type === 'TypeCastExpression';
1774
+ }
1775
+
1776
+ function isTypeofTypeAnnotation(node
1777
+ /*: ESNode | Token */
1778
+ )
1779
+ /*: implies node is TypeofTypeAnnotation */
1780
+ {
1781
+ return node.type === 'TypeofTypeAnnotation';
1782
+ }
1783
+
1784
+ function isTypeOperator(node
1785
+ /*: ESNode | Token */
1786
+ )
1787
+ /*: implies node is TypeOperator */
1788
+ {
1789
+ return node.type === 'TypeOperator';
1790
+ }
1791
+
1792
+ function isTypeParameter(node
1793
+ /*: ESNode | Token */
1794
+ )
1795
+ /*: implies node is TypeParameter */
1796
+ {
1797
+ return node.type === 'TypeParameter';
1798
+ }
1799
+
1800
+ function isTypeParameterDeclaration(node
1801
+ /*: ESNode | Token */
1802
+ )
1803
+ /*: implies node is TypeParameterDeclaration */
1804
+ {
1805
+ return node.type === 'TypeParameterDeclaration';
1806
+ }
1807
+
1808
+ function isTypeParameterInstantiation(node
1809
+ /*: ESNode | Token */
1810
+ )
1811
+ /*: implies node is TypeParameterInstantiation */
1812
+ {
1813
+ return node.type === 'TypeParameterInstantiation';
1814
+ }
1815
+
1816
+ function isTypePredicate(node
1817
+ /*: ESNode | Token */
1818
+ )
1819
+ /*: implies node is TypePredicate */
1820
+ {
1821
+ return node.type === 'TypePredicate';
1822
+ }
1823
+
1824
+ function isUnaryExpression(node
1825
+ /*: ESNode | Token */
1826
+ )
1827
+ /*: implies node is UnaryExpression */
1828
+ {
1829
+ return node.type === 'UnaryExpression';
1830
+ }
1831
+
1832
+ function isUnionTypeAnnotation(node
1833
+ /*: ESNode | Token */
1834
+ )
1835
+ /*: implies node is UnionTypeAnnotation */
1836
+ {
1837
+ return node.type === 'UnionTypeAnnotation';
1838
+ }
1839
+
1840
+ function isUpdateExpression(node
1841
+ /*: ESNode | Token */
1842
+ )
1843
+ /*: implies node is UpdateExpression */
1844
+ {
1845
+ return node.type === 'UpdateExpression';
1846
+ }
1847
+
1848
+ function isVariableDeclaration(node
1849
+ /*: ESNode | Token */
1850
+ )
1851
+ /*: implies node is VariableDeclaration */
1852
+ {
1853
+ return node.type === 'VariableDeclaration';
1854
+ }
1855
+
1856
+ function isVariableDeclarator(node
1857
+ /*: ESNode | Token */
1858
+ )
1859
+ /*: implies node is VariableDeclarator */
1860
+ {
1861
+ return node.type === 'VariableDeclarator';
1862
+ }
1863
+
1864
+ function isVariance(node
1865
+ /*: ESNode | Token */
1866
+ )
1867
+ /*: implies node is Variance */
1868
+ {
1869
+ return node.type === 'Variance';
1870
+ }
1871
+
1872
+ function isVoidTypeAnnotation(node
1873
+ /*: ESNode | Token */
1874
+ )
1875
+ /*: implies node is VoidTypeAnnotation */
1876
+ {
1877
+ return node.type === 'VoidTypeAnnotation';
1878
+ }
1879
+
1880
+ function isWhileStatement(node
1881
+ /*: ESNode | Token */
1882
+ )
1883
+ /*: implies node is WhileStatement */
1884
+ {
1885
+ return node.type === 'WhileStatement';
1886
+ }
1887
+
1888
+ function isWithStatement(node
1889
+ /*: ESNode | Token */
1890
+ )
1891
+ /*: implies node is WithStatement */
1892
+ {
1893
+ return node.type === 'WithStatement';
1894
+ }
1895
+
1896
+ function isYieldExpression(node
1897
+ /*: ESNode | Token */
1898
+ )
1899
+ /*: implies node is YieldExpression */
1900
+ {
1901
+ return node.type === 'YieldExpression';
1902
+ }
1903
+
1904
+ function isLiteral(node
1905
+ /*: ESNode | Token */
1906
+ )
1907
+ /*: implies node is Literal */
1908
+ {
1909
+ return node.type === 'Literal';
1910
+ }
1911
+
1912
+ function isLineComment(node
1913
+ /*: ESNode | Token */
1914
+ )
1915
+ /*: implies node is (MostTokens | LineComment) */
1916
+ {
1917
+ return node.type === 'Line';
1918
+ }
1919
+
1920
+ function isBlockComment(node
1921
+ /*: ESNode | Token */
1922
+ )
1923
+ /*: implies node is (MostTokens | BlockComment) */
1924
+ {
1925
+ return node.type === 'Block';
1926
+ }
1927
+
1928
+ function isMinusToken(node
1929
+ /*: ESNode | Token */
1930
+ )
1931
+ /*: implies node is MostTokens */
1932
+ {
1933
+ return node.type === 'Punctuator' && node.value === '-';
1934
+ }
1935
+
1936
+ function isPlusToken(node
1937
+ /*: ESNode | Token */
1938
+ )
1939
+ /*: implies node is MostTokens */
1940
+ {
1941
+ return node.type === 'Punctuator' && node.value === '+';
1942
+ }
1943
+
1944
+ function isLogicalNotToken(node
1945
+ /*: ESNode | Token */
1946
+ )
1947
+ /*: implies node is MostTokens */
1948
+ {
1949
+ return node.type === 'Punctuator' && node.value === '!';
1950
+ }
1951
+
1952
+ function isUnaryNegationToken(node
1953
+ /*: ESNode | Token */
1954
+ )
1955
+ /*: implies node is MostTokens */
1956
+ {
1957
+ return node.type === 'Punctuator' && node.value === '~';
1958
+ }
1959
+
1960
+ function isTypeOfToken(node
1961
+ /*: ESNode | Token */
1962
+ )
1963
+ /*: implies node is MostTokens */
1964
+ {
1965
+ return node.type === 'Keyword' && node.value === 'typeof';
1966
+ }
1967
+
1968
+ function isVoidToken(node
1969
+ /*: ESNode | Token */
1970
+ )
1971
+ /*: implies node is MostTokens */
1972
+ {
1973
+ return node.type === 'Keyword' && node.value === 'void';
1974
+ }
1975
+
1976
+ function isDeleteToken(node
1977
+ /*: ESNode | Token */
1978
+ )
1979
+ /*: implies node is MostTokens */
1980
+ {
1981
+ return node.type === 'Keyword' && node.value === 'delete';
1982
+ }
1983
+
1984
+ function isLooseEqualToken(node
1985
+ /*: ESNode | Token */
1986
+ )
1987
+ /*: implies node is MostTokens */
1988
+ {
1989
+ return node.type === 'Punctuator' && node.value === '==';
1990
+ }
1991
+
1992
+ function isLooseNotEqualToken(node
1993
+ /*: ESNode | Token */
1994
+ )
1995
+ /*: implies node is MostTokens */
1996
+ {
1997
+ return node.type === 'Punctuator' && node.value === '!=';
1998
+ }
1999
+
2000
+ function isStrictEqualToken(node
2001
+ /*: ESNode | Token */
2002
+ )
2003
+ /*: implies node is MostTokens */
2004
+ {
2005
+ return node.type === 'Punctuator' && node.value === '===';
2006
+ }
2007
+
2008
+ function isStrictNotEqualToken(node
2009
+ /*: ESNode | Token */
2010
+ )
2011
+ /*: implies node is MostTokens */
2012
+ {
2013
+ return node.type === 'Punctuator' && node.value === '!==';
2014
+ }
2015
+
2016
+ function isLessThanToken(node
2017
+ /*: ESNode | Token */
2018
+ )
2019
+ /*: implies node is MostTokens */
2020
+ {
2021
+ return node.type === 'Punctuator' && node.value === '<';
2022
+ }
2023
+
2024
+ function isLessThanOrEqualToToken(node
2025
+ /*: ESNode | Token */
2026
+ )
2027
+ /*: implies node is MostTokens */
2028
+ {
2029
+ return node.type === 'Punctuator' && node.value === '<=';
2030
+ }
2031
+
2032
+ function isGreaterThanToken(node
2033
+ /*: ESNode | Token */
2034
+ )
2035
+ /*: implies node is MostTokens */
2036
+ {
2037
+ return node.type === 'Punctuator' && node.value === '>';
2038
+ }
2039
+
2040
+ function isGreaterThanOrEqualToToken(node
2041
+ /*: ESNode | Token */
2042
+ )
2043
+ /*: implies node is MostTokens */
2044
+ {
2045
+ return node.type === 'Punctuator' && node.value === '>=';
2046
+ }
2047
+
2048
+ function isBitwiseLeftShiftToken(node
2049
+ /*: ESNode | Token */
2050
+ )
2051
+ /*: implies node is MostTokens */
2052
+ {
2053
+ return node.type === 'Punctuator' && node.value === '<<';
2054
+ }
2055
+
2056
+ function isBitwiseRightShiftToken(node
2057
+ /*: ESNode | Token */
2058
+ )
2059
+ /*: implies node is MostTokens */
2060
+ {
2061
+ return node.type === 'Punctuator' && node.value === '>>';
2062
+ }
2063
+
2064
+ function isBitwiseUnsignedRightShiftToken(node
2065
+ /*: ESNode | Token */
2066
+ )
2067
+ /*: implies node is MostTokens */
2068
+ {
2069
+ return node.type === 'Punctuator' && node.value === '>>>';
2070
+ }
2071
+
2072
+ function isAsterixToken(node
2073
+ /*: ESNode | Token */
2074
+ )
2075
+ /*: implies node is MostTokens */
2076
+ {
2077
+ return node.type === 'Punctuator' && node.value === '*';
2078
+ }
2079
+
2080
+ function isForwardSlashToken(node
2081
+ /*: ESNode | Token */
2082
+ )
2083
+ /*: implies node is MostTokens */
2084
+ {
2085
+ return node.type === 'Punctuator' && node.value === '/';
2086
+ }
2087
+
2088
+ function isPercentToken(node
2089
+ /*: ESNode | Token */
2090
+ )
2091
+ /*: implies node is MostTokens */
2092
+ {
2093
+ return node.type === 'Punctuator' && node.value === '%';
2094
+ }
2095
+
2096
+ function isExponentiationToken(node
2097
+ /*: ESNode | Token */
2098
+ )
2099
+ /*: implies node is MostTokens */
2100
+ {
2101
+ return node.type === 'Punctuator' && node.value === '**';
2102
+ }
2103
+
2104
+ function isBitwiseORToken(node
2105
+ /*: ESNode | Token */
2106
+ )
2107
+ /*: implies node is MostTokens */
2108
+ {
2109
+ return node.type === 'Punctuator' && node.value === '|';
2110
+ }
2111
+
2112
+ function isBitwiseXORToken(node
2113
+ /*: ESNode | Token */
2114
+ )
2115
+ /*: implies node is MostTokens */
2116
+ {
2117
+ return node.type === 'Punctuator' && node.value === '^';
2118
+ }
2119
+
2120
+ function isBitwiseANDToken(node
2121
+ /*: ESNode | Token */
2122
+ )
2123
+ /*: implies node is MostTokens */
2124
+ {
2125
+ return node.type === 'Punctuator' && node.value === '&';
2126
+ }
2127
+
2128
+ function isInToken(node
2129
+ /*: ESNode | Token */
2130
+ )
2131
+ /*: implies node is MostTokens */
2132
+ {
2133
+ return node.type === 'Keyword' && node.value === 'in';
2134
+ }
2135
+
2136
+ function isInstanceOfToken(node
2137
+ /*: ESNode | Token */
2138
+ )
2139
+ /*: implies node is MostTokens */
2140
+ {
2141
+ return node.type === 'Keyword' && node.value === 'instanceof';
2142
+ }
2143
+
2144
+ function isLogicalORToken(node
2145
+ /*: ESNode | Token */
2146
+ )
2147
+ /*: implies node is MostTokens */
2148
+ {
2149
+ return node.type === 'Punctuator' && node.value === '||';
2150
+ }
2151
+
2152
+ function isLogicalANDToken(node
2153
+ /*: ESNode | Token */
2154
+ )
2155
+ /*: implies node is MostTokens */
2156
+ {
2157
+ return node.type === 'Punctuator' && node.value === '&&';
2158
+ }
2159
+
2160
+ function isNullishCoalesceToken(node
2161
+ /*: ESNode | Token */
2162
+ )
2163
+ /*: implies node is MostTokens */
2164
+ {
2165
+ return node.type === 'Punctuator' && node.value === '??';
2166
+ }
2167
+
2168
+ function isEqualToken(node
2169
+ /*: ESNode | Token */
2170
+ )
2171
+ /*: implies node is MostTokens */
2172
+ {
2173
+ return node.type === 'Punctuator' && node.value === '=';
2174
+ }
2175
+
2176
+ function isPlusEqualToken(node
2177
+ /*: ESNode | Token */
2178
+ )
2179
+ /*: implies node is MostTokens */
2180
+ {
2181
+ return node.type === 'Punctuator' && node.value === '+=';
2182
+ }
2183
+
2184
+ function isMinusEqualToken(node
2185
+ /*: ESNode | Token */
2186
+ )
2187
+ /*: implies node is MostTokens */
2188
+ {
2189
+ return node.type === 'Punctuator' && node.value === '-=';
2190
+ }
2191
+
2192
+ function isMultiplyEqualToken(node
2193
+ /*: ESNode | Token */
2194
+ )
2195
+ /*: implies node is MostTokens */
2196
+ {
2197
+ return node.type === 'Punctuator' && node.value === '*=';
2198
+ }
2199
+
2200
+ function isDivideEqualToken(node
2201
+ /*: ESNode | Token */
2202
+ )
2203
+ /*: implies node is MostTokens */
2204
+ {
2205
+ return node.type === 'Punctuator' && node.value === '/=';
2206
+ }
2207
+
2208
+ function isRemainderEqualToken(node
2209
+ /*: ESNode | Token */
2210
+ )
2211
+ /*: implies node is MostTokens */
2212
+ {
2213
+ return node.type === 'Punctuator' && node.value === '%=';
2214
+ }
2215
+
2216
+ function isExponentateEqualToken(node
2217
+ /*: ESNode | Token */
2218
+ )
2219
+ /*: implies node is MostTokens */
2220
+ {
2221
+ return node.type === 'Punctuator' && node.value === '**=';
2222
+ }
2223
+
2224
+ function isBitwiseLeftShiftEqualToken(node
2225
+ /*: ESNode | Token */
2226
+ )
2227
+ /*: implies node is MostTokens */
2228
+ {
2229
+ return node.type === 'Punctuator' && node.value === '<<=';
2230
+ }
2231
+
2232
+ function isBitwiseRightShiftEqualToken(node
2233
+ /*: ESNode | Token */
2234
+ )
2235
+ /*: implies node is MostTokens */
2236
+ {
2237
+ return node.type === 'Punctuator' && node.value === '>>=';
2238
+ }
2239
+
2240
+ function isBitwiseUnsignedRightShiftEqualToken(node
2241
+ /*: ESNode | Token */
2242
+ )
2243
+ /*: implies node is MostTokens */
2244
+ {
2245
+ return node.type === 'Punctuator' && node.value === '>>>=';
2246
+ }
2247
+
2248
+ function isBitwiseOREqualToken(node
2249
+ /*: ESNode | Token */
2250
+ )
2251
+ /*: implies node is MostTokens */
2252
+ {
2253
+ return node.type === 'Punctuator' && node.value === '|=';
2254
+ }
2255
+
2256
+ function isBitwiseXOREqualToken(node
2257
+ /*: ESNode | Token */
2258
+ )
2259
+ /*: implies node is MostTokens */
2260
+ {
2261
+ return node.type === 'Punctuator' && node.value === '^=';
2262
+ }
2263
+
2264
+ function isBitwiseANDEqualToken(node
2265
+ /*: ESNode | Token */
2266
+ )
2267
+ /*: implies node is MostTokens */
2268
+ {
2269
+ return node.type === 'Punctuator' && node.value === '&=';
2270
+ }
2271
+
2272
+ function isLogicalOREqualToken(node
2273
+ /*: ESNode | Token */
2274
+ )
2275
+ /*: implies node is MostTokens */
2276
+ {
2277
+ return node.type === 'Punctuator' && node.value === '||=';
2278
+ }
2279
+
2280
+ function isLogicalANDEqualToken(node
2281
+ /*: ESNode | Token */
2282
+ )
2283
+ /*: implies node is MostTokens */
2284
+ {
2285
+ return node.type === 'Punctuator' && node.value === '&&=';
2286
+ }
2287
+
2288
+ function isNullishCoalesceEqualToken(node
2289
+ /*: ESNode | Token */
2290
+ )
2291
+ /*: implies node is MostTokens */
2292
+ {
2293
+ return node.type === 'Punctuator' && node.value === '??=';
2294
+ }
2295
+
2296
+ function isIncrementToken(node
2297
+ /*: ESNode | Token */
2298
+ )
2299
+ /*: implies node is MostTokens */
2300
+ {
2301
+ return node.type === 'Punctuator' && node.value === '++';
2302
+ }
2303
+
2304
+ function isDecrementToken(node
2305
+ /*: ESNode | Token */
2306
+ )
2307
+ /*: implies node is MostTokens */
2308
+ {
2309
+ return node.type === 'Punctuator' && node.value === '--';
2310
+ }
2311
+
2312
+ function isUnionTypeToken(node
2313
+ /*: ESNode | Token */
2314
+ )
2315
+ /*: implies node is MostTokens */
2316
+ {
2317
+ return node.type === 'Punctuator' && node.value === '|';
2318
+ }
2319
+
2320
+ function isIntersectionTypeToken(node
2321
+ /*: ESNode | Token */
2322
+ )
2323
+ /*: implies node is MostTokens */
2324
+ {
2325
+ return node.type === 'Punctuator' && node.value === '&';
2326
+ }
2327
+
2328
+ function isBreakToken(node
2329
+ /*: ESNode | Token */
2330
+ )
2331
+ /*: implies node is MostTokens */
2332
+ {
2333
+ return node.type === 'Keyword' && node.value === 'break';
2334
+ }
2335
+
2336
+ function isCaseToken(node
2337
+ /*: ESNode | Token */
2338
+ )
2339
+ /*: implies node is MostTokens */
2340
+ {
2341
+ return node.type === 'Keyword' && node.value === 'case';
2342
+ }
2343
+
2344
+ function isCatchToken(node
2345
+ /*: ESNode | Token */
2346
+ )
2347
+ /*: implies node is MostTokens */
2348
+ {
2349
+ return node.type === 'Keyword' && node.value === 'catch';
2350
+ }
2351
+
2352
+ function isClassToken(node
2353
+ /*: ESNode | Token */
2354
+ )
2355
+ /*: implies node is MostTokens */
2356
+ {
2357
+ return node.type === 'Keyword' && node.value === 'class';
2358
+ }
2359
+
2360
+ function isConstToken(node
2361
+ /*: ESNode | Token */
2362
+ )
2363
+ /*: implies node is MostTokens */
2364
+ {
2365
+ return node.type === 'Keyword' && node.value === 'const';
2366
+ }
2367
+
2368
+ function isContinueToken(node
2369
+ /*: ESNode | Token */
2370
+ )
2371
+ /*: implies node is MostTokens */
2372
+ {
2373
+ return node.type === 'Keyword' && node.value === 'continue';
2374
+ }
2375
+
2376
+ function isDebuggerToken(node
2377
+ /*: ESNode | Token */
2378
+ )
2379
+ /*: implies node is MostTokens */
2380
+ {
2381
+ return node.type === 'Keyword' && node.value === 'debugger';
2382
+ }
2383
+
2384
+ function isDefaultToken(node
2385
+ /*: ESNode | Token */
2386
+ )
2387
+ /*: implies node is MostTokens */
2388
+ {
2389
+ return node.type === 'Keyword' && node.value === 'default';
2390
+ }
2391
+
2392
+ function isDoToken(node
2393
+ /*: ESNode | Token */
2394
+ )
2395
+ /*: implies node is MostTokens */
2396
+ {
2397
+ return node.type === 'Keyword' && node.value === 'do';
2398
+ }
2399
+
2400
+ function isElseToken(node
2401
+ /*: ESNode | Token */
2402
+ )
2403
+ /*: implies node is MostTokens */
2404
+ {
2405
+ return node.type === 'Keyword' && node.value === 'else';
2406
+ }
2407
+
2408
+ function isEnumToken(node
2409
+ /*: ESNode | Token */
2410
+ )
2411
+ /*: implies node is MostTokens */
2412
+ {
2413
+ return node.type === 'Keyword' && node.value === 'enum';
2414
+ }
2415
+
2416
+ function isExportToken(node
2417
+ /*: ESNode | Token */
2418
+ )
2419
+ /*: implies node is MostTokens */
2420
+ {
2421
+ return node.type === 'Keyword' && node.value === 'export';
2422
+ }
2423
+
2424
+ function isExtendsToken(node
2425
+ /*: ESNode | Token */
2426
+ )
2427
+ /*: implies node is MostTokens */
2428
+ {
2429
+ return node.type === 'Keyword' && node.value === 'extends';
2430
+ }
2431
+
2432
+ function isFinallyToken(node
2433
+ /*: ESNode | Token */
2434
+ )
2435
+ /*: implies node is MostTokens */
2436
+ {
2437
+ return node.type === 'Keyword' && node.value === 'finally';
2438
+ }
2439
+
2440
+ function isForToken(node
2441
+ /*: ESNode | Token */
2442
+ )
2443
+ /*: implies node is MostTokens */
2444
+ {
2445
+ return node.type === 'Keyword' && node.value === 'for';
2446
+ }
2447
+
2448
+ function isFunctionToken(node
2449
+ /*: ESNode | Token */
2450
+ )
2451
+ /*: implies node is MostTokens */
2452
+ {
2453
+ return node.type === 'Keyword' && node.value === 'function';
2454
+ }
2455
+
2456
+ function isIfToken(node
2457
+ /*: ESNode | Token */
2458
+ )
2459
+ /*: implies node is MostTokens */
2460
+ {
2461
+ return node.type === 'Keyword' && node.value === 'if';
2462
+ }
2463
+
2464
+ function isImplementsToken(node
2465
+ /*: ESNode | Token */
2466
+ )
2467
+ /*: implies node is MostTokens */
2468
+ {
2469
+ return node.type === 'Keyword' && node.value === 'implements';
2470
+ }
2471
+
2472
+ function isImportToken(node
2473
+ /*: ESNode | Token */
2474
+ )
2475
+ /*: implies node is MostTokens */
2476
+ {
2477
+ return node.type === 'Keyword' && node.value === 'import';
2478
+ }
2479
+
2480
+ function isInterfaceToken(node
2481
+ /*: ESNode | Token */
2482
+ )
2483
+ /*: implies node is MostTokens */
2484
+ {
2485
+ return node.type === 'Keyword' && node.value === 'interface';
2486
+ }
2487
+
2488
+ function isNewToken(node
2489
+ /*: ESNode | Token */
2490
+ )
2491
+ /*: implies node is MostTokens */
2492
+ {
2493
+ return node.type === 'Keyword' && node.value === 'new';
2494
+ }
2495
+
2496
+ function isReturnToken(node
2497
+ /*: ESNode | Token */
2498
+ )
2499
+ /*: implies node is MostTokens */
2500
+ {
2501
+ return node.type === 'Keyword' && node.value === 'return';
2502
+ }
2503
+
2504
+ function isStaticToken(node
2505
+ /*: ESNode | Token */
2506
+ )
2507
+ /*: implies node is MostTokens */
2508
+ {
2509
+ return node.type === 'Keyword' && node.value === 'static';
2510
+ }
2511
+
2512
+ function isSuperToken(node
2513
+ /*: ESNode | Token */
2514
+ )
2515
+ /*: implies node is MostTokens */
2516
+ {
2517
+ return node.type === 'Keyword' && node.value === 'super';
2518
+ }
2519
+
2520
+ function isSwitchToken(node
2521
+ /*: ESNode | Token */
2522
+ )
2523
+ /*: implies node is MostTokens */
2524
+ {
2525
+ return node.type === 'Keyword' && node.value === 'switch';
2526
+ }
2527
+
2528
+ function isThisToken(node
2529
+ /*: ESNode | Token */
2530
+ )
2531
+ /*: implies node is MostTokens */
2532
+ {
2533
+ return node.type === 'Keyword' && node.value === 'this';
2534
+ }
2535
+
2536
+ function isThrowToken(node
2537
+ /*: ESNode | Token */
2538
+ )
2539
+ /*: implies node is MostTokens */
2540
+ {
2541
+ return node.type === 'Keyword' && node.value === 'throw';
2542
+ }
2543
+
2544
+ function isTryToken(node
2545
+ /*: ESNode | Token */
2546
+ )
2547
+ /*: implies node is MostTokens */
2548
+ {
2549
+ return node.type === 'Keyword' && node.value === 'try';
2550
+ }
2551
+
2552
+ function isVarToken(node
2553
+ /*: ESNode | Token */
2554
+ )
2555
+ /*: implies node is MostTokens */
2556
+ {
2557
+ return node.type === 'Keyword' && node.value === 'var';
2558
+ }
2559
+
2560
+ function isWhileToken(node
2561
+ /*: ESNode | Token */
2562
+ )
2563
+ /*: implies node is MostTokens */
2564
+ {
2565
+ return node.type === 'Keyword' && node.value === 'while';
2566
+ }
2567
+
2568
+ function isWithToken(node
2569
+ /*: ESNode | Token */
2570
+ )
2571
+ /*: implies node is MostTokens */
2572
+ {
2573
+ return node.type === 'Keyword' && node.value === 'with';
2574
+ }
2575
+
2576
+ function isYieldToken(node
2577
+ /*: ESNode | Token */
2578
+ )
2579
+ /*: implies node is MostTokens */
2580
+ {
2581
+ return node.type === 'Keyword' && node.value === 'yield';
2582
+ }
2583
+
2584
+ function isAsKeyword(node
2585
+ /*: ESNode | Token */
2586
+ )
2587
+ /*: implies node is (Identifier | MostTokens) */
2588
+ {
2589
+ return node.type === 'Identifier' && node.name === 'as' || node.type === 'Keyword' && node.value === 'as';
2590
+ }
2591
+
2592
+ function isAsyncKeyword(node
2593
+ /*: ESNode | Token */
2594
+ )
2595
+ /*: implies node is (Identifier | MostTokens) */
2596
+ {
2597
+ return node.type === 'Identifier' && node.name === 'async' || node.type === 'Keyword' && node.value === 'async';
2598
+ }
2599
+
2600
+ function isAwaitKeyword(node
2601
+ /*: ESNode | Token */
2602
+ )
2603
+ /*: implies node is (Identifier | MostTokens) */
2604
+ {
2605
+ return node.type === 'Identifier' && node.name === 'await' || node.type === 'Keyword' && node.value === 'await';
2606
+ }
2607
+
2608
+ function isDeclareKeyword(node
2609
+ /*: ESNode | Token */
2610
+ )
2611
+ /*: implies node is (Identifier | MostTokens) */
2612
+ {
2613
+ return node.type === 'Identifier' && node.name === 'declare' || node.type === 'Keyword' && node.value === 'declare';
2614
+ }
2615
+
2616
+ function isFromKeyword(node
2617
+ /*: ESNode | Token */
2618
+ )
2619
+ /*: implies node is (Identifier | MostTokens) */
2620
+ {
2621
+ return node.type === 'Identifier' && node.name === 'from' || node.type === 'Keyword' && node.value === 'from';
2622
+ }
2623
+
2624
+ function isGetKeyword(node
2625
+ /*: ESNode | Token */
2626
+ )
2627
+ /*: implies node is (Identifier | MostTokens) */
2628
+ {
2629
+ return node.type === 'Identifier' && node.name === 'get' || node.type === 'Keyword' && node.value === 'get';
2630
+ }
2631
+
2632
+ function isLetKeyword(node
2633
+ /*: ESNode | Token */
2634
+ )
2635
+ /*: implies node is (Identifier | MostTokens) */
2636
+ {
2637
+ return node.type === 'Identifier' && node.name === 'let' || node.type === 'Keyword' && node.value === 'let';
2638
+ }
2639
+
2640
+ function isModuleKeyword(node
2641
+ /*: ESNode | Token */
2642
+ )
2643
+ /*: implies node is (Identifier | MostTokens) */
2644
+ {
2645
+ return node.type === 'Identifier' && node.name === 'module' || node.type === 'Keyword' && node.value === 'module';
2646
+ }
2647
+
2648
+ function isOfKeyword(node
2649
+ /*: ESNode | Token */
2650
+ )
2651
+ /*: implies node is (Identifier | MostTokens) */
2652
+ {
2653
+ return node.type === 'Identifier' && node.name === 'of' || node.type === 'Keyword' && node.value === 'of';
2654
+ }
2655
+
2656
+ function isSetKeyword(node
2657
+ /*: ESNode | Token */
2658
+ )
2659
+ /*: implies node is (Identifier | MostTokens) */
2660
+ {
2661
+ return node.type === 'Identifier' && node.name === 'set' || node.type === 'Keyword' && node.value === 'set';
2662
+ }
2663
+
2664
+ function isTypeKeyword(node
2665
+ /*: ESNode | Token */
2666
+ )
2667
+ /*: implies node is (Identifier | MostTokens) */
2668
+ {
2669
+ return node.type === 'Identifier' && node.name === 'type' || node.type === 'Keyword' && node.value === 'type';
2670
+ }
2671
+
2672
+ function isCommaToken(node
2673
+ /*: ESNode | Token */
2674
+ )
2675
+ /*: implies node is MostTokens */
2676
+ {
2677
+ return node.type === 'Punctuator' && node.value === ',';
2678
+ }
2679
+
2680
+ function isColonToken(node
2681
+ /*: ESNode | Token */
2682
+ )
2683
+ /*: implies node is MostTokens */
2684
+ {
2685
+ return node.type === 'Punctuator' && node.value === ':';
2686
+ }
2687
+
2688
+ function isSemicolonToken(node
2689
+ /*: ESNode | Token */
2690
+ )
2691
+ /*: implies node is MostTokens */
2692
+ {
2693
+ return node.type === 'Punctuator' && node.value === ';';
2694
+ }
2695
+
2696
+ function isDotToken(node
2697
+ /*: ESNode | Token */
2698
+ )
2699
+ /*: implies node is MostTokens */
2700
+ {
2701
+ return node.type === 'Punctuator' && node.value === '.';
2702
+ }
2703
+
2704
+ function isDotDotDotToken(node
2705
+ /*: ESNode | Token */
2706
+ )
2707
+ /*: implies node is MostTokens */
2708
+ {
2709
+ return node.type === 'Punctuator' && node.value === '...';
2710
+ }
2711
+
2712
+ function isOptionalChainToken(node
2713
+ /*: ESNode | Token */
2714
+ )
2715
+ /*: implies node is MostTokens */
2716
+ {
2717
+ return node.type === 'Punctuator' && node.value === '?.';
2718
+ }
2719
+
2720
+ function isQuestionMarkToken(node
2721
+ /*: ESNode | Token */
2722
+ )
2723
+ /*: implies node is MostTokens */
2724
+ {
2725
+ return node.type === 'Punctuator' && node.value === '?';
2726
+ }
2727
+
2728
+ function isOpeningParenthesisToken(node
2729
+ /*: ESNode | Token */
2730
+ )
2731
+ /*: implies node is MostTokens */
2732
+ {
2733
+ return node.type === 'Punctuator' && node.value === '(';
2734
+ }
2735
+
2736
+ function isClosingParenthesisToken(node
2737
+ /*: ESNode | Token */
2738
+ )
2739
+ /*: implies node is MostTokens */
2740
+ {
2741
+ return node.type === 'Punctuator' && node.value === ')';
2742
+ }
2743
+
2744
+ function isOpeningCurlyBracketToken(node
2745
+ /*: ESNode | Token */
2746
+ )
2747
+ /*: implies node is MostTokens */
2748
+ {
2749
+ return node.type === 'Punctuator' && node.value === '{';
2750
+ }
2751
+
2752
+ function isClosingCurlyBracketToken(node
2753
+ /*: ESNode | Token */
2754
+ )
2755
+ /*: implies node is MostTokens */
2756
+ {
2757
+ return node.type === 'Punctuator' && node.value === '}';
2758
+ }
2759
+
2760
+ function isOpeningAngleBracketToken(node
2761
+ /*: ESNode | Token */
2762
+ )
2763
+ /*: implies node is MostTokens */
2764
+ {
2765
+ return node.type === 'Punctuator' && node.value === '<';
2766
+ }
2767
+
2768
+ function isClosingAngleBracketToken(node
2769
+ /*: ESNode | Token */
2770
+ )
2771
+ /*: implies node is MostTokens */
2772
+ {
2773
+ return node.type === 'Punctuator' && node.value === '>';
2774
+ }