@ibyar/expressions 0.8.2-dev.20221008 → 0.8.4

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 (172) hide show
  1. package/README.md +0 -3
  2. package/api/abstract.d.ts +6 -5
  3. package/api/abstract.js +15 -12
  4. package/api/abstract.js.map +1 -1
  5. package/api/class/class.d.ts +99 -60
  6. package/api/class/class.js +285 -233
  7. package/api/class/class.js.map +1 -1
  8. package/api/class/decorator.d.ts +2 -4
  9. package/api/class/decorator.js +6 -9
  10. package/api/class/decorator.js.map +1 -1
  11. package/api/computing/call.d.ts +2 -4
  12. package/api/computing/call.js +8 -11
  13. package/api/computing/call.js.map +1 -1
  14. package/api/computing/debugger.d.ts +1 -4
  15. package/api/computing/debugger.js +2 -5
  16. package/api/computing/debugger.js.map +1 -1
  17. package/api/computing/new.d.ts +2 -4
  18. package/api/computing/new.js +7 -10
  19. package/api/computing/new.js.map +1 -1
  20. package/api/computing/rest.d.ts +2 -4
  21. package/api/computing/rest.js +6 -9
  22. package/api/computing/rest.js.map +1 -1
  23. package/api/computing/return.d.ts +2 -4
  24. package/api/computing/return.js +6 -9
  25. package/api/computing/return.js.map +1 -1
  26. package/api/computing/spread.d.ts +2 -4
  27. package/api/computing/spread.js +6 -9
  28. package/api/computing/spread.js.map +1 -1
  29. package/api/computing/throw.d.ts +4 -8
  30. package/api/computing/throw.js +18 -23
  31. package/api/computing/throw.js.map +1 -1
  32. package/api/computing/yield.d.ts +2 -4
  33. package/api/computing/yield.js +7 -10
  34. package/api/computing/yield.js.map +1 -1
  35. package/api/definition/array.d.ts +3 -6
  36. package/api/definition/array.js +14 -18
  37. package/api/definition/array.js.map +1 -1
  38. package/api/definition/bind.d.ts +2 -3
  39. package/api/definition/bind.js +9 -10
  40. package/api/definition/bind.js.map +1 -1
  41. package/api/definition/comment.d.ts +3 -5
  42. package/api/definition/comment.js +6 -7
  43. package/api/definition/comment.js.map +1 -1
  44. package/api/definition/function.d.ts +20 -27
  45. package/api/definition/function.js +92 -110
  46. package/api/definition/function.js.map +1 -1
  47. package/api/definition/member.d.ts +2 -3
  48. package/api/definition/member.js +14 -11
  49. package/api/definition/member.js.map +1 -1
  50. package/api/definition/object.d.ts +5 -9
  51. package/api/definition/object.js +24 -30
  52. package/api/definition/object.js.map +1 -1
  53. package/api/definition/statement.d.ts +2 -4
  54. package/api/definition/statement.js +6 -9
  55. package/api/definition/statement.js.map +1 -1
  56. package/api/definition/values.d.ts +15 -40
  57. package/api/definition/values.js +49 -79
  58. package/api/definition/values.js.map +1 -1
  59. package/api/expression.d.ts +40 -26
  60. package/api/expression.js.map +1 -1
  61. package/api/index.d.ts +1 -0
  62. package/api/index.js +1 -0
  63. package/api/index.js.map +1 -1
  64. package/api/module/common.d.ts +4 -5
  65. package/api/module/common.js +12 -12
  66. package/api/module/common.js.map +1 -1
  67. package/api/module/export.d.ts +5 -10
  68. package/api/module/export.js +35 -38
  69. package/api/module/export.js.map +1 -1
  70. package/api/module/import.d.ts +6 -10
  71. package/api/module/import.js +28 -32
  72. package/api/module/import.js.map +1 -1
  73. package/api/operators/assignment.d.ts +3 -3
  74. package/api/operators/assignment.js +5 -5
  75. package/api/operators/assignment.js.map +1 -1
  76. package/api/operators/await.d.ts +3 -5
  77. package/api/operators/await.js +7 -10
  78. package/api/operators/await.js.map +1 -1
  79. package/api/operators/binary.d.ts +1 -1
  80. package/api/operators/binary.js +1 -1
  81. package/api/operators/binary.js.map +1 -1
  82. package/api/operators/chaining.d.ts +2 -3
  83. package/api/operators/chaining.js +6 -7
  84. package/api/operators/chaining.js.map +1 -1
  85. package/api/operators/comma.d.ts +2 -4
  86. package/api/operators/comma.js +6 -9
  87. package/api/operators/comma.js.map +1 -1
  88. package/api/operators/grouping.d.ts +2 -4
  89. package/api/operators/grouping.js +6 -9
  90. package/api/operators/grouping.js.map +1 -1
  91. package/api/operators/logical.d.ts +1 -1
  92. package/api/operators/logical.js +1 -1
  93. package/api/operators/logical.js.map +1 -1
  94. package/api/operators/pipeline.d.ts +2 -4
  95. package/api/operators/pipeline.js +8 -15
  96. package/api/operators/pipeline.js.map +1 -1
  97. package/api/operators/ternary.d.ts +2 -4
  98. package/api/operators/ternary.js +8 -13
  99. package/api/operators/ternary.js.map +1 -1
  100. package/api/operators/types.d.ts +1 -1
  101. package/api/operators/unary.d.ts +3 -5
  102. package/api/operators/unary.js +7 -10
  103. package/api/operators/unary.js.map +1 -1
  104. package/api/operators/update.d.ts +3 -5
  105. package/api/operators/update.js +8 -11
  106. package/api/operators/update.js.map +1 -1
  107. package/api/program.d.ts +3 -5
  108. package/api/program.js +7 -8
  109. package/api/program.js.map +1 -1
  110. package/api/statement/control/block.d.ts +2 -4
  111. package/api/statement/control/block.js +9 -14
  112. package/api/statement/control/block.js.map +1 -1
  113. package/api/statement/control/empty.d.ts +2 -5
  114. package/api/statement/control/empty.js +6 -8
  115. package/api/statement/control/empty.js.map +1 -1
  116. package/api/statement/control/if.d.ts +2 -4
  117. package/api/statement/control/if.js +8 -13
  118. package/api/statement/control/if.js.map +1 -1
  119. package/api/statement/control/switch.d.ts +4 -9
  120. package/api/statement/control/switch.js +19 -28
  121. package/api/statement/control/switch.js.map +1 -1
  122. package/api/statement/control/terminate.d.ts +4 -7
  123. package/api/statement/control/terminate.js +11 -19
  124. package/api/statement/control/terminate.js.map +1 -1
  125. package/api/statement/control/with.d.ts +21 -0
  126. package/api/statement/control/with.js +67 -0
  127. package/api/statement/control/with.js.map +1 -0
  128. package/api/statement/declarations/declares.d.ts +4 -7
  129. package/api/statement/declarations/declares.js +14 -20
  130. package/api/statement/declarations/declares.js.map +1 -1
  131. package/api/statement/iterations/for.d.ts +6 -11
  132. package/api/statement/iterations/for.js +35 -53
  133. package/api/statement/iterations/for.js.map +1 -1
  134. package/api/statement/iterations/while.d.ts +3 -6
  135. package/api/statement/iterations/while.js +14 -22
  136. package/api/statement/iterations/while.js.map +1 -1
  137. package/package.json +14 -4
  138. package/scope/finalizer.d.ts +1 -1
  139. package/scope/pool.d.ts +1 -1
  140. package/scope/proxy.d.ts +1 -1
  141. package/scope/proxy.js +1 -0
  142. package/scope/proxy.js.map +1 -1
  143. package/scope/scope.d.ts +8 -24
  144. package/scope/scope.js +25 -75
  145. package/scope/scope.js.map +1 -1
  146. package/scope/stack.d.ts +15 -3
  147. package/scope/stack.js +49 -32
  148. package/scope/stack.js.map +1 -1
  149. package/v8/enums.d.ts +4 -2
  150. package/v8/enums.js.map +1 -1
  151. package/v8/factory.d.ts +148 -0
  152. package/v8/factory.js +499 -0
  153. package/v8/factory.js.map +1 -0
  154. package/v8/inline.d.ts +50 -48
  155. package/v8/inline.js +322 -300
  156. package/v8/inline.js.map +1 -1
  157. package/v8/node.d.ts +141 -0
  158. package/v8/node.js +2 -0
  159. package/v8/node.js.map +1 -0
  160. package/v8/nodes.d.ts +0 -14
  161. package/v8/nodes.js +1 -152
  162. package/v8/nodes.js.map +1 -1
  163. package/v8/parser.d.ts +21 -18
  164. package/v8/parser.js +97 -84
  165. package/v8/parser.js.map +1 -1
  166. package/v8/stream.d.ts +2 -1
  167. package/v8/stream.js +221 -311
  168. package/v8/stream.js.map +1 -1
  169. package/v8/token.d.ts +3 -1
  170. package/v8/token.js +7 -5
  171. package/v8/token.js.map +1 -1
  172. package/visit/visitor.d.ts +1 -1
