@ibyar/expressions 0.5.4 → 0.5.6

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 (99) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -0
  3. package/api/abstract.d.ts +3 -3
  4. package/api/abstract.js +2 -2
  5. package/api/abstract.js.map +1 -1
  6. package/api/class/class.d.ts +18 -12
  7. package/api/class/class.js +122 -81
  8. package/api/class/class.js.map +1 -1
  9. package/api/computing/debugger.d.ts +15 -0
  10. package/api/computing/debugger.js +35 -0
  11. package/api/computing/debugger.js.map +1 -0
  12. package/api/computing/rest.d.ts +4 -4
  13. package/api/computing/rest.js.map +1 -1
  14. package/api/definition/array.d.ts +7 -6
  15. package/api/definition/array.js +20 -14
  16. package/api/definition/array.js.map +1 -1
  17. package/api/definition/function.d.ts +35 -46
  18. package/api/definition/function.js +281 -299
  19. package/api/definition/function.js.map +1 -1
  20. package/api/definition/object.d.ts +9 -6
  21. package/api/definition/object.js +34 -4
  22. package/api/definition/object.js.map +1 -1
  23. package/api/definition/statement.js +5 -1
  24. package/api/definition/statement.js.map +1 -1
  25. package/api/definition/values.d.ts +31 -47
  26. package/api/definition/values.js +59 -145
  27. package/api/definition/values.js.map +1 -1
  28. package/api/deserialize/deserialize.d.ts +2 -1
  29. package/api/deserialize/deserialize.js +4 -1
  30. package/api/deserialize/deserialize.js.map +1 -1
  31. package/api/deserialize/type-store.d.ts +2 -2
  32. package/api/deserialize/type-store.js.map +1 -1
  33. package/api/expression.d.ts +5 -7
  34. package/api/expression.js.map +1 -1
  35. package/api/index.d.ts +2 -0
  36. package/api/index.js +2 -0
  37. package/api/index.js.map +1 -1
  38. package/api/module/common.d.ts +29 -0
  39. package/api/module/common.js +71 -0
  40. package/api/module/common.js.map +1 -0
  41. package/api/module/export.d.ts +15 -9
  42. package/api/module/export.js +57 -15
  43. package/api/module/export.js.map +1 -1
  44. package/api/module/import.d.ts +3 -8
  45. package/api/module/import.js +9 -19
  46. package/api/module/import.js.map +1 -1
  47. package/api/{module/app/program.d.ts → program.d.ts} +4 -4
  48. package/api/{module/app/program.js → program.js} +3 -3
  49. package/api/program.js.map +1 -0
  50. package/api/statement/control/block.d.ts +1 -2
  51. package/api/statement/control/block.js +20 -21
  52. package/api/statement/control/block.js.map +1 -1
  53. package/api/statement/control/switch.js +8 -3
  54. package/api/statement/control/switch.js.map +1 -1
  55. package/api/statement/control/terminate.d.ts +36 -11
  56. package/api/statement/control/terminate.js +79 -18
  57. package/api/statement/control/terminate.js.map +1 -1
  58. package/api/statement/declarations/declares.d.ts +7 -7
  59. package/api/statement/declarations/declares.js +1 -1
  60. package/api/statement/declarations/declares.js.map +1 -1
  61. package/api/statement/iterations/for.js +22 -16
  62. package/api/statement/iterations/for.js.map +1 -1
  63. package/api/statement/iterations/while.js +15 -11
  64. package/api/statement/iterations/while.js.map +1 -1
  65. package/api/utils.d.ts +2 -0
  66. package/api/utils.js +3 -1
  67. package/api/utils.js.map +1 -1
  68. package/package.json +4 -4
  69. package/scope/proxy.d.ts +0 -2
  70. package/scope/proxy.js +4 -24
  71. package/scope/proxy.js.map +1 -1
  72. package/scope/stack.d.ts +2 -2
  73. package/scope/stack.js.map +1 -1
  74. package/v8/enums.d.ts +204 -0
  75. package/v8/enums.js +375 -0
  76. package/v8/enums.js.map +1 -0
  77. package/v8/index.d.ts +2 -1
  78. package/v8/index.js +2 -1
  79. package/v8/index.js.map +1 -1
  80. package/v8/inline.d.ts +177 -0
  81. package/v8/inline.js +1973 -0
  82. package/v8/inline.js.map +1 -0
  83. package/v8/nodes.d.ts +8 -7
  84. package/v8/nodes.js +37 -63
  85. package/v8/nodes.js.map +1 -1
  86. package/v8/parser.d.ts +41 -151
  87. package/v8/parser.js +507 -1579
  88. package/v8/parser.js.map +1 -1
  89. package/v8/stream.d.ts +35 -3
  90. package/v8/stream.js +616 -164
  91. package/v8/stream.js.map +1 -1
  92. package/v8/token.d.ts +15 -9
  93. package/v8/token.js +79 -46
  94. package/v8/token.js.map +1 -1
  95. package/visit/visitor.js.map +1 -1
  96. package/api/module/app/program.js.map +0 -1
  97. package/v8/app.d.ts +0 -0
  98. package/v8/app.js +0 -2
  99. package/v8/app.js.map +0 -1
