meriyah 4.5.0 → 6.0.0

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.
Files changed (81) hide show
  1. package/CHANGELOG.md +415 -445
  2. package/README.md +52 -34
  3. package/dist/meriyah.cjs +9203 -8807
  4. package/dist/meriyah.min.mjs +1 -0
  5. package/dist/{meriyah.esm.js → meriyah.mjs} +9203 -8807
  6. package/dist/meriyah.umd.js +9203 -8807
  7. package/dist/meriyah.umd.min.js +1 -1
  8. package/dist/src/chars.d.ts +135 -135
  9. package/dist/src/common.d.ts +225 -200
  10. package/dist/src/common.d.ts.map +1 -1
  11. package/dist/src/errors.d.ts +197 -187
  12. package/dist/src/errors.d.ts.map +1 -1
  13. package/dist/src/estree.d.ts +524 -507
  14. package/dist/src/estree.d.ts.map +1 -1
  15. package/dist/src/lexer/charClassifier.d.ts +24 -24
  16. package/dist/src/lexer/charClassifier.d.ts.map +1 -1
  17. package/dist/src/lexer/comments.d.ts +14 -14
  18. package/dist/src/lexer/common.d.ts +25 -26
  19. package/dist/src/lexer/common.d.ts.map +1 -1
  20. package/dist/src/lexer/decodeHTML.d.ts +1 -1
  21. package/dist/src/lexer/decodeHTML.d.ts.map +1 -1
  22. package/dist/src/lexer/identifier.d.ts +8 -8
  23. package/dist/src/lexer/identifier.d.ts.map +1 -1
  24. package/dist/src/lexer/index.d.ts +9 -9
  25. package/dist/src/lexer/index.d.ts.map +1 -1
  26. package/dist/src/lexer/jsx.d.ts +6 -6
  27. package/dist/src/lexer/jsx.d.ts.map +1 -1
  28. package/dist/src/lexer/numeric.d.ts +5 -5
  29. package/dist/src/lexer/numeric.d.ts.map +1 -1
  30. package/dist/src/lexer/regexp.d.ts +3 -3
  31. package/dist/src/lexer/regexp.d.ts.map +1 -1
  32. package/dist/src/lexer/scan.d.ts +6 -6
  33. package/dist/src/lexer/scan.d.ts.map +1 -1
  34. package/dist/src/lexer/string.d.ts +12 -12
  35. package/dist/src/lexer/string.d.ts.map +1 -1
  36. package/dist/src/lexer/template.d.ts +4 -4
  37. package/dist/src/lexer/template.d.ts.map +1 -1
  38. package/dist/src/meriyah.d.ts +7 -7
  39. package/dist/src/meriyah.d.ts.map +1 -1
  40. package/dist/src/parser.d.ts +119 -118
  41. package/dist/src/parser.d.ts.map +1 -1
  42. package/dist/src/token.d.ts +167 -167
  43. package/dist/src/token.d.ts.map +1 -1
  44. package/dist/src/unicode.d.ts +5 -5
  45. package/package.json +44 -48
  46. package/dist/meriyah.amd.js +0 -8854
  47. package/dist/meriyah.amd.min.js +0 -1
  48. package/dist/meriyah.cjs.js +0 -8852
  49. package/dist/meriyah.cjs.min.js +0 -1
  50. package/dist/meriyah.esm.min.js +0 -1
  51. package/dist/meriyah.esm.min.mjs +0 -1
  52. package/dist/meriyah.esm.mjs +0 -8846
  53. package/dist/meriyah.iife.js +0 -8857
  54. package/dist/meriyah.iife.min.js +0 -1
  55. package/dist/meriyah.min.cjs +0 -1
  56. package/dist/meriyah.system.js +0 -8860
  57. package/dist/meriyah.system.min.js +0 -1
  58. package/dist/meriyah.umd.cjs +0 -8858
  59. package/dist/meriyah.umd.es5.js +0 -8927
  60. package/dist/meriyah.umd.es5.min.js +0 -1
  61. package/dist/meriyah.umd.min.cjs +0 -1
  62. package/src/chars.ts +0 -155
  63. package/src/common.ts +0 -841
  64. package/src/errors.ts +0 -419
  65. package/src/estree.ts +0 -817
  66. package/src/lexer/charClassifier.ts +0 -449
  67. package/src/lexer/comments.ts +0 -178
  68. package/src/lexer/common.ts +0 -140
  69. package/src/lexer/decodeHTML.ts +0 -2186
  70. package/src/lexer/identifier.ts +0 -196
  71. package/src/lexer/index.ts +0 -32
  72. package/src/lexer/jsx.ts +0 -126
  73. package/src/lexer/numeric.ts +0 -259
  74. package/src/lexer/regexp.ts +0 -156
  75. package/src/lexer/scan.ts +0 -655
  76. package/src/lexer/string.ts +0 -242
  77. package/src/lexer/template.ts +0 -108
  78. package/src/meriyah.ts +0 -29
  79. package/src/parser.ts +0 -9210
  80. package/src/token.ts +0 -307
  81. package/src/unicode.ts +0 -36