package/v8/inline.d.ts CHANGED
@@ -1,34 +1,35 @@
1
- import type { ExpressionNode } from '../api/expression.js';
2
- import { Token, TokenExpression } from './token.js';
3
- import { TokenStream } from './stream.js';
1
+ import type { DeclarationExpression, ExpressionNode } from '../api/expression.js';
2
+ import type { NodeFactory } from './node.js';
3
+ import { ClassDeclaration, ClassExpression } from '../api/class/class.js';
4
+ import { FunctionDeclaration, FunctionExpression } from '../api/definition/function.js';
4
5
  import { Identifier, TaggedTemplateExpression, TemplateLiteral } from '../api/definition/values.js';
5
- import { EmptyStatement } from '../api/statement/control/empty.js';
6
6
  import { BlockStatement } from '../api/statement/control/block.js';
7
- import { Param, FunctionExpression, FunctionDeclaration } from '../api/definition/function.js';
8
- import { NewExpression } from '../api/computing/new.js';
9
- import { MemberExpression } from '../api/definition/member.js';
10
- import { ObjectExpression, Property } from '../api/definition/object.js';
11
- import { ArrayExpression, ArrayPattern } from '../api/definition/array.js';
12
- import { CallExpression } from '../api/computing/call.js';
13
7
  import { VariableDeclarationNode } from '../api/statement/declarations/declares.js';