package/v8/enums.d.ts ADDED
@@ -0,0 +1,204 @@
1
+ import { AccessorProperty, MethodDefinition, PropertyDefinition, StaticBlock } from '../api/class/class.js';
2
+ import { ExpressionNode } from '../api/expression.js';
3
+ import { VariableDeclarator } from '../api/statement/declarations/declares.js';
4
+ import { Token } from './token.js';
5
+ export declare function isInRange(num: number, start: number, end: number): boolean;
6
+ export declare enum ParsingArrowHeadFlag {
7
+ CertainlyNotArrowHead = 0,
8
+ MaybeArrowHead = 1,
9
+ AsyncArrowFunction = 2
10
+ }
11
+ export declare enum PropertyKind {
12
+ Value = 0,
13
+ Shorthand = 1,
14
+ ShorthandOrClassField = 2,
15
+ Assign = 3,
16
+ Method = 4,
17
+ ClassField = 5,
18
+ AccessorGetter = 6,
19
+ AccessorSetter = 7,
20
+ Spread = 8,
21
+ NotSet = 9
22
+ }
23
+ export declare function isAccessor(kind: PropertyKind): boolean;
24
+ export declare enum PropertyPosition {
25
+ ObjectLiteral = 0,
26
+ ClassLiteral = 1
27
+ }
28
+ export declare class PropertyKindInfo {
29
+ name: string;
30
+ position: PropertyPosition;
31
+ funcFlag: ParseFunctionFlag;
32
+ kind: PropertyKind;
33
+ isComputedName: boolean;
34
+ isPrivate: boolean;
35
+ isStatic: boolean;
36
+ isRest: boolean;
37
+ parsePropertyKindFromToken(token: Token): boolean;
38
+ }
39
+ export declare type FunctionInfo = {
40
+ rest?: boolean;
41
+ };
42
+ export declare enum PreParserIdentifierType {
43
+ NullIdentifier = 0,
44
+ UnknownIdentifier = 1,
45
+ EvalIdentifier = 2,
46
+ ArgumentsIdentifier = 3,
47
+ ConstructorIdentifier = 4,
48
+ AwaitIdentifier = 5,
49
+ AsyncIdentifier = 6,
50
+ NameIdentifier = 7,
51
+ PrivateNameIdentifier = 8
52
+ }
53
+ export declare enum FunctionBodyType {
54
+ EXPRESSION = 0,
55
+ BLOCK = 1
56
+ }
57
+ export declare enum ParseFunctionFlag {
58
+ IsNormal = 0,
59
+ IsGenerator = 1,
60
+ IsAsync = 2
61
+ }
62
+ export declare enum FunctionKind {
63
+ NormalFunction = 0,
64
+ Module = 1,
65
+ AsyncModule = 2,
66
+ BaseConstructor = 3,
67
+ DefaultBaseConstructor = 4,
68
+ DefaultDerivedConstructor = 5,
69
+ DerivedConstructor = 6,
70
+ GetterFunction = 7,
71
+ StaticGetterFunction = 8,
72
+ SetterFunction = 9,
73
+ StaticSetterFunction = 10,
74
+ ArrowFunction = 11,
75
+ AsyncArrowFunction = 12,
76
+ AsyncFunction = 13,
77
+ AsyncConciseMethod = 14,
78
+ StaticAsyncConciseMethod = 15,
79
+ AsyncConciseGeneratorMethod = 16,
80
+ StaticAsyncConciseGeneratorMethod = 17,
81
+ AsyncGeneratorFunction = 18,
82
+ GeneratorFunction = 19,
83
+ ConciseGeneratorMethod = 20,
84
+ StaticConciseGeneratorMethod = 21,
85
+ ConciseMethod = 22,
86
+ StaticConciseMethod = 23,
87
+ ClassMembersInitializerFunction = 24,
88
+ ClassStaticInitializerFunction = 25,
89
+ Invalid = 26,
90
+ LastFunctionKind = 25
91
+ }
92
+ export declare enum SubFunctionKind {
93
+ NormalFunction = 0,
94
+ NonStaticMethod = 1,
95
+ StaticMethod = 2
96
+ }
97
+ export declare enum StaticFlag {
98
+ NotStatic = 0,
99
+ Static = 1
100
+ }
101
+ export declare function functionKindForImpl(subFunctionKind: SubFunctionKind, flags: ParseFunctionFlag): FunctionKind;
102
+ export declare function functionKindFor(isGenerator: boolean, isAsync: boolean): FunctionKind;
103
+ export declare function methodKindFor(isStatic: boolean, isGenerator: boolean, isAsync: boolean): FunctionKind;
104
+ export declare enum FunctionSyntaxKind {
105
+ AnonymousExpression = 0,
106
+ NamedExpression = 1,
107
+ Declaration = 2,
108
+ AccessorOrMethod = 3,
109
+ Wrapped = 4,
110
+ LastFunctionSyntaxKind = 4
111
+ }
112
+ export declare function isArrowFunction(kind: FunctionKind): boolean;
113
+ export declare function isModule(kind: FunctionKind): boolean;
114
+ export declare function isAsyncModule(kind: FunctionKind): boolean;
115
+ export declare function isAsyncGeneratorFunction(kind: FunctionKind): boolean;
116
+ export declare function isGeneratorFunction(kind: FunctionKind): boolean;
117
+ export declare function isAsyncFunction(kind: FunctionKind): boolean;
118
+ export declare function isResumableFunction(kind: FunctionKind): boolean;
119
+ export declare function isConciseMethod(kind: FunctionKind): boolean;
120
+ export declare function isStrictFunctionWithoutPrototype(kind: FunctionKind): boolean;
121
+ export declare function isGetterFunction(kind: FunctionKind): boolean;
122
+ export declare function isSetterFunction(kind: FunctionKind): boolean;
123
+ export declare function isAccessorFunction(kind: FunctionKind): boolean;
124
+ export declare function isDefaultConstructor(kind: FunctionKind): boolean;
125
+ export declare function isBaseConstructor(kind: FunctionKind): boolean;
126
+ export declare function isDerivedConstructor(kind: FunctionKind): boolean;
127
+ export declare function isClassConstructor(kind: FunctionKind): boolean;
128
+ export declare function isClassMembersInitializerFunction(kind: FunctionKind): boolean;
129
+ export declare function isConstructable(kind: FunctionKind): boolean;
130
+ export declare function isStatic(kind: FunctionKind): boolean;
131
+ export declare function bindsSuper(kind: FunctionKind): boolean;
132
+ export declare function isAwaitAsIdentifierDisallowed(kind: FunctionKind): boolean;
133
+ export declare function functionKind2String(kind: FunctionKind): string;
134
+ export declare type ClassInfo = {
135
+ extends?: ExpressionNode;
136
+ publicMembers: (MethodDefinition | PropertyDefinition)[];
137
+ privateMembers: (MethodDefinition | PropertyDefinition)[];
138
+ staticElements: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[];
139
+ instanceFields: (MethodDefinition | PropertyDefinition | AccessorProperty)[];
140
+ constructor: MethodDefinition | undefined;
141
+ hasSeenConstructor: boolean;
142
+ hasStaticComputedNames: boolean;
143
+ hasStaticElements: boolean;
144
+ hasStaticPrivateMethods: boolean;
145
+ hasStaticBlocks: boolean;
146
+ hasInstanceMembers: boolean;
147
+ requiresBrand: boolean;
148
+ isAnonymous: boolean;
149
+ hasPrivateMethods: boolean;
150
+ computedFieldCount: number;
151
+ homeObjectVariable?: VariableDeclarator;
152
+ staticHomeObjectVariable?: VariableDeclarator;
153
+ };
154
+ export declare function createClassInfo(): ClassInfo;
155
+ export declare enum FunctionNameValidity {
156
+ FunctionNameIsStrictReserved = "FunctionNameIsStrictReserved",
157
+ SkipFunctionNameCheck = "SkipFunctionNameCheck",
158
+ FunctionNameValidityUnknown = "FunctionNameValidityUnknown"
159
+ }
160
+ export declare enum ObjectLiteralPropertyKind {
161
+ CONSTANT = "CONSTANT",
162
+ COMPUTED = "COMPUTED",
163
+ MATERIALIZED_LITERAL = "MATERIALIZED_LITERAL",
164
+ GETTER = "GETTER",
165
+ SETTER = "SETTER",
166
+ PROTOTYPE = "PROTOTYPE",
167
+ SPREAD = "SPREAD"
168
+ }
169
+ export declare class ObjectLiteralProperty {
170
+ static Kind: typeof ObjectLiteralPropertyKind;
171
+ }
172
+ export declare enum ClassLiteralPropertyKind {
173
+ METHOD = "METHOD",
174
+ GETTER = "GETTER",
175
+ SETTER = "SETTER",
176
+ FIELD = "FIELD"
177
+ }
178
+ export declare class ClassLiteralProperty {
179
+ static Kind: typeof ClassLiteralPropertyKind;
180
+ }
181
+ export declare function classPropertyKindFor(kind: PropertyKind): ClassLiteralPropertyKind;
182
+ export declare enum VariableMode {
183
+ Const = "Const",
184
+ PrivateMethod = "PrivateMethod",
185
+ PrivateGetterOnly = "PrivateGetterOnly",
186
+ PrivateSetterOnly = "PrivateSetterOnly"
187
+ }
188
+ export declare function getVariableMode(kind: ClassLiteralPropertyKind): VariableMode;
189
+ export declare enum LanguageMode {
190
+ Sloppy = 0,
191
+ Strict = 1
192
+ }
193
+ export declare function isSloppy(mode: LanguageMode): boolean;
194
+ export declare function isStrict(mode: LanguageMode): boolean;
195
+ export declare function getLanguageMode(isModule: boolean): LanguageMode;
196
+ export declare enum VariableDeclarationContext {
197
+ StatementListItem = 0,
198
+ Statement = 1,
199
+ ForStatement = 2
200
+ }
201
+ export declare enum AllowLabelledFunctionStatement {
202
+ AllowLabelledFunctionStatement = 0,
203
+ DisallowLabelledFunctionStatement = 1
204
+ }
package/v8/enums.js ADDED
@@ -0,0 +1,375 @@
1
+ import { Token } from './token.js';
2
+ export function isInRange(num, start, end) {
3
+ return num >= start && num <= end;
4
+ }
5
+ export var ParsingArrowHeadFlag;
6
+ (function (ParsingArrowHeadFlag) {
7
+ ParsingArrowHeadFlag[ParsingArrowHeadFlag["CertainlyNotArrowHead"] = 0] = "CertainlyNotArrowHead";
8
+ ParsingArrowHeadFlag[ParsingArrowHeadFlag["MaybeArrowHead"] = 1] = "MaybeArrowHead";
9
+ ParsingArrowHeadFlag[ParsingArrowHeadFlag["AsyncArrowFunction"] = 2] = "AsyncArrowFunction";
10
+ })(ParsingArrowHeadFlag || (ParsingArrowHeadFlag = {}));
11
+ export var PropertyKind;
12
+ (function (PropertyKind) {
13
+ PropertyKind[PropertyKind["Value"] = 0] = "Value";
14
+ PropertyKind[PropertyKind["Shorthand"] = 1] = "Shorthand";
15
+ PropertyKind[PropertyKind["ShorthandOrClassField"] = 2] = "ShorthandOrClassField";
16
+ PropertyKind[PropertyKind["Assign"] = 3] = "Assign";
17
+ PropertyKind[PropertyKind["Method"] = 4] = "Method";
18
+ PropertyKind[PropertyKind["ClassField"] = 5] = "ClassField";
19
+ PropertyKind[PropertyKind["AccessorGetter"] = 6] = "AccessorGetter";
20
+ PropertyKind[PropertyKind["AccessorSetter"] = 7] = "AccessorSetter";
21
+ PropertyKind[PropertyKind["Spread"] = 8] = "Spread";
22
+ PropertyKind[PropertyKind["NotSet"] = 9] = "NotSet";
23
+ })(PropertyKind || (PropertyKind = {}));
24
+ export function isAccessor(kind) {
25
+ return kind === PropertyKind.AccessorGetter || kind === PropertyKind.AccessorSetter;
26
+ }
27
+ export var PropertyPosition;
28
+ (function (PropertyPosition) {
29
+ PropertyPosition[PropertyPosition["ObjectLiteral"] = 0] = "ObjectLiteral";
30
+ PropertyPosition[PropertyPosition["ClassLiteral"] = 1] = "ClassLiteral";
31
+ })(PropertyPosition || (PropertyPosition = {}));
32
+ export class PropertyKindInfo {
33
+ constructor() {
34
+ this.position = PropertyPosition.ClassLiteral;
35
+ this.funcFlag = ParseFunctionFlag.IsNormal;
36
+ this.kind = PropertyKind.NotSet;
37
+ this.isComputedName = false;
38
+ this.isPrivate = false;
39
+ this.isStatic = false;
40
+ this.isRest = false;
41
+ }
42
+ parsePropertyKindFromToken(token) {
43
+ switch (token) {
44
+ case Token.COLON:
45
+ this.kind = PropertyKind.Value;
46
+ return true;
47
+ case Token.COMMA:
48
+ this.kind = PropertyKind.Shorthand;
49
+ return true;
50
+ case Token.RBRACE:
51
+ this.kind = PropertyKind.ShorthandOrClassField;
52
+ return true;
53
+ case Token.ASSIGN:
54
+ this.kind = PropertyKind.Assign;
55
+ return true;
56
+ case Token.LPAREN:
57
+ this.kind = PropertyKind.Method;
58
+ return true;
59
+ case Token.MUL:
60
+ case Token.SEMICOLON:
61
+ this.kind = PropertyKind.ClassField;
62
+ return true;
63
+ default:
64
+ break;
65
+ }
66
+ return false;
67
+ }
68
+ }
69
+ export var PreParserIdentifierType;
70
+ (function (PreParserIdentifierType) {
71
+ PreParserIdentifierType[PreParserIdentifierType["NullIdentifier"] = 0] = "NullIdentifier";
72
+ PreParserIdentifierType[PreParserIdentifierType["UnknownIdentifier"] = 1] = "UnknownIdentifier";
73
+ PreParserIdentifierType[PreParserIdentifierType["EvalIdentifier"] = 2] = "EvalIdentifier";
74
+ PreParserIdentifierType[PreParserIdentifierType["ArgumentsIdentifier"] = 3] = "ArgumentsIdentifier";
75
+ PreParserIdentifierType[PreParserIdentifierType["ConstructorIdentifier"] = 4] = "ConstructorIdentifier";
76
+ PreParserIdentifierType[PreParserIdentifierType["AwaitIdentifier"] = 5] = "AwaitIdentifier";
77
+ PreParserIdentifierType[PreParserIdentifierType["AsyncIdentifier"] = 6] = "AsyncIdentifier";
78
+ PreParserIdentifierType[PreParserIdentifierType["NameIdentifier"] = 7] = "NameIdentifier";
79
+ PreParserIdentifierType[PreParserIdentifierType["PrivateNameIdentifier"] = 8] = "PrivateNameIdentifier";
80
+ })(PreParserIdentifierType || (PreParserIdentifierType = {}));
81
+ export var FunctionBodyType;
82
+ (function (FunctionBodyType) {
83
+ FunctionBodyType[FunctionBodyType["EXPRESSION"] = 0] = "EXPRESSION";
84
+ FunctionBodyType[FunctionBodyType["BLOCK"] = 1] = "BLOCK";
85
+ })(FunctionBodyType || (FunctionBodyType = {}));
86
+ export var ParseFunctionFlag;
87
+ (function (ParseFunctionFlag) {
88
+ ParseFunctionFlag[ParseFunctionFlag["IsNormal"] = 0] = "IsNormal";
89
+ ParseFunctionFlag[ParseFunctionFlag["IsGenerator"] = 1] = "IsGenerator";
90
+ ParseFunctionFlag[ParseFunctionFlag["IsAsync"] = 2] = "IsAsync";
91
+ })(ParseFunctionFlag || (ParseFunctionFlag = {}));
92
+ export var FunctionKind;
93
+ (function (FunctionKind) {
94
+ FunctionKind[FunctionKind["NormalFunction"] = 0] = "NormalFunction";
95
+ FunctionKind[FunctionKind["Module"] = 1] = "Module";
96
+ FunctionKind[FunctionKind["AsyncModule"] = 2] = "AsyncModule";
97
+ FunctionKind[FunctionKind["BaseConstructor"] = 3] = "BaseConstructor";
98
+ FunctionKind[FunctionKind["DefaultBaseConstructor"] = 4] = "DefaultBaseConstructor";
99
+ FunctionKind[FunctionKind["DefaultDerivedConstructor"] = 5] = "DefaultDerivedConstructor";
100
+ FunctionKind[FunctionKind["DerivedConstructor"] = 6] = "DerivedConstructor";
101
+ FunctionKind[FunctionKind["GetterFunction"] = 7] = "GetterFunction";
102
+ FunctionKind[FunctionKind["StaticGetterFunction"] = 8] = "StaticGetterFunction";
103
+ FunctionKind[FunctionKind["SetterFunction"] = 9] = "SetterFunction";
104
+ FunctionKind[FunctionKind["StaticSetterFunction"] = 10] = "StaticSetterFunction";
105
+ FunctionKind[FunctionKind["ArrowFunction"] = 11] = "ArrowFunction";
106
+ FunctionKind[FunctionKind["AsyncArrowFunction"] = 12] = "AsyncArrowFunction";
107
+ FunctionKind[FunctionKind["AsyncFunction"] = 13] = "AsyncFunction";
108
+ FunctionKind[FunctionKind["AsyncConciseMethod"] = 14] = "AsyncConciseMethod";
109
+ FunctionKind[FunctionKind["StaticAsyncConciseMethod"] = 15] = "StaticAsyncConciseMethod";
110
+ FunctionKind[FunctionKind["AsyncConciseGeneratorMethod"] = 16] = "AsyncConciseGeneratorMethod";
111
+ FunctionKind[FunctionKind["StaticAsyncConciseGeneratorMethod"] = 17] = "StaticAsyncConciseGeneratorMethod";
112
+ FunctionKind[FunctionKind["AsyncGeneratorFunction"] = 18] = "AsyncGeneratorFunction";
113
+ FunctionKind[FunctionKind["GeneratorFunction"] = 19] = "GeneratorFunction";
114
+ FunctionKind[FunctionKind["ConciseGeneratorMethod"] = 20] = "ConciseGeneratorMethod";
115
+ FunctionKind[FunctionKind["StaticConciseGeneratorMethod"] = 21] = "StaticConciseGeneratorMethod";
116
+ FunctionKind[FunctionKind["ConciseMethod"] = 22] = "ConciseMethod";
117
+ FunctionKind[FunctionKind["StaticConciseMethod"] = 23] = "StaticConciseMethod";
118
+ FunctionKind[FunctionKind["ClassMembersInitializerFunction"] = 24] = "ClassMembersInitializerFunction";
119
+ FunctionKind[FunctionKind["ClassStaticInitializerFunction"] = 25] = "ClassStaticInitializerFunction";
120
+ FunctionKind[FunctionKind["Invalid"] = 26] = "Invalid";
121
+ FunctionKind[FunctionKind["LastFunctionKind"] = 25] = "LastFunctionKind";
122
+ })(FunctionKind || (FunctionKind = {}));
123
+ const FUNCTIONS_TYPES = [
124
+ [
125
+ [
126
+ FunctionKind.NormalFunction,
127
+ FunctionKind.AsyncFunction
128
+ ],
129
+ [
130
+ FunctionKind.GeneratorFunction,
131
+ FunctionKind.AsyncGeneratorFunction
132
+ ],
133
+ ],
134
+ [
135
+ [
136
+ FunctionKind.ConciseMethod,
137
+ FunctionKind.AsyncConciseMethod
138
+ ],
139
+ [
140
+ FunctionKind.ConciseGeneratorMethod,
141
+ FunctionKind.AsyncConciseGeneratorMethod
142
+ ],
143
+ ],
144
+ [
145
+ [
146
+ FunctionKind.StaticConciseMethod,
147
+ FunctionKind.StaticAsyncConciseMethod
148
+ ],
149
+ [
150
+ FunctionKind.StaticConciseGeneratorMethod,
151
+ FunctionKind.StaticAsyncConciseGeneratorMethod
152
+ ],
153
+ ]
154
+ ];
155
+ export var SubFunctionKind;
156
+ (function (SubFunctionKind) {
157
+ SubFunctionKind[SubFunctionKind["NormalFunction"] = 0] = "NormalFunction";
158
+ SubFunctionKind[SubFunctionKind["NonStaticMethod"] = 1] = "NonStaticMethod";
159
+ SubFunctionKind[SubFunctionKind["StaticMethod"] = 2] = "StaticMethod";
160
+ })(SubFunctionKind || (SubFunctionKind = {}));
161
+ export var StaticFlag;
162
+ (function (StaticFlag) {
163
+ StaticFlag[StaticFlag["NotStatic"] = 0] = "NotStatic";
164
+ StaticFlag[StaticFlag["Static"] = 1] = "Static";
165
+ })(StaticFlag || (StaticFlag = {}));
166
+ ;
167
+ export function functionKindForImpl(subFunctionKind, flags) {
168
+ return FUNCTIONS_TYPES[subFunctionKind][(flags & ParseFunctionFlag.IsGenerator) != 0 ? 1 : 0][(flags & ParseFunctionFlag.IsAsync) != 0 ? 1 : 0];
169
+ }
170
+ export function functionKindFor(isGenerator, isAsync) {
171
+ return FUNCTIONS_TYPES[SubFunctionKind.NormalFunction][isGenerator ? 1 : 0][isAsync ? 1 : 0];
172
+ }
173
+ export function methodKindFor(isStatic, isGenerator, isAsync) {
174
+ return FUNCTIONS_TYPES[isStatic ? SubFunctionKind.StaticMethod : SubFunctionKind.NonStaticMethod][isGenerator ? 1 : 0][isAsync ? 1 : 0];
175
+ }
176
+ export var FunctionSyntaxKind;
177
+ (function (FunctionSyntaxKind) {
178
+ FunctionSyntaxKind[FunctionSyntaxKind["AnonymousExpression"] = 0] = "AnonymousExpression";
179
+ FunctionSyntaxKind[FunctionSyntaxKind["NamedExpression"] = 1] = "NamedExpression";
180
+ FunctionSyntaxKind[FunctionSyntaxKind["Declaration"] = 2] = "Declaration";
181
+ FunctionSyntaxKind[FunctionSyntaxKind["AccessorOrMethod"] = 3] = "AccessorOrMethod";
182
+ FunctionSyntaxKind[FunctionSyntaxKind["Wrapped"] = 4] = "Wrapped";
183
+ FunctionSyntaxKind[FunctionSyntaxKind["LastFunctionSyntaxKind"] = 4] = "LastFunctionSyntaxKind";
184
+ })(FunctionSyntaxKind || (FunctionSyntaxKind = {}));
185
+ ;
186
+ export function isArrowFunction(kind) {
187
+ return isInRange(kind, FunctionKind.ArrowFunction, FunctionKind.AsyncArrowFunction);
188
+ }
189
+ export function isModule(kind) {
190
+ return isInRange(kind, FunctionKind.Module, FunctionKind.AsyncModule);
191
+ }
192
+ export function isAsyncModule(kind) {
193
+ return kind == FunctionKind.AsyncModule;
194
+ }
195
+ export function isAsyncGeneratorFunction(kind) {
196
+ return isInRange(kind, FunctionKind.AsyncConciseGeneratorMethod, FunctionKind.AsyncGeneratorFunction);
197
+ }
198
+ export function isGeneratorFunction(kind) {
199
+ return isInRange(kind, FunctionKind.AsyncConciseGeneratorMethod, FunctionKind.StaticConciseGeneratorMethod);
200
+ }
201
+ export function isAsyncFunction(kind) {
202
+ return isInRange(kind, FunctionKind.AsyncArrowFunction, FunctionKind.AsyncGeneratorFunction);
203
+ }
204
+ export function isResumableFunction(kind) {
205
+ return isGeneratorFunction(kind) || isAsyncFunction(kind) || isModule(kind);
206
+ }
207
+ export function isConciseMethod(kind) {
208
+ return isInRange(kind, FunctionKind.AsyncConciseMethod, FunctionKind.StaticAsyncConciseGeneratorMethod)
209
+ || isInRange(kind, FunctionKind.ConciseGeneratorMethod, FunctionKind.ClassStaticInitializerFunction);
210
+ }
211
+ export function isStrictFunctionWithoutPrototype(kind) {
212
+ return isInRange(kind, FunctionKind.GetterFunction, FunctionKind.AsyncArrowFunction)
213
+ || isInRange(kind, FunctionKind.AsyncConciseMethod, FunctionKind.StaticAsyncConciseGeneratorMethod)
214
+ || isInRange(kind, FunctionKind.ConciseGeneratorMethod, FunctionKind.ClassStaticInitializerFunction);
215
+ }
216
+ export function isGetterFunction(kind) {
217
+ return isInRange(kind, FunctionKind.GetterFunction, FunctionKind.StaticGetterFunction);
218
+ }
219
+ export function isSetterFunction(kind) {
220
+ return isInRange(kind, FunctionKind.SetterFunction, FunctionKind.StaticSetterFunction);
221
+ }
222
+ export function isAccessorFunction(kind) {
223
+ return isInRange(kind, FunctionKind.GetterFunction, FunctionKind.StaticSetterFunction);
224
+ }
225
+ export function isDefaultConstructor(kind) {
226
+ return isInRange(kind, FunctionKind.DefaultBaseConstructor, FunctionKind.DefaultDerivedConstructor);
227
+ }
228
+ export function isBaseConstructor(kind) {
229
+ return isInRange(kind, FunctionKind.BaseConstructor, FunctionKind.DefaultBaseConstructor);
230
+ }
231
+ export function isDerivedConstructor(kind) {
232
+ return isInRange(kind, FunctionKind.DefaultDerivedConstructor, FunctionKind.DerivedConstructor);
233
+ }
234
+ export function isClassConstructor(kind) {
235
+ return isInRange(kind, FunctionKind.BaseConstructor, FunctionKind.DerivedConstructor);
236
+ }
237
+ export function isClassMembersInitializerFunction(kind) {
238
+ return isInRange(kind, FunctionKind.ClassMembersInitializerFunction, FunctionKind.ClassStaticInitializerFunction);
239
+ }
240
+ export function isConstructable(kind) {
241
+ return isInRange(kind, FunctionKind.NormalFunction, FunctionKind.DerivedConstructor);
242
+ }
243
+ export function isStatic(kind) {
244
+ switch (kind) {
245
+ case FunctionKind.StaticGetterFunction:
246
+ case FunctionKind.StaticSetterFunction:
247
+ case FunctionKind.StaticConciseMethod:
248
+ case FunctionKind.StaticConciseGeneratorMethod:
249
+ case FunctionKind.StaticAsyncConciseMethod:
250
+ case FunctionKind.StaticAsyncConciseGeneratorMethod:
251
+ case FunctionKind.ClassStaticInitializerFunction:
252
+ return true;
253
+ default:
254
+ return false;
255
+ }
256
+ }
257
+ export function bindsSuper(kind) {
258
+ return isConciseMethod(kind) || isAccessorFunction(kind) || isClassConstructor(kind);
259
+ }
260
+ export function isAwaitAsIdentifierDisallowed(kind) {
261
+ return !isModule(kind) && (isAsyncFunction(kind) || kind == FunctionKind.ClassStaticInitializerFunction);
262
+ }
263
+ export function functionKind2String(kind) {
264
+ return FunctionKind[kind];
265
+ }
266
+ export function createClassInfo() {
267
+ return {
268
+ publicMembers: [],
269
+ privateMembers: [],
270
+ staticElements: [],
271
+ instanceFields: [],
272
+ 'constructor': undefined,
273
+ hasSeenConstructor: false,
274
+ hasStaticComputedNames: false,
275
+ hasStaticElements: false,
276
+ hasStaticPrivateMethods: false,
277
+ hasStaticBlocks: false,
278
+ hasInstanceMembers: false,
279
+ requiresBrand: false,
280
+ isAnonymous: false,
281
+ hasPrivateMethods: false,
282
+ computedFieldCount: 0,
283
+ };
284
+ }
285
+ export var FunctionNameValidity;
286
+ (function (FunctionNameValidity) {
287
+ FunctionNameValidity["FunctionNameIsStrictReserved"] = "FunctionNameIsStrictReserved";
288
+ FunctionNameValidity["SkipFunctionNameCheck"] = "SkipFunctionNameCheck";
289
+ FunctionNameValidity["FunctionNameValidityUnknown"] = "FunctionNameValidityUnknown";
290
+ })(FunctionNameValidity || (FunctionNameValidity = {}));
291
+ ;
292
+ export var ObjectLiteralPropertyKind;
293
+ (function (ObjectLiteralPropertyKind) {
294
+ ObjectLiteralPropertyKind["CONSTANT"] = "CONSTANT";
295
+ ObjectLiteralPropertyKind["COMPUTED"] = "COMPUTED";
296
+ ObjectLiteralPropertyKind["MATERIALIZED_LITERAL"] = "MATERIALIZED_LITERAL";
297
+ ObjectLiteralPropertyKind["GETTER"] = "GETTER";
298
+ ObjectLiteralPropertyKind["SETTER"] = "SETTER";
299
+ ObjectLiteralPropertyKind["PROTOTYPE"] = "PROTOTYPE";
300
+ ObjectLiteralPropertyKind["SPREAD"] = "SPREAD";
301
+ })(ObjectLiteralPropertyKind || (ObjectLiteralPropertyKind = {}));
302
+ export class ObjectLiteralProperty {
303
+ }
304
+ ObjectLiteralProperty.Kind = ObjectLiteralPropertyKind;
305
+ export var ClassLiteralPropertyKind;
306
+ (function (ClassLiteralPropertyKind) {
307
+ ClassLiteralPropertyKind["METHOD"] = "METHOD";
308
+ ClassLiteralPropertyKind["GETTER"] = "GETTER";
309
+ ClassLiteralPropertyKind["SETTER"] = "SETTER";
310
+ ClassLiteralPropertyKind["FIELD"] = "FIELD";
311
+ })(ClassLiteralPropertyKind || (ClassLiteralPropertyKind = {}));
312
+ export class ClassLiteralProperty {
313
+ }
314
+ ClassLiteralProperty.Kind = ClassLiteralPropertyKind;
315
+ export function classPropertyKindFor(kind) {
316
+ switch (kind) {
317
+ case PropertyKind.AccessorGetter:
318
+ return ClassLiteralPropertyKind.GETTER;
319
+ case PropertyKind.AccessorSetter:
320
+ return ClassLiteralPropertyKind.SETTER;
321
+ case PropertyKind.Method:
322
+ return ClassLiteralPropertyKind.METHOD;
323
+ case PropertyKind.ClassField:
324
+ return ClassLiteralPropertyKind.FIELD;
325
+ }
326
+ throw new Error(`unexpected property kind: ${kind}`);
327
+ }
328
+ export var VariableMode;
329
+ (function (VariableMode) {
330
+ VariableMode["Const"] = "Const";
331
+ VariableMode["PrivateMethod"] = "PrivateMethod";
332
+ VariableMode["PrivateGetterOnly"] = "PrivateGetterOnly";
333
+ VariableMode["PrivateSetterOnly"] = "PrivateSetterOnly";
334
+ })(VariableMode || (VariableMode = {}));
335
+ export function getVariableMode(kind) {
336
+ switch (kind) {
337
+ case ClassLiteralPropertyKind.FIELD:
338
+ return VariableMode.Const;
339
+ case ClassLiteralPropertyKind.METHOD:
340
+ return VariableMode.PrivateMethod;
341
+ case ClassLiteralPropertyKind.GETTER:
342
+ return VariableMode.PrivateGetterOnly;
343
+ case ClassLiteralPropertyKind.SETTER:
344
+ return VariableMode.PrivateSetterOnly;
345
+ }
346
+ }
347
+ export var LanguageMode;
348
+ (function (LanguageMode) {
349
+ LanguageMode[LanguageMode["Sloppy"] = 0] = "Sloppy";
350
+ LanguageMode[LanguageMode["Strict"] = 1] = "Strict";
351
+ })(LanguageMode || (LanguageMode = {}));
352
+ ;
353
+ export function isSloppy(mode) {
354
+ return LanguageMode.Sloppy === mode;
355
+ }
356
+ export function isStrict(mode) {
357
+ return LanguageMode.Strict === mode;
358
+ }
359
+ export function getLanguageMode(isModule) {
360
+ return !!isModule ? LanguageMode.Strict : LanguageMode.Sloppy;
361
+ }
362
+ export var VariableDeclarationContext;
363
+ (function (VariableDeclarationContext) {
364
+ VariableDeclarationContext[VariableDeclarationContext["StatementListItem"] = 0] = "StatementListItem";
365
+ VariableDeclarationContext[VariableDeclarationContext["Statement"] = 1] = "Statement";
366
+ VariableDeclarationContext[VariableDeclarationContext["ForStatement"] = 2] = "ForStatement";
367
+ })(VariableDeclarationContext || (VariableDeclarationContext = {}));
368
+ ;
369
+ export var AllowLabelledFunctionStatement;
370
+ (function (AllowLabelledFunctionStatement) {
371
+ AllowLabelledFunctionStatement[AllowLabelledFunctionStatement["AllowLabelledFunctionStatement"] = 0] = "AllowLabelledFunctionStatement";
372
+ AllowLabelledFunctionStatement[AllowLabelledFunctionStatement["DisallowLabelledFunctionStatement"] = 1] = "DisallowLabelledFunctionStatement";
373
+ })(AllowLabelledFunctionStatement || (AllowLabelledFunctionStatement = {}));
374
+ ;
375
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/expressions/v8/enums.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccessorProperty, MethodDefinition, PropertyDefinition, StaticBlock } from '../api/class/class.js';\nimport { ExpressionNode } from '../api/expression.js';\nimport { VariableDeclarator } from '../api/statement/declarations/declares.js';\nimport { Token } from './token.js';\n\nexport function isInRange(num: number, start: number, end: number) {\n\treturn num >= start && num <= end;\n}\n\nexport enum ParsingArrowHeadFlag { CertainlyNotArrowHead, MaybeArrowHead, AsyncArrowFunction }\nexport enum PropertyKind {\n\tValue, Shorthand, ShorthandOrClassField,\n\tAssign, Method, ClassField, AccessorGetter, AccessorSetter,\n\tSpread, NotSet\n}\nexport function isAccessor(kind: PropertyKind) {\n\treturn kind === PropertyKind.AccessorGetter || kind === PropertyKind.AccessorSetter;\n}\n\nexport enum PropertyPosition {\n\tObjectLiteral,\n\tClassLiteral\n}\n\nexport class PropertyKindInfo {\n\tname: string;\n\tposition = PropertyPosition.ClassLiteral;\n\tfuncFlag = ParseFunctionFlag.IsNormal;\n\tkind = PropertyKind.NotSet;\n\tisComputedName = false;\n\tisPrivate = false;\n\tisStatic = false;\n\tisRest = false;\n\n\tparsePropertyKindFromToken(token: Token): boolean {\n\t\t// This returns true, setting the property kind, iff the given token is\n\t\t// one which must occur after a property name, indicating that the\n\t\t// previous token was in fact a name and not a modifier (like the \"get\" in\n\t\t// \"get x\").\n\t\tswitch (token) {\n\t\t\tcase Token.COLON:\n\t\t\t\tthis.kind = PropertyKind.Value;\n\t\t\t\treturn true;\n\t\t\tcase Token.COMMA:\n\t\t\t\tthis.kind = PropertyKind.Shorthand;\n\t\t\t\treturn true;\n\t\t\tcase Token.RBRACE:\n\t\t\t\tthis.kind = PropertyKind.ShorthandOrClassField;\n\t\t\t\treturn true;\n\t\t\tcase Token.ASSIGN:\n\t\t\t\tthis.kind = PropertyKind.Assign;\n\t\t\t\treturn true;\n\t\t\tcase Token.LPAREN:\n\t\t\t\tthis.kind = PropertyKind.Method;\n\t\t\t\treturn true;\n\t\t\tcase Token.MUL:\n\t\t\tcase Token.SEMICOLON:\n\t\t\t\tthis.kind = PropertyKind.ClassField;\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn false;\n\t}\n\n}\n\nexport type FunctionInfo = { rest?: boolean };\n\nexport enum PreParserIdentifierType {\n\tNullIdentifier,\n\tUnknownIdentifier,\n\tEvalIdentifier,\n\tArgumentsIdentifier,\n\tConstructorIdentifier,\n\tAwaitIdentifier,\n\tAsyncIdentifier,\n\tNameIdentifier,\n\tPrivateNameIdentifier\n}\n\nexport enum FunctionBodyType {\n\tEXPRESSION,\n\tBLOCK,\n}\n\nexport enum ParseFunctionFlag {\n\tIsNormal = 0,\n\tIsGenerator = 1 << 0,\n\tIsAsync = 1 << 1\n}\n\nexport enum FunctionKind {\n\n\t// BEGIN constructable functions\n\tNormalFunction,\n\tModule,\n\tAsyncModule,\n\t// BEGIN class constructors\n\t// BEGIN base constructors\n\tBaseConstructor,\n\t// BEGIN default constructors\n\tDefaultBaseConstructor,\n\t// END base constructors\n\t// BEGIN derived constructors\n\tDefaultDerivedConstructor,\n\t// END default constructors\n\tDerivedConstructor,\n\t// END derived constructors\n\t// END class constructors\n\t// END constructable functions.\n\t// BEGIN accessors\n\tGetterFunction,\n\tStaticGetterFunction,\n\tSetterFunction,\n\tStaticSetterFunction,\n\t// END accessors\n\t// BEGIN arrow functions\n\tArrowFunction,\n\t// BEGIN async functions\n\tAsyncArrowFunction,\n\t// END arrow functions\n\tAsyncFunction,\n\t// BEGIN concise methods 1\n\tAsyncConciseMethod,\n\tStaticAsyncConciseMethod,\n\t// BEGIN generators\n\tAsyncConciseGeneratorMethod,\n\tStaticAsyncConciseGeneratorMethod,\n\t// END concise methods 1\n\tAsyncGeneratorFunction,\n\t// END async functions\n\tGeneratorFunction,\n\t// BEGIN concise methods 2\n\tConciseGeneratorMethod,\n\tStaticConciseGeneratorMethod,\n\t// END generators\n\tConciseMethod,\n\tStaticConciseMethod,\n\tClassMembersInitializerFunction,\n\tClassStaticInitializerFunction,\n\t// END concise methods 2\n\tInvalid,\n\n\tLastFunctionKind = ClassStaticInitializerFunction,\n}\n\nconst FUNCTIONS_TYPES: FunctionKind[][][] = [\n\t[\n\t\t// SubFunctionKind::kNormalFunction\n\t\t[// is_generator=false\n\t\t\tFunctionKind.NormalFunction,\n\t\t\tFunctionKind.AsyncFunction\n\t\t],\n\t\t[// is_generator=true\n\t\t\tFunctionKind.GeneratorFunction,\n\t\t\tFunctionKind.AsyncGeneratorFunction\n\t\t],\n\t],\n\t[\n\t\t// SubFunctionKind::kNonStaticMethod\n\t\t[// is_generator=false\n\t\t\tFunctionKind.ConciseMethod,\n\t\t\tFunctionKind.AsyncConciseMethod\n\t\t],\n\t\t[// is_generator=true\n\t\t\tFunctionKind.ConciseGeneratorMethod,\n\t\t\tFunctionKind.AsyncConciseGeneratorMethod\n\t\t],\n\t],\n\t[\n\t\t// SubFunctionKind::kStaticMethod\n\t\t[// is_generator=false\n\t\t\tFunctionKind.StaticConciseMethod,\n\t\t\tFunctionKind.StaticAsyncConciseMethod\n\t\t],\n\t\t[// is_generator=true\n\t\t\tFunctionKind.StaticConciseGeneratorMethod,\n\t\t\tFunctionKind.StaticAsyncConciseGeneratorMethod\n\t\t],\n\t]\n];\n\nexport enum SubFunctionKind {\n\tNormalFunction,\n\tNonStaticMethod,\n\tStaticMethod,\n}\n\nexport enum StaticFlag {\n\tNotStatic,\n\tStatic\n};\n\n\nexport function functionKindForImpl(subFunctionKind: SubFunctionKind, flags: ParseFunctionFlag): FunctionKind {\n\treturn FUNCTIONS_TYPES[subFunctionKind]\n\t[(flags & ParseFunctionFlag.IsGenerator) != 0 ? 1 : 0]\n\t[(flags & ParseFunctionFlag.IsAsync) != 0 ? 1 : 0];\n}\n\nexport function functionKindFor(isGenerator: boolean, isAsync: boolean): FunctionKind {\n\treturn FUNCTIONS_TYPES[SubFunctionKind.NormalFunction][isGenerator ? 1 : 0][isAsync ? 1 : 0];\n}\n\nexport function methodKindFor(isStatic: boolean, isGenerator: boolean, isAsync: boolean): FunctionKind {\n\treturn FUNCTIONS_TYPES[isStatic ? SubFunctionKind.StaticMethod : SubFunctionKind.NonStaticMethod][isGenerator ? 1 : 0][isAsync ? 1 : 0];\n}\n\nexport enum FunctionSyntaxKind {\n\tAnonymousExpression,\n\tNamedExpression,\n\tDeclaration,\n\tAccessorOrMethod,\n\tWrapped,\n\n\tLastFunctionSyntaxKind = Wrapped,\n};\n\n\n\nexport function isArrowFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.ArrowFunction, FunctionKind.AsyncArrowFunction);\n}\n\nexport function isModule(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.Module, FunctionKind.AsyncModule);\n}\n\nexport function isAsyncModule(kind: FunctionKind) {\n\treturn kind == FunctionKind.AsyncModule;\n}\n\nexport function isAsyncGeneratorFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.AsyncConciseGeneratorMethod, FunctionKind.AsyncGeneratorFunction);\n}\n\nexport function isGeneratorFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.AsyncConciseGeneratorMethod, FunctionKind.StaticConciseGeneratorMethod);\n}\n\nexport function isAsyncFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.AsyncArrowFunction, FunctionKind.AsyncGeneratorFunction);\n}\n\nexport function isResumableFunction(kind: FunctionKind) {\n\treturn isGeneratorFunction(kind) || isAsyncFunction(kind) || isModule(kind);\n}\n\nexport function isConciseMethod(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.AsyncConciseMethod, FunctionKind.StaticAsyncConciseGeneratorMethod)\n\t\t|| isInRange(kind, FunctionKind.ConciseGeneratorMethod, FunctionKind.ClassStaticInitializerFunction);\n}\n\nexport function isStrictFunctionWithoutPrototype(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.GetterFunction, FunctionKind.AsyncArrowFunction)\n\t\t|| isInRange(kind, FunctionKind.AsyncConciseMethod, FunctionKind.StaticAsyncConciseGeneratorMethod)\n\t\t|| isInRange(kind, FunctionKind.ConciseGeneratorMethod, FunctionKind.ClassStaticInitializerFunction);\n}\n\nexport function isGetterFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.GetterFunction, FunctionKind.StaticGetterFunction);\n}\n\nexport function isSetterFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.SetterFunction, FunctionKind.StaticSetterFunction);\n}\n\nexport function isAccessorFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.GetterFunction, FunctionKind.StaticSetterFunction);\n}\n\nexport function isDefaultConstructor(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.DefaultBaseConstructor, FunctionKind.DefaultDerivedConstructor);\n}\n\nexport function isBaseConstructor(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.BaseConstructor, FunctionKind.DefaultBaseConstructor);\n}\n\nexport function isDerivedConstructor(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.DefaultDerivedConstructor, FunctionKind.DerivedConstructor);\n}\n\nexport function isClassConstructor(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.BaseConstructor, FunctionKind.DerivedConstructor);\n}\n\nexport function isClassMembersInitializerFunction(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.ClassMembersInitializerFunction, FunctionKind.ClassStaticInitializerFunction);\n}\n\nexport function isConstructable(kind: FunctionKind) {\n\treturn isInRange(kind, FunctionKind.NormalFunction, FunctionKind.DerivedConstructor);\n}\n\nexport function isStatic(kind: FunctionKind) {\n\tswitch (kind) {\n\t\tcase FunctionKind.StaticGetterFunction:\n\t\tcase FunctionKind.StaticSetterFunction:\n\t\tcase FunctionKind.StaticConciseMethod:\n\t\tcase FunctionKind.StaticConciseGeneratorMethod:\n\t\tcase FunctionKind.StaticAsyncConciseMethod:\n\t\tcase FunctionKind.StaticAsyncConciseGeneratorMethod:\n\t\tcase FunctionKind.ClassStaticInitializerFunction:\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport function bindsSuper(kind: FunctionKind) {\n\treturn isConciseMethod(kind) || isAccessorFunction(kind) || isClassConstructor(kind);\n}\n\nexport function isAwaitAsIdentifierDisallowed(kind: FunctionKind) {\n\t// 'await' is always disallowed as an identifier in module contexts. Callers\n\t// should short-circuit the module case instead of calling this.\n\treturn !isModule(kind) && (isAsyncFunction(kind) || kind == FunctionKind.ClassStaticInitializerFunction);\n}\n\nexport function functionKind2String(kind: FunctionKind): string {\n\treturn FunctionKind[kind];\n}\n\nexport type ClassInfo = {\n\textends?: ExpressionNode;\n\tpublicMembers: (MethodDefinition | PropertyDefinition)[],\n\tprivateMembers: (MethodDefinition | PropertyDefinition)[],\n\tstaticElements: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[],\n\tinstanceFields: (MethodDefinition | PropertyDefinition | AccessorProperty)[],\n\tconstructor: MethodDefinition | undefined,\n\n\thasSeenConstructor: boolean;\n\thasStaticComputedNames: boolean;\n\thasStaticElements: boolean;\n\thasStaticPrivateMethods: boolean;\n\thasStaticBlocks: boolean;\n\thasInstanceMembers: boolean;\n\trequiresBrand: boolean;\n\tisAnonymous: boolean;\n\thasPrivateMethods: boolean,\n\n\tcomputedFieldCount: number;\n\n\thomeObjectVariable?: VariableDeclarator;\n\tstaticHomeObjectVariable?: VariableDeclarator;\n};\n\nexport function createClassInfo(): ClassInfo {\n\treturn {\n\t\tpublicMembers: [],\n\t\tprivateMembers: [],\n\t\tstaticElements: [],\n\t\tinstanceFields: [],\n\t\t'constructor': undefined,\n\n\t\thasSeenConstructor: false,\n\t\thasStaticComputedNames: false,\n\t\thasStaticElements: false,\n\t\thasStaticPrivateMethods: false,\n\t\thasStaticBlocks: false,\n\t\thasInstanceMembers: false,\n\t\trequiresBrand: false,\n\t\tisAnonymous: false,\n\t\thasPrivateMethods: false,\n\n\t\tcomputedFieldCount: 0,\n\t};\n}\n\nexport enum FunctionNameValidity {\n\tFunctionNameIsStrictReserved = 'FunctionNameIsStrictReserved',\n\tSkipFunctionNameCheck = 'SkipFunctionNameCheck',\n\tFunctionNameValidityUnknown = 'FunctionNameValidityUnknown'\n};\n\nexport enum ObjectLiteralPropertyKind {\n\tCONSTANT = 'CONSTANT',\t// Property with constant value (compile time).\n\tCOMPUTED = 'COMPUTED',\t// Property with computed value (execution time).\n\tMATERIALIZED_LITERAL = 'MATERIALIZED_LITERAL', // Property value is a materialized literal.\n\tGETTER = 'GETTER',\n\tSETTER = 'SETTER',\t\t// Property is an accessor function.\n\tPROTOTYPE = 'PROTOTYPE',\t// Property is __proto__.\n\tSPREAD = 'SPREAD'\n}\nexport class ObjectLiteralProperty {\n\tstatic Kind = ObjectLiteralPropertyKind;\n}\n\nexport enum ClassLiteralPropertyKind {\n\tMETHOD = 'METHOD',\n\tGETTER = 'GETTER',\n\tSETTER = 'SETTER',\n\tFIELD = 'FIELD'\n}\n\nexport class ClassLiteralProperty {\n\tstatic Kind = ClassLiteralPropertyKind;\n}\n\nexport function classPropertyKindFor(kind: PropertyKind): ClassLiteralPropertyKind {\n\tswitch (kind) {\n\t\tcase PropertyKind.AccessorGetter:\n\t\t\treturn ClassLiteralPropertyKind.GETTER;\n\t\tcase PropertyKind.AccessorSetter:\n\t\t\treturn ClassLiteralPropertyKind.SETTER;\n\t\tcase PropertyKind.Method:\n\t\t\treturn ClassLiteralPropertyKind.METHOD;\n\t\tcase PropertyKind.ClassField:\n\t\t\treturn ClassLiteralPropertyKind.FIELD;\n\t}\n\tthrow new Error(`unexpected property kind: ${kind}`);\n}\n\nexport enum VariableMode {\n\tConst = 'Const',\n\tPrivateMethod = 'PrivateMethod',\n\tPrivateGetterOnly = 'PrivateGetterOnly',\n\tPrivateSetterOnly = 'PrivateSetterOnly'\n}\n\nexport function getVariableMode(kind: ClassLiteralPropertyKind): VariableMode {\n\tswitch (kind) {\n\t\tcase ClassLiteralPropertyKind.FIELD:\n\t\t\treturn VariableMode.Const;\n\t\tcase ClassLiteralPropertyKind.METHOD:\n\t\t\treturn VariableMode.PrivateMethod;\n\t\tcase ClassLiteralPropertyKind.GETTER:\n\t\t\treturn VariableMode.PrivateGetterOnly;\n\t\tcase ClassLiteralPropertyKind.SETTER:\n\t\t\treturn VariableMode.PrivateSetterOnly;\n\t}\n}\n\nexport enum LanguageMode {\n\tSloppy,\n\tStrict,\n};\n\nexport function isSloppy(mode: LanguageMode) {\n\treturn LanguageMode.Sloppy === mode;\n}\n\nexport function isStrict(mode: LanguageMode) {\n\treturn LanguageMode.Strict === mode;\n}\n\nexport function getLanguageMode(isModule: boolean) {\n\treturn !!isModule ? LanguageMode.Strict : LanguageMode.Sloppy;\n}\n\nexport enum VariableDeclarationContext {\n\tStatementListItem,\n\tStatement,\n\tForStatement\n};\n\nexport enum AllowLabelledFunctionStatement {\n\tAllowLabelledFunctionStatement,\n\tDisallowLabelledFunctionStatement,\n};\n"]}
package/v8/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './token.js';
2
2
  export * from './stream.js';
3
- export * from './parser.js';
3
+ export * from './enums.js';
4
+ export * from './inline.js';
4
5
  export * from './parser.js';
package/v8/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './token.js';
2
2
  export * from './stream.js';
3
- export * from './parser.js';
3
+ export * from './enums.js';
4
+ export * from './inline.js';
4
5
  export * from './parser.js';
5
6
  //# sourceMappingURL=index.js.map
package/v8/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/expressions/v8/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC","sourcesContent":["export * from './token.js';\nexport * from './stream.js';\nexport * from './parser.js';\nexport * from './parser.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/expressions/v8/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC","sourcesContent":["export * from './token.js';\nexport * from './stream.js';\nexport * from './enums.js';\nexport * from './inline.js';\nexport * from './parser.js';"]}