package/src/estree.ts DELETED
@@ -1,817 +0,0 @@
1
- export interface _Node {
2
- start?: number;
3
- end?: number;
4
- range?: [number, number];
5
- loc?: SourceLocation | null;
6
- }
7
-
8
- export interface SourceLocation {
9
- source?: string | null;
10
- start: Position;
11
- end: Position;
12
- }
13
-
14
- export interface Position {
15
- /** >= 1 */
16
- line: number;
17
- /** >= 0 */
18
- column: number;
19
- }
20
-
21
- export type Labels = any;
22
-
23
- export type IdentifierOrExpression = Identifier | Expression | ArrowFunctionExpression;
24
-
25
- export type ArgumentExpression =
26
- | ArrayExpression
27
- | AssignmentExpression
28
- | ConditionalExpression
29
- | Literal
30
- | SpreadElement
31
- | BinaryExpression
32
- | LogicalExpression
33
- | SequenceExpression;
34
-
35
- export type CommentType = 'SingleLine' | 'MultiLine' | 'HTMLOpen' | 'HTMLClose' | 'HashbangComment';
36
-
37
- export interface Comment {
38
- type: CommentType;
39
- value: string;
40
- start?: number;
41
- end?: number;
42
- loc?: SourceLocation | null;
43
- }
44
-
45
- export type Node =
46
- | ArrayExpression
47
- | ArrayPattern
48
- | ArrowFunctionExpression
49
- | AssignmentExpression
50
- | AssignmentPattern
51
- | AwaitExpression
52
- | BigIntLiteral
53
- | BinaryExpression
54
- | BlockStatement
55
- | BreakStatement
56
- | CallExpression
57
- | ChainExpression
58
- | ImportExpression
59
- | CatchClause
60
- | ClassBody
61
- | ClassDeclaration
62
- | ClassExpression
63
- | ConditionalExpression
64
- | ContinueStatement
65
- | DebuggerStatement
66
- | Decorator
67
- | DoWhileStatement
68
- | EmptyStatement
69
- | ExportAllDeclaration
70
- | ExportDefaultDeclaration
71
- | ExportNamedDeclaration
72
- | ExportSpecifier
73
- | ExpressionStatement
74
- | PropertyDefinition
75
- | ForInStatement
76
- | ForOfStatement
77
- | ForStatement
78
- | FunctionDeclaration
79
- | FunctionExpression
80
- | Identifier
81
- | IfStatement
82
- | Import
83
- | ImportDeclaration
84
- | ImportDefaultSpecifier
85
- | ImportNamespaceSpecifier
86
- | ImportSpecifier
87
- | JSXNamespacedName
88
- | JSXAttribute
89
- | JSXClosingElement
90
- | JSXClosingFragment
91
- | JSXElement
92
- | JSXEmptyExpression
93
- | JSXExpressionContainer
94
- | JSXFragment
95
- | JSXIdentifier
96
- | JSXOpeningElement
97
- | JSXOpeningFragment
98
- | JSXSpreadAttribute
99
- | JSXSpreadChild
100
- | JSXMemberExpression
101
- | JSXText
102
- | LabeledStatement
103
- | Literal
104
- | LogicalExpression
105
- | MemberExpression
106
- | MetaProperty
107
- | MethodDefinition
108
- | NewExpression
109
- | ObjectExpression
110
- | ObjectPattern
111
- | ParenthesizedExpression
112
- | PrivateIdentifier
113
- | Program
114
- | Property
115
- | RegExpLiteral
116
- | RestElement
117
- | ReturnStatement
118
- | SequenceExpression
119
- | SpreadElement
120
- | StaticBlock
121
- | Super
122
- | SwitchCase
123
- | SwitchStatement
124
- | TaggedTemplateExpression
125
- | TemplateElement
126
- | TemplateLiteral
127
- | ThisExpression
128
- | ThrowStatement
129
- | TryStatement
130
- | UpdateExpression
131
- | UnaryExpression
132
- | VariableDeclaration
133
- | VariableDeclarator
134
- | WhileStatement
135
- | WithStatement
136
- | YieldExpression;
137
- export type BindingPattern = ArrayPattern | ObjectPattern | Identifier;
138
- export type ClassElement = FunctionExpression | MethodDefinition;
139
- export type DeclarationStatement =
140
- | ClassDeclaration
141
- | ClassExpression
142
- | ExportDefaultDeclaration
143
- | ExportAllDeclaration
144
- | ExportNamedDeclaration
145
- | FunctionDeclaration;
146
- export type EntityName = Identifier;
147
- export type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration;
148
- export type Expression =
149
- | ArrowFunctionExpression
150
- | AssignmentExpression
151
- | BinaryExpression
152
- | ConditionalExpression
153
- | MetaProperty
154
- | ChainExpression
155
- | JSXClosingElement
156
- | JSXClosingFragment
157
- | JSXExpressionContainer
158
- | JSXOpeningElement
159
- | JSXOpeningFragment
160
- | JSXSpreadChild
161
- | LogicalExpression
162
- | NewExpression
163
- | RestElement
164
- | SequenceExpression
165
- | SpreadElement
166
- | AwaitExpression
167
- | LeftHandSideExpression
168
- | UnaryExpression
169
- | UpdateExpression
170
- | YieldExpression;
171
- export type ForInitialiser = Expression | VariableDeclaration;
172
- export type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier;
173
- export type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement;
174
- export type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText;
175
- export type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer;
176
- export type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
177
- export type LeftHandSideExpression =
178
- | CallExpression
179
- | ChainExpression
180
- | ImportExpression
181
- | ClassExpression
182
- | ClassDeclaration
183
- | FunctionExpression
184
- | LiteralExpression
185
- | MemberExpression
186
- | PrimaryExpression
187
- | TaggedTemplateExpression;
188
- export type LiteralExpression = Literal | TemplateLiteral;
189
- export type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement;
190
- export type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier;
191
- export type PrimaryExpression =
192
- | ArrayExpression
193
- | ArrayPattern
194
- | ClassExpression
195
- | FunctionExpression
196
- | Identifier
197
- | Import
198
- | JSXElement
199
- | JSXFragment
200
- | JSXOpeningElement
201
- | Literal
202
- | LiteralExpression
203
- | MetaProperty
204
- | ObjectExpression
205
- | ObjectPattern
206
- | Super
207
- | TemplateLiteral
208
- | ThisExpression;
209
- export type PrimaryExpressionExtended =
210
- | ArrayExpression
211
- | ArrowFunctionExpression
212
- | ArrayPattern
213
- | AwaitExpression
214
- | Expression
215
- | ClassExpression
216
- | FunctionExpression
217
- | Identifier
218
- | Import
219
- | JSXElement
220
- | JSXFragment
221
- | JSXOpeningElement
222
- | Literal
223
- | LiteralExpression
224
- | MetaProperty
225
- | ObjectExpression
226
- | ObjectPattern
227
- | PrivateIdentifier
228
- | NewExpression
229
- | Super
230
- | TemplateLiteral
231
- | ThisExpression
232
- | UnaryExpression
233
- | UpdateExpression;
234
- export type PropertyName = Identifier | Literal;
235
- export type Statement =
236
- | BlockStatement
237
- | BreakStatement
238
- | ContinueStatement
239
- | DebuggerStatement
240
- | DeclarationStatement
241
- | EmptyStatement
242
- | ExpressionStatement
243
- | IfStatement
244
- | IterationStatement
245
- | ImportDeclaration
246
- | LabeledStatement
247
- | ReturnStatement
248
- | SwitchStatement
249
- | ThrowStatement
250
- | TryStatement
251
- | VariableDeclaration
252
- | WithStatement;
253
-
254
- interface ClassDeclarationBase extends _Node {
255
- id: Identifier | null;
256
- body: ClassBody;
257
- superClass: Expression | null;
258
- decorators?: Decorator[];
259
- }
260
-
261
- interface FunctionDeclarationBase extends _Node {
262
- id: Identifier | null;
263
- generator: boolean;
264
- async: boolean;
265
- params: Parameter[];
266
- body?: BlockStatement | null;
267
- }
268
-
269
- interface MethodDefinitionBase extends _Node {
270
- key: Expression | PrivateIdentifier | null;
271
- value: FunctionExpression;
272
- computed: boolean;
273
- static: boolean;
274
- kind: 'method' | 'get' | 'set' | 'constructor';
275
- decorators?: Decorator[];
276
- }
277
-
278
- export interface BlockStatementBase extends _Node {
279
- body: Statement[];
280
- }
281
-
282
- export interface ArrayExpression extends _Node {
283
- type: 'ArrayExpression';
284
- elements: (Expression | SpreadElement | null)[];
285
- }
286
-
287
- export interface ArrayPattern extends _Node {
288
- type: 'ArrayPattern';
289
- elements: Expression[];
290
- }
291
-
292
- export interface ArrowFunctionExpression extends _Node {
293
- type: 'ArrowFunctionExpression';
294
- params: Parameter[];
295
- body: Expression | BlockStatement;
296
- async: boolean;
297
- expression: boolean;
298
- }
299
-
300
- export interface AssignmentExpression extends _Node {
301
- type: 'AssignmentExpression';
302
- operator: string;
303
- left: Expression;
304
- right: Expression;
305
- }
306
-
307
- export interface AssignmentPattern extends _Node {
308
- type: 'AssignmentPattern';
309
- left: BindingPattern | Identifier;
310
- right?: Expression;
311
- }
312
-
313
- export interface AwaitExpression extends _Node {
314
- type: 'AwaitExpression';
315
- argument: Expression;
316
- }
317
-
318
- export interface BigIntLiteral extends Literal {
319
- bigint: string;
320
- }
321
-
322
- export interface BinaryExpression extends _Node {
323
- type: 'BinaryExpression';
324
- operator: string;
325
- left: Expression;
326
- right: Expression;
327
- }
328
-
329
- export interface BlockStatement extends BlockStatementBase {
330
- type: 'BlockStatement';
331
- }
332
-
333
- export interface BreakStatement extends _Node {
334
- type: 'BreakStatement';
335
- label: Identifier | null;
336
- }
337
-
338
- export interface ImportExpression extends _Node {
339
- type: 'ImportExpression';
340
- source: Expression;
341
- }
342
-
343
- export interface ChainExpression extends _Node {
344
- type: 'ChainExpression';
345
- expression: CallExpression | MemberExpression;
346
- }
347
-
348
- export interface CallExpression extends _Node {
349
- type: 'CallExpression';
350
- callee: any; //Expression | Super;
351
- arguments: (Expression | SpreadElement)[];
352
- optional?: boolean;
353
- }
354
-
355
- export interface CatchClause extends _Node {
356
- type: 'CatchClause';
357
- param: BindingPattern | Identifier | null;
358
- body: BlockStatement;
359
- }
360
-
361
- export interface StaticBlock extends BlockStatementBase {
362
- type: 'StaticBlock';
363
- }
364
-
365
- export interface ClassBody extends _Node {
366
- type: 'ClassBody';
367
- body: (ClassElement | PropertyDefinition | StaticBlock)[];
368
- }
369
-
370
- export interface PropertyDefinition extends _Node {
371
- type: 'PropertyDefinition';
372
- key: PrivateIdentifier | Expression;
373
- value: any;
374
- decorators?: Decorator[] | null;
375
- computed: boolean;
376
- static: boolean;
377
- }
378
-
379
- export interface PrivateIdentifier extends _Node {
380
- type: 'PrivateIdentifier';
381
- name: string;
382
- }
383
-
384
- export interface ClassDeclaration extends ClassDeclarationBase {
385
- type: 'ClassDeclaration';
386
- }
387
-
388
- export interface ClassExpression extends ClassDeclarationBase {
389
- type: 'ClassExpression';
390
- }
391
-
392
- export interface ConditionalExpression extends _Node {
393
- type: 'ConditionalExpression';
394
- test: Expression;
395
- consequent: Expression;
396
- alternate: Expression;
397
- }
398
-
399
- export interface ContinueStatement extends _Node {
400
- type: 'ContinueStatement';
401
- label: Identifier | null;
402
- }
403
-
404
- export interface DebuggerStatement extends _Node {
405
- type: 'DebuggerStatement';
406
- }
407
-
408
- export interface Decorator extends _Node {
409
- type: 'Decorator';
410
- expression: LeftHandSideExpression;
411
- }
412
-
413
- export interface DoWhileStatement extends _Node {
414
- type: 'DoWhileStatement';
415
- test: Expression;
416
- body: Statement;
417
- }
418
-
419
- export interface EmptyStatement extends _Node {
420
- type: 'EmptyStatement';
421
- }
422
-
423
- export interface ExportAllDeclaration extends _Node {
424
- type: 'ExportAllDeclaration';
425
- source: Literal;
426
- exported: Identifier | null;
427
- }
428
-
429
- export interface ExportDefaultDeclaration extends _Node {
430
- type: 'ExportDefaultDeclaration';
431
- declaration: ExportDeclaration | Expression;
432
- }
433
-
434
- export interface ExportNamedDeclaration extends _Node {
435
- type: 'ExportNamedDeclaration';
436
- declaration: ExportDeclaration | null;
437
- specifiers: ExportSpecifier[];
438
- source: Literal | null;
439
- }
440
-
441
- export interface ExportSpecifier extends _Node {
442
- type: 'ExportSpecifier';
443
- local: Identifier;
444
- exported: Identifier;
445
- }
446
-
447
- export interface ExpressionStatement extends _Node {
448
- type: 'ExpressionStatement';
449
- expression: Expression;
450
- }
451
-
452
- export interface ForInStatement extends _Node {
453
- type: 'ForInStatement';
454
- left: ForInitialiser;
455
- right: Expression;
456
- body: Statement;
457
- }
458
-
459
- export interface ForOfStatement extends _Node {
460
- type: 'ForOfStatement';
461
- left: ForInitialiser;
462
- right: Expression;
463
- body: Statement;
464
- await: boolean;
465
- }
466
-
467
- export interface ForStatement extends _Node {
468
- type: 'ForStatement';
469
- init: Expression | ForInitialiser | null;
470
- test: Expression | null;
471
- update: Expression | null;
472
- body: Statement;
473
- }
474
-
475
- export interface FunctionDeclaration extends FunctionDeclarationBase {
476
- type: 'FunctionDeclaration';
477
- }
478
-
479
- export interface FunctionExpression extends FunctionDeclarationBase {
480
- type: 'FunctionExpression';
481
- }
482
-
483
- export interface Identifier extends _Node {
484
- type: 'Identifier';
485
- name: string;
486
- }
487
-
488
- export interface IfStatement extends _Node {
489
- type: 'IfStatement';
490
- test: Expression;
491
- consequent: Statement;
492
- alternate: Statement | null;
493
- }
494
-
495
- export interface Import extends _Node {
496
- type: 'Import';
497
- }
498
-
499
- export interface ImportDeclaration extends _Node {
500
- type: 'ImportDeclaration';
501
- source: Literal;
502
- specifiers: ImportClause[];
503
- }
504
-
505
- export interface ImportDefaultSpecifier extends _Node {
506
- type: 'ImportDefaultSpecifier';
507
- local: Identifier;
508
- }
509
-
510
- export interface ImportNamespaceSpecifier extends _Node {
511
- type: 'ImportNamespaceSpecifier';
512
- local: Identifier;
513
- }
514
-
515
- export interface ImportSpecifier extends _Node {
516
- type: 'ImportSpecifier';
517
- local: Identifier;
518
- imported: Identifier;
519
- }
520
-
521
- export interface JSXNamespacedName extends _Node {
522
- type: 'JSXNamespacedName';
523
- namespace: JSXIdentifier | JSXMemberExpression;
524
- name: JSXIdentifier;
525
- }
526
-
527
- export type JSXAttributeValue =
528
- | JSXIdentifier
529
- | Literal
530
- | JSXElement
531
- | JSXFragment
532
- | JSXExpressionContainer
533
- | JSXSpreadChild
534
- | null;
535
-
536
- export interface JSXAttribute extends _Node {
537
- type: 'JSXAttribute';
538
- name: JSXNamespacedName | JSXIdentifier;
539
- value: JSXAttributeValue;
540
- }
541
-
542
- export interface JSXClosingElement extends _Node {
543
- type: 'JSXClosingElement';
544
- name: JSXTagNameExpression;
545
- }
546
-
547
- export interface JSXClosingFragment extends _Node {
548
- type: 'JSXClosingFragment';
549
- }
550
-
551
- export interface JSXElement extends _Node {
552
- type: 'JSXElement';
553
- openingElement: JSXOpeningElement;
554
- closingElement: JSXClosingElement | null;
555
- children: JSXChild[];
556
- }
557
-
558
- export interface JSXEmptyExpression extends _Node {
559
- type: 'JSXEmptyExpression';
560
- }
561
-
562
- export interface JSXExpressionContainer extends _Node {
563
- type: 'JSXExpressionContainer';
564
- expression: Expression | JSXEmptyExpression;
565
- }
566
-
567
- export interface JSXFragment extends _Node {
568
- type: 'JSXFragment';
569
- openingFragment: JSXOpeningFragment;
570
- closingFragment: JSXClosingFragment;
571
- children: JSXChild[];
572
- }
573
-
574
- export interface JSXIdentifier extends _Node {
575
- type: 'JSXIdentifier';
576
- name: string;
577
- }
578
-
579
- export interface JSXMemberExpression extends _Node {
580
- type: 'JSXMemberExpression';
581
- object: JSXTagNameExpression;
582
- property: JSXIdentifier;
583
- }
584
-
585
- export interface JSXOpeningElement extends _Node {
586
- type: 'JSXOpeningElement';
587
- selfClosing: boolean;
588
- name: JSXTagNameExpression;
589
- attributes: (JSXAttribute | JSXSpreadAttribute)[];
590
- }
591
-
592
- export interface JSXOpeningFragment extends _Node {
593
- type: 'JSXOpeningFragment';
594
- }
595
-
596
- export interface JSXSpreadAttribute extends _Node {
597
- type: 'JSXSpreadAttribute';
598
- argument: Expression;
599
- }
600
-
601
- export interface JSXSpreadChild extends _Node {
602
- type: 'JSXSpreadChild';
603
- expression: Expression | JSXEmptyExpression;
604
- }
605
-
606
- export interface JSXText extends _Node {
607
- type: 'JSXText';
608
- value: string;
609
- raw?: string;
610
- }
611
-
612
- export interface LabeledStatement extends _Node {
613
- type: 'LabeledStatement';
614
- label: Identifier;
615
- body: Statement;
616
- }
617
-
618
- export interface Literal extends _Node {
619
- type: 'Literal';
620
- value: boolean | number | string | null | RegExp | bigint;
621
- raw?: string;
622
- }
623
-
624
- export interface LogicalExpression extends _Node {
625
- type: 'LogicalExpression';
626
- operator: string;
627
- left: Expression;
628
- right: Expression;
629
- }
630
-
631
- export interface MemberExpression extends _Node {
632
- type: 'MemberExpression';
633
- object: Expression | Super;
634
- property: Expression | PrivateIdentifier;
635
- computed?: boolean;
636
- optional?: boolean;
637
- }
638
-
639
- export type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
640
-
641
- export interface MetaProperty extends _Node {
642
- type: 'MetaProperty';
643
- meta: Identifier;
644
- property: Identifier;
645
- }
646
-
647
- export interface MethodDefinition extends MethodDefinitionBase {
648
- type: 'MethodDefinition';
649
- }
650
-
651
- export interface NewExpression extends _Node {
652
- type: 'NewExpression';
653
- callee: LeftHandSideExpression;
654
- arguments: Expression[];
655
- }
656
-
657
- export interface ObjectExpression extends _Node {
658
- type: 'ObjectExpression';
659
- properties: ObjectLiteralElementLike[];
660
- }
661
-
662
- export interface ObjectPattern extends _Node {
663
- type: 'ObjectPattern';
664
- properties: ObjectLiteralElementLike[];
665
- }
666
-
667
- export interface Program extends _Node {
668
- type: 'Program';
669
- body: Statement[];
670
- sourceType: 'module' | 'script';
671
- }
672
-
673
- export interface ParenthesizedExpression extends _Node {
674
- type: 'ParenthesizedExpression';
675
- expression: Expression;
676
- }
677
-
678
- export interface Property extends _Node {
679
- type: 'Property';
680
- key: Expression;
681
- value: Expression | AssignmentPattern | BindingPattern | Identifier;
682
- computed: boolean;
683
- method: boolean;
684
- shorthand: boolean;
685
- kind: 'init' | 'get' | 'set';
686
- }
687
-
688
- export interface RegExpLiteral extends Literal {
689
- regex: {
690
- pattern: string;
691
- flags: string;
692
- };
693
- }
694
-
695
- export interface RestElement extends _Node {
696
- type: 'RestElement';
697
- argument: BindingPattern | Identifier | Expression | PropertyName;
698
- value?: AssignmentPattern;
699
- }
700
-
701
- export interface ReturnStatement extends _Node {
702
- type: 'ReturnStatement';
703
- argument: Expression | null;
704
- }
705
-
706
- export interface SequenceExpression extends _Node {
707
- type: 'SequenceExpression';
708
- expressions: Expression[];
709
- }
710
-
711
- export type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement;
712
-
713
- export interface SpreadElement extends _Node {
714
- type: 'SpreadElement';
715
- argument: SpreadArgument;
716
- }
717
-
718
- export interface Super extends _Node {
719
- type: 'Super';
720
- }
721
-
722
- export interface SwitchCase extends _Node {
723
- type: 'SwitchCase';
724
- test: Expression | null;
725
- consequent: Statement[];
726
- }
727
-
728
- export interface SwitchStatement extends _Node {
729
- type: 'SwitchStatement';
730
- discriminant: Expression;
731
- cases: SwitchCase[];
732
- }
733
-
734
- export interface TaggedTemplateExpression extends _Node {
735
- type: 'TaggedTemplateExpression';
736
- tag: Expression;
737
- quasi: TemplateLiteral;
738
- }
739
-
740
- export interface TemplateElement extends _Node {
741
- type: 'TemplateElement';
742
- value: {
743
- raw: string;
744
- cooked: string | null;
745
- };
746
- tail: boolean;
747
- }
748
-
749
- export interface TemplateLiteral extends _Node {
750
- type: 'TemplateLiteral';
751
- quasis: TemplateElement[];
752
- expressions: Expression[];
753
- }
754
-
755
- export interface ThisExpression extends _Node {
756
- type: 'ThisExpression';
757
- }
758
-
759
- export interface ThrowStatement extends _Node {
760
- type: 'ThrowStatement';
761
- argument: Expression;
762
- }
763
-
764
- export interface TryStatement extends _Node {
765
- type: 'TryStatement';
766
- block: BlockStatement;
767
- handler: CatchClause | null;
768
- finalizer: BlockStatement | null;
769
- }
770
-
771
- export type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete';
772
- export type UpdateOperator = '++' | '--';
773
-
774
- export interface UpdateExpression extends _Node {
775
- type: 'UpdateExpression';
776
- operator: UpdateOperator;
777
- argument: Expression;
778
- prefix: boolean;
779
- }
780
-
781
- export interface UnaryExpression extends _Node {
782
- type: 'UnaryExpression';
783
- operator: UnaryOperator;
784
- prefix: true;
785
- argument: Expression;
786
- }
787
-
788
- export interface VariableDeclaration extends _Node {
789
- type: 'VariableDeclaration';
790
- declarations: VariableDeclarator[];
791
- kind: 'let' | 'const' | 'var';
792
- }
793
-
794
- export interface VariableDeclarator extends _Node {
795
- type: 'VariableDeclarator';
796
- id: Expression | BindingPattern | Identifier;
797
- init: Expression | null;
798
- definite?: boolean;
799
- }
800
-
801
- export interface WhileStatement extends _Node {
802
- type: 'WhileStatement';
803
- test: Expression;
804
- body: Statement;
805
- }
806
-
807
- export interface WithStatement extends _Node {
808
- type: 'WithStatement';
809
- object: Expression;
810
- body: Statement;
811
- }
812
-
813
- export interface YieldExpression extends _Node {
814
- type: 'YieldExpression';
815
- delegate: boolean;
816
- argument?: Expression | null;
817
- }