14
- import { ForNode, ForOfNode, ForInNode, ForAwaitOfNode } from '../api/statement/iterations/for.js';
15
- import { ClassDeclaration, ClassExpression } from '../api/class/class.js';
16
8
  import { AllowLabelledFunctionStatement, FunctionBodyType, FunctionInfo, FunctionKind, FunctionSyntaxKind, ParseFunctionFlag, ParsingArrowHeadFlag, PropertyKindInfo, VariableDeclarationContext } from './enums.js';
17
- import { DebuggerStatement } from '../api/computing/debugger.js';
9
+ import { TokenStream } from './stream.js';
10
+ import { Token, TokenExpression } from './token.js';
18
11
  import { LanguageMode } from './language.js';
19
- export declare type InlineParserOptions = {
12
+ export type InlineParserOptions = {
20
13
  mode?: LanguageMode;
21
14
  acceptIN?: boolean;
15
+ factory?: NodeFactory;
16
+ addLocation?: boolean;
17
+ };
18
+ export type Range = [number, number];
19
+ export type RangeOrVoid = Range | undefined;
20
+ export type PositionMark = {
21
+ range?: Range;
22
22
  };
23
23
  export declare abstract class AbstractParser {
24
24
  protected scanner: TokenStream;
25
+ protected factory: NodeFactory;
25
26
  protected acceptIN: boolean;
26
27
  protected previousAcceptIN: boolean[];
27
28
  protected functionKind: FunctionKind;
28
29
  protected previousFunctionKind: FunctionKind[];
29
30
  get languageMode(): LanguageMode;
30
31
  set languageMode(mode: LanguageMode);
31
- constructor(scanner: TokenStream, acceptIN?: boolean);
32
+ constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean);
32
33
  abstract scan(): ExpressionNode;
33
34
  protected position(): number;
34
35
  protected setAcceptIN(acceptIN: boolean): void;
@@ -44,28 +45,28 @@ export declare abstract class AbstractParser {
44
45
  protected peekAhead(): TokenExpression;
45
46
  protected peekAheadPosition(): number;
46
47
  protected peekPosition(): number;
47
- protected consume(token: Token): void;
48
+ protected createRange(): undefined;
49
+ protected createRange(start: Required<PositionMark>): Range;
50
+ protected createRange(start?: PositionMark): RangeOrVoid;
51
+ protected createRangeByStart(start: Required<PositionMark>): Range;
52
+ protected createStartPosition(): Range;
53
+ protected updateRangeEnd(range: Range): void;
54
+ protected consume(token: Token): TokenExpression;
48
55
  protected check(token: Token): boolean;
49
56
  protected checkAndGetValue(token: Token): ExpressionNode | undefined;
50
57
  protected checkValue(value: ExpressionNode): boolean;
51
- protected expect(token: Token): void;
58
+ protected expect(token: Token): TokenExpression;
52
59
  protected expectAndGetValue(token: Token): ExpressionNode;
53
60
  protected checkInOrOf(): 'IN' | 'OF' | false;
54
61
  protected peekInOrOf(): 'IN' | 'OF' | false;
55
- protected isArguments(name: ExpressionNode): boolean;
56
- protected isEval(name: ExpressionNode): boolean;
57
- protected isEvalOrArguments(name: ExpressionNode): boolean;
62
+ protected isArguments(node: ExpressionNode): boolean;
63
+ protected isEval(node: ExpressionNode): boolean;
64
+ protected isEvalOrArguments(node: ExpressionNode): boolean;
58
65
  protected isNextLetKeyword(): boolean;
59
- protected isIdentifier(expression: ExpressionNode): expression is Identifier;
60
66
  protected markParenthesized(expression: ExpressionNode): void;
61
67
  protected clearParenthesized(expression: ExpressionNode): void;
62
68
  protected isParenthesized(expression: ExpressionNode): boolean;
63
69
  protected isAssignableIdentifier(expression: ExpressionNode): boolean;
64
- protected isPattern(expression: ExpressionNode): expression is (ObjectExpression | ArrayExpression);
65
- protected isProperty(expression: ExpressionNode): expression is Property | MemberExpression;
66
- protected isCallNew(expression: ExpressionNode): expression is NewExpression;
67
- protected isCall(expression: ExpressionNode): expression is CallExpression;
68
- protected isEmptyStatement(expression: ExpressionNode): expression is EmptyStatement;
69
70
  protected isValidReferenceExpression(expression: ExpressionNode): boolean;
70
71
  protected expectSemicolon(): void;
71
72
  protected peekAnyIdentifier(): boolean;
@@ -85,8 +86,8 @@ export declare abstract class AbstractParser {
85
86
  protected reportErrorMessage(message: string): void;
86
87
  }
87
88
  export declare class JavaScriptInlineParser extends AbstractParser {
88
- static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN }?: InlineParserOptions): ExpressionNode;
89
- constructor(scanner: TokenStream, acceptIN?: boolean);
89
+ static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN, factory, addLocation }?: InlineParserOptions): ExpressionNode;
90
+ constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean);
90
91
  scan(): ExpressionNode;
91
92
  /**
92
93
  * Statement ::
@@ -107,7 +108,7 @@ export declare class JavaScriptInlineParser extends AbstractParser {
107
108
  * DebuggerStatement
108
109
  */
109
110
  protected parseStatement(allowFunction?: AllowLabelledFunctionStatement): ExpressionNode;
110
- protected parseDebuggerStatement(): DebuggerStatement;
111
+ protected parseDebuggerStatement(): import("../index.js").DebuggerStatement;
111
112
  protected parseTryStatement(): ExpressionNode;
112
113
  protected parseNonRestrictedIdentifier(): Identifier;
113
114
  protected parseBlock(): BlockStatement;
@@ -131,19 +132,19 @@ export declare class JavaScriptInlineParser extends AbstractParser {
131
132
  */
132
133
  protected parseStatementListItem(): ExpressionNode | undefined;
133
134
  protected parseFunctionExpression(): FunctionExpression | FunctionDeclaration;
134
- protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionDeclaration;
135
+ protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionDeclaration;
135
136
  protected parseIfStatement(): ExpressionNode;
136
137
  protected parseScopedStatement(): ExpressionNode;
137
138
  protected parseDoWhileStatement(): ExpressionNode;
138
- protected parseWhileStatement(): ExpressionNode;
139
+ protected parseWhileStatement(): import("../index.js").WhileNode;
139
140
  protected parseThrowStatement(): ExpressionNode;
140
141
  protected parseSwitchStatement(): ExpressionNode;
141
- protected parseForStatement(): ForNode | ForOfNode | ForInNode;
142
- protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode): ForNode;
143
- protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
144
- protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF'): ForOfNode | ForInNode;
145
- protected parseStandardForLoop(initializer: ExpressionNode): ForNode;
146
- protected parseForAwaitStatement(): ForAwaitOfNode;
142
+ protected parseForStatement(): import("../api/statement/iterations/for.js").ForNode | import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
143
+ protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode;
144
+ protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
145
+ protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode;
146
+ protected parseStandardForLoop(initializer: ExpressionNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode;
147
+ protected parseForAwaitStatement(): import("../api/statement/iterations/for.js").ForAwaitOfNode;
147
148
  protected parseVariableDeclarations(varContext: VariableDeclarationContext): VariableDeclarationNode;
148
149
  protected parseBindingPattern(isPattern: boolean): ExpressionNode;
149
150
  protected parseAndClassifyIdentifier(next: TokenExpression): ExpressionNode;
@@ -154,34 +155,34 @@ export declare class JavaScriptInlineParser extends AbstractParser {
154
155
  protected parseExpression(): ExpressionNode;
155
156
  protected parseFunctionDeclaration(): FunctionDeclaration;
156
157
  protected parseAsyncFunctionLiteral(): FunctionExpression | FunctionDeclaration;
157
- protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
158
- protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean): FunctionExpression | FunctionDeclaration;
158
+ protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration;
159
+ protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration;
159
160
  protected parseIdentifier(kind?: FunctionKind): Identifier;
160
161
  protected getIdentifier(): Identifier;
161
- protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name?: Identifier): FunctionDeclaration | FunctionExpression;
162
+ protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name: Identifier | undefined, start: PositionMark): FunctionDeclaration | FunctionExpression;
162
163
  protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.BLOCK, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode[];
163
164
  protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.EXPRESSION, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode;
164
165
  protected parseAndRewriteAsyncGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
165
166
  protected parseAndRewriteGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[];
166
167
  protected parseAsyncFunctionBody(): ExpressionNode[];
167
168
  protected parseStatementList(endToken: Token): ExpressionNode[];
168
- protected parseFormalParameterList(functionInfo: FunctionInfo): ExpressionNode[];
169
- protected parseFormalParameter(functionInfo: FunctionInfo): ExpressionNode;
169
+ protected parseFormalParameterList(functionInfo: FunctionInfo): DeclarationExpression[];
170
+ protected parseFormalParameter(functionInfo: FunctionInfo): DeclarationExpression;
170
171
  protected parseExpressionCoverGrammar(): ExpressionNode;
171
172
  protected parseArrowParametersWithRest(list: ExpressionNode[]): ExpressionNode;
172
173
  protected expressionListToExpression(list: ExpressionNode[]): ExpressionNode;
173
174
  protected parseMemberExpression(): ExpressionNode;
174
- protected toParamNode(expression: ExpressionNode): Param;
175
175
  protected parsePrimaryExpression(): ExpressionNode;
176
176
  protected parseTemplateLiteral(tag?: ExpressionNode): ExpressionNode;
177
- protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode): TaggedTemplateExpression | TemplateLiteral;
177
+ protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode, range?: RangeOrVoid): TaggedTemplateExpression | TemplateLiteral;
178
178
  protected parseMemberWithPresentNewPrefixesExpression(): ExpressionNode;
179
179
  protected parseArguments(maybeArrow?: ParsingArrowHeadFlag): ExpressionNode[];
180
180
  protected parseAssignmentExpressionCoverGrammar(): ExpressionNode;
181
181
  protected parseAssignmentExpression(): ExpressionNode;
182
- protected parseArrowFunctionLiteral(parameters: ExpressionNode[], kind: FunctionKind): ExpressionNode;
182
+ private checkParamType;
183
+ protected parseArrowFunctionLiteral(parameters: DeclarationExpression[], kind: FunctionKind, range: Range): ExpressionNode;
183
184
  protected parseRegExpLiteral(): ExpressionNode;
184
- protected parseArrayLiteral(isPattern: boolean): ArrayExpression | ArrayPattern;
185
+ protected parseArrayLiteral(isPattern: boolean): import("../index.js").ArrayExpression | import("../index.js").ArrayPattern;
185
186
  protected parsePossibleDestructuringSubPattern(): ExpressionNode;
186
187
  protected parseObjectLiteral(isPattern: boolean): ExpressionNode;
187
188
  protected parseObjectPropertyDefinition(isPattern: boolean): ExpressionNode;
@@ -205,10 +206,11 @@ export declare class JavaScriptInlineParser extends AbstractParser {
205
206
  protected parseNullishExpression(expression: ExpressionNode): ExpressionNode;
206
207
  protected parseConditionalContinuation(expression: ExpressionNode): ExpressionNode;
207
208
  protected parseYieldExpression(): ExpressionNode;
208
- protected parseNewTargetExpression(): ExpressionNode;
209
+ protected parseNewTargetExpression(start?: PositionMark): ExpressionNode;
209
210
  protected parseClassExpression(): ClassExpression;
210
- protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean): ClassDeclaration;
211
+ protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): ClassDeclaration;
211
212
  protected parseClassLiteral(name: ExpressionNode | undefined, isStrictReserved: boolean): ExpressionNode;
212
213
  protected parseSuperExpression(): ExpressionNode;
213
214
  protected parseImportExpressions(): ExpressionNode;
215
+ protected parseWithStatement(): ExpressionNode;
214
216
  }