ast-types 0.11.5 → 0.12.1
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.
- package/.travis.yml +2 -2
- package/def/babel-core.d.ts +2 -0
- package/def/babel-core.js +250 -290
- package/def/babel.d.ts +2 -0
- package/def/babel.js +12 -3
- package/def/core.d.ts +2 -0
- package/def/core.js +57 -126
- package/def/es-proposals.d.ts +2 -0
- package/def/es-proposals.js +34 -32
- package/def/es6.d.ts +2 -0
- package/def/es6.js +210 -253
- package/def/es7.d.ts +2 -0
- package/def/es7.js +35 -41
- package/def/esprima.d.ts +2 -0
- package/def/esprima.js +50 -71
- package/def/flow.d.ts +2 -0
- package/def/flow.js +289 -393
- package/def/jsx.d.ts +2 -0
- package/def/jsx.js +99 -125
- package/def/type-annotations.d.ts +7 -0
- package/def/type-annotations.js +42 -0
- package/def/typescript.d.ts +2 -0
- package/def/typescript.js +326 -444
- package/fork.d.ts +46 -0
- package/fork.js +40 -31
- package/gen/builders.d.ts +2539 -0
- package/gen/builders.js +2 -0
- package/gen/kinds.d.ts +259 -0
- package/gen/kinds.js +2 -0
- package/gen/namedTypes.d.ts +262 -0
- package/gen/namedTypes.js +2 -0
- package/gen/nodes.d.ts +1255 -0
- package/gen/nodes.js +2 -0
- package/gen/visitor.d.ts +263 -0
- package/gen/visitor.js +2 -0
- package/lib/equiv.d.ts +5 -0
- package/lib/equiv.js +19 -49
- package/lib/node-path.d.ts +22 -0
- package/lib/node-path.js +60 -125
- package/lib/path-visitor.d.ts +52 -0
- package/lib/path-visitor.js +117 -194
- package/lib/path.d.ts +25 -0
- package/lib/path.js +71 -107
- package/lib/scope.d.ts +26 -0
- package/lib/scope.js +100 -143
- package/lib/shared.d.ts +13 -0
- package/lib/shared.js +34 -31
- package/lib/types.d.ts +140 -0
- package/lib/types.js +584 -676
- package/main.d.ts +16 -0
- package/main.js +33 -18
- package/package.json +24 -7
- package/tsconfig.json +20 -0
- package/types.d.ts +6 -0
- package/types.js +2 -0
- package/def/e4x.js +0 -86
- package/def/mozilla.js +0 -42
package/def/core.js
CHANGED
|
@@ -1,133 +1,113 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var types_1 = __importDefault(require("../lib/types"));
|
|
7
|
+
var shared_1 = __importDefault(require("../lib/shared"));
|
|
8
|
+
function default_1(fork) {
|
|
9
|
+
var types = fork.use(types_1.default);
|
|
3
10
|
var Type = types.Type;
|
|
4
11
|
var def = Type.def;
|
|
5
12
|
var or = Type.or;
|
|
6
|
-
var shared = fork.use(
|
|
13
|
+
var shared = fork.use(shared_1.default);
|
|
7
14
|
var defaults = shared.defaults;
|
|
8
15
|
var geq = shared.geq;
|
|
9
|
-
|
|
10
16
|
// Abstract supertype of all syntactic entities that are allowed to have a
|
|
11
17
|
// .loc field.
|
|
12
18
|
def("Printable")
|
|
13
|
-
.field("loc", or(
|
|
14
|
-
def("SourceLocation"),
|
|
15
|
-
null
|
|
16
|
-
), defaults["null"], true);
|
|
17
|
-
|
|
19
|
+
.field("loc", or(def("SourceLocation"), null), defaults["null"], true);
|
|
18
20
|
def("Node")
|
|
19
21
|
.bases("Printable")
|
|
20
22
|
.field("type", String)
|
|
21
|
-
.field("comments", or(
|
|
22
|
-
[def("Comment")],
|
|
23
|
-
null
|
|
24
|
-
), defaults["null"], true);
|
|
25
|
-
|
|
23
|
+
.field("comments", or([def("Comment")], null), defaults["null"], true);
|
|
26
24
|
def("SourceLocation")
|
|
27
|
-
.build("start", "end", "source")
|
|
28
25
|
.field("start", def("Position"))
|
|
29
26
|
.field("end", def("Position"))
|
|
30
27
|
.field("source", or(String, null), defaults["null"]);
|
|
31
|
-
|
|
32
28
|
def("Position")
|
|
33
|
-
.build("line", "column")
|
|
34
29
|
.field("line", geq(1))
|
|
35
30
|
.field("column", geq(0));
|
|
36
|
-
|
|
37
31
|
def("File")
|
|
38
32
|
.bases("Node")
|
|
39
33
|
.build("program", "name")
|
|
40
34
|
.field("program", def("Program"))
|
|
41
35
|
.field("name", or(String, null), defaults["null"]);
|
|
42
|
-
|
|
43
36
|
def("Program")
|
|
44
37
|
.bases("Node")
|
|
45
38
|
.build("body")
|
|
46
39
|
.field("body", [def("Statement")]);
|
|
47
|
-
|
|
48
40
|
def("Function")
|
|
49
41
|
.bases("Node")
|
|
50
42
|
.field("id", or(def("Identifier"), null), defaults["null"])
|
|
51
43
|
.field("params", [def("Pattern")])
|
|
52
|
-
.field("body", def("BlockStatement"))
|
|
53
|
-
|
|
44
|
+
.field("body", def("BlockStatement"))
|
|
45
|
+
.field("generator", Boolean, defaults["false"])
|
|
46
|
+
.field("async", Boolean, defaults["false"]);
|
|
54
47
|
def("Statement").bases("Node");
|
|
55
|
-
|
|
56
|
-
//
|
|
57
|
-
// (i.e. it's not abstract) but that it needs no arguments.
|
|
48
|
+
// The empty .build() here means that an EmptyStatement can be constructed
|
|
49
|
+
// (i.e. it's not abstract) but that it needs no arguments.
|
|
58
50
|
def("EmptyStatement").bases("Statement").build();
|
|
59
|
-
|
|
60
51
|
def("BlockStatement")
|
|
61
52
|
.bases("Statement")
|
|
62
53
|
.build("body")
|
|
63
54
|
.field("body", [def("Statement")]);
|
|
64
|
-
|
|
65
55
|
// TODO Figure out how to silently coerce Expressions to
|
|
66
56
|
// ExpressionStatements where a Statement was expected.
|
|
67
57
|
def("ExpressionStatement")
|
|
68
58
|
.bases("Statement")
|
|
69
59
|
.build("expression")
|
|
70
60
|
.field("expression", def("Expression"));
|
|
71
|
-
|
|
72
61
|
def("IfStatement")
|
|
73
62
|
.bases("Statement")
|
|
74
63
|
.build("test", "consequent", "alternate")
|
|
75
64
|
.field("test", def("Expression"))
|
|
76
65
|
.field("consequent", def("Statement"))
|
|
77
66
|
.field("alternate", or(def("Statement"), null), defaults["null"]);
|
|
78
|
-
|
|
79
67
|
def("LabeledStatement")
|
|
80
68
|
.bases("Statement")
|
|
81
69
|
.build("label", "body")
|
|
82
70
|
.field("label", def("Identifier"))
|
|
83
71
|
.field("body", def("Statement"));
|
|
84
|
-
|
|
85
72
|
def("BreakStatement")
|
|
86
73
|
.bases("Statement")
|
|
87
74
|
.build("label")
|
|
88
75
|
.field("label", or(def("Identifier"), null), defaults["null"]);
|
|
89
|
-
|
|
90
76
|
def("ContinueStatement")
|
|
91
77
|
.bases("Statement")
|
|
92
78
|
.build("label")
|
|
93
79
|
.field("label", or(def("Identifier"), null), defaults["null"]);
|
|
94
|
-
|
|
95
80
|
def("WithStatement")
|
|
96
81
|
.bases("Statement")
|
|
97
82
|
.build("object", "body")
|
|
98
83
|
.field("object", def("Expression"))
|
|
99
84
|
.field("body", def("Statement"));
|
|
100
|
-
|
|
101
85
|
def("SwitchStatement")
|
|
102
86
|
.bases("Statement")
|
|
103
87
|
.build("discriminant", "cases", "lexical")
|
|
104
88
|
.field("discriminant", def("Expression"))
|
|
105
89
|
.field("cases", [def("SwitchCase")])
|
|
106
90
|
.field("lexical", Boolean, defaults["false"]);
|
|
107
|
-
|
|
108
91
|
def("ReturnStatement")
|
|
109
92
|
.bases("Statement")
|
|
110
93
|
.build("argument")
|
|
111
94
|
.field("argument", or(def("Expression"), null));
|
|
112
|
-
|
|
113
95
|
def("ThrowStatement")
|
|
114
96
|
.bases("Statement")
|
|
115
97
|
.build("argument")
|
|
116
98
|
.field("argument", def("Expression"));
|
|
117
|
-
|
|
118
99
|
def("TryStatement")
|
|
119
100
|
.bases("Statement")
|
|
120
101
|
.build("block", "handler", "finalizer")
|
|
121
102
|
.field("block", def("BlockStatement"))
|
|
122
103
|
.field("handler", or(def("CatchClause"), null), function () {
|
|
123
|
-
|
|
124
|
-
|
|
104
|
+
return this.handlers && this.handlers[0] || null;
|
|
105
|
+
})
|
|
125
106
|
.field("handlers", [def("CatchClause")], function () {
|
|
126
|
-
|
|
127
|
-
|
|
107
|
+
return this.handler ? [this.handler] : [];
|
|
108
|
+
}, true) // Indicates this field is hidden from eachField iteration.
|
|
128
109
|
.field("guardedHandlers", [def("CatchClause")], defaults.emptyArray)
|
|
129
110
|
.field("finalizer", or(def("BlockStatement"), null), defaults["null"]);
|
|
130
|
-
|
|
131
111
|
def("CatchClause")
|
|
132
112
|
.bases("Node")
|
|
133
113
|
.build("param", "guard", "body")
|
|
@@ -135,79 +115,59 @@ module.exports = function (fork) {
|
|
|
135
115
|
.field("param", or(def("Pattern"), null), defaults["null"])
|
|
136
116
|
.field("guard", or(def("Expression"), null), defaults["null"])
|
|
137
117
|
.field("body", def("BlockStatement"));
|
|
138
|
-
|
|
139
118
|
def("WhileStatement")
|
|
140
119
|
.bases("Statement")
|
|
141
120
|
.build("test", "body")
|
|
142
121
|
.field("test", def("Expression"))
|
|
143
122
|
.field("body", def("Statement"));
|
|
144
|
-
|
|
145
123
|
def("DoWhileStatement")
|
|
146
124
|
.bases("Statement")
|
|
147
125
|
.build("body", "test")
|
|
148
126
|
.field("body", def("Statement"))
|
|
149
127
|
.field("test", def("Expression"));
|
|
150
|
-
|
|
151
128
|
def("ForStatement")
|
|
152
129
|
.bases("Statement")
|
|
153
130
|
.build("init", "test", "update", "body")
|
|
154
|
-
.field("init", or(
|
|
155
|
-
def("VariableDeclaration"),
|
|
156
|
-
def("Expression"),
|
|
157
|
-
null))
|
|
131
|
+
.field("init", or(def("VariableDeclaration"), def("Expression"), null))
|
|
158
132
|
.field("test", or(def("Expression"), null))
|
|
159
133
|
.field("update", or(def("Expression"), null))
|
|
160
134
|
.field("body", def("Statement"));
|
|
161
|
-
|
|
162
135
|
def("ForInStatement")
|
|
163
136
|
.bases("Statement")
|
|
164
137
|
.build("left", "right", "body")
|
|
165
|
-
.field("left", or(
|
|
166
|
-
def("VariableDeclaration"),
|
|
167
|
-
def("Expression")))
|
|
138
|
+
.field("left", or(def("VariableDeclaration"), def("Expression")))
|
|
168
139
|
.field("right", def("Expression"))
|
|
169
140
|
.field("body", def("Statement"));
|
|
170
|
-
|
|
171
141
|
def("DebuggerStatement").bases("Statement").build();
|
|
172
|
-
|
|
173
142
|
def("Declaration").bases("Statement");
|
|
174
|
-
|
|
175
143
|
def("FunctionDeclaration")
|
|
176
144
|
.bases("Function", "Declaration")
|
|
177
145
|
.build("id", "params", "body")
|
|
178
146
|
.field("id", def("Identifier"));
|
|
179
|
-
|
|
180
147
|
def("FunctionExpression")
|
|
181
148
|
.bases("Function", "Expression")
|
|
182
149
|
.build("id", "params", "body");
|
|
183
|
-
|
|
184
150
|
def("VariableDeclaration")
|
|
185
151
|
.bases("Declaration")
|
|
186
152
|
.build("kind", "declarations")
|
|
187
153
|
.field("kind", or("var", "let", "const"))
|
|
188
154
|
.field("declarations", [def("VariableDeclarator")]);
|
|
189
|
-
|
|
190
155
|
def("VariableDeclarator")
|
|
191
156
|
.bases("Node")
|
|
192
157
|
.build("id", "init")
|
|
193
158
|
.field("id", def("Pattern"))
|
|
194
|
-
.field("init", or(def("Expression"), null));
|
|
195
|
-
|
|
159
|
+
.field("init", or(def("Expression"), null), defaults["null"]);
|
|
196
160
|
// TODO Are all Expressions really Patterns?
|
|
197
161
|
def("Expression").bases("Node", "Pattern");
|
|
198
|
-
|
|
199
162
|
def("ThisExpression").bases("Expression").build();
|
|
200
|
-
|
|
201
163
|
def("ArrayExpression")
|
|
202
164
|
.bases("Expression")
|
|
203
165
|
.build("elements")
|
|
204
166
|
.field("elements", [or(def("Expression"), null)]);
|
|
205
|
-
|
|
206
167
|
def("ObjectExpression")
|
|
207
168
|
.bases("Expression")
|
|
208
169
|
.build("properties")
|
|
209
170
|
.field("properties", [def("Property")]);
|
|
210
|
-
|
|
211
171
|
// TODO Not in the Mozilla Parser API, but used by Esprima.
|
|
212
172
|
def("Property")
|
|
213
173
|
.bases("Node") // Want to be able to visit Property Nodes.
|
|
@@ -215,16 +175,11 @@ module.exports = function (fork) {
|
|
|
215
175
|
.field("kind", or("init", "get", "set"))
|
|
216
176
|
.field("key", or(def("Literal"), def("Identifier")))
|
|
217
177
|
.field("value", def("Expression"));
|
|
218
|
-
|
|
219
178
|
def("SequenceExpression")
|
|
220
179
|
.bases("Expression")
|
|
221
180
|
.build("expressions")
|
|
222
181
|
.field("expressions", [def("Expression")]);
|
|
223
|
-
|
|
224
|
-
var UnaryOperator = or(
|
|
225
|
-
"-", "+", "!", "~",
|
|
226
|
-
"typeof", "void", "delete");
|
|
227
|
-
|
|
182
|
+
var UnaryOperator = or("-", "+", "!", "~", "typeof", "void", "delete");
|
|
228
183
|
def("UnaryExpression")
|
|
229
184
|
.bases("Expression")
|
|
230
185
|
.build("operator", "argument", "prefix")
|
|
@@ -233,60 +188,41 @@ module.exports = function (fork) {
|
|
|
233
188
|
// Esprima doesn't bother with this field, presumably because it's
|
|
234
189
|
// always true for unary operators.
|
|
235
190
|
.field("prefix", Boolean, defaults["true"]);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
"==", "!=", "===", "!==",
|
|
239
|
-
"<", "<=", ">", ">=",
|
|
240
|
-
"<<", ">>", ">>>",
|
|
241
|
-
"+", "-", "*", "/", "%", "**",
|
|
242
|
-
"&", // TODO Missing from the Parser API.
|
|
243
|
-
"|", "^", "in",
|
|
244
|
-
"instanceof", "..");
|
|
245
|
-
|
|
191
|
+
var BinaryOperator = or("==", "!=", "===", "!==", "<", "<=", ">", ">=", "<<", ">>", ">>>", "+", "-", "*", "/", "%", "**", "&", // TODO Missing from the Parser API.
|
|
192
|
+
"|", "^", "in", "instanceof", "..");
|
|
246
193
|
def("BinaryExpression")
|
|
247
194
|
.bases("Expression")
|
|
248
195
|
.build("operator", "left", "right")
|
|
249
196
|
.field("operator", BinaryOperator)
|
|
250
197
|
.field("left", def("Expression"))
|
|
251
198
|
.field("right", def("Expression"));
|
|
252
|
-
|
|
253
|
-
var AssignmentOperator = or(
|
|
254
|
-
"=", "+=", "-=", "*=", "/=", "%=",
|
|
255
|
-
"<<=", ">>=", ">>>=",
|
|
256
|
-
"|=", "^=", "&=");
|
|
257
|
-
|
|
199
|
+
var AssignmentOperator = or("=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=");
|
|
258
200
|
def("AssignmentExpression")
|
|
259
201
|
.bases("Expression")
|
|
260
202
|
.build("operator", "left", "right")
|
|
261
203
|
.field("operator", AssignmentOperator)
|
|
262
204
|
.field("left", def("Pattern"))
|
|
263
205
|
.field("right", def("Expression"));
|
|
264
|
-
|
|
265
206
|
var UpdateOperator = or("++", "--");
|
|
266
|
-
|
|
267
207
|
def("UpdateExpression")
|
|
268
208
|
.bases("Expression")
|
|
269
209
|
.build("operator", "argument", "prefix")
|
|
270
210
|
.field("operator", UpdateOperator)
|
|
271
211
|
.field("argument", def("Expression"))
|
|
272
212
|
.field("prefix", Boolean);
|
|
273
|
-
|
|
274
213
|
var LogicalOperator = or("||", "&&");
|
|
275
|
-
|
|
276
214
|
def("LogicalExpression")
|
|
277
215
|
.bases("Expression")
|
|
278
216
|
.build("operator", "left", "right")
|
|
279
217
|
.field("operator", LogicalOperator)
|
|
280
218
|
.field("left", def("Expression"))
|
|
281
219
|
.field("right", def("Expression"));
|
|
282
|
-
|
|
283
220
|
def("ConditionalExpression")
|
|
284
221
|
.bases("Expression")
|
|
285
222
|
.build("test", "consequent", "alternate")
|
|
286
223
|
.field("test", def("Expression"))
|
|
287
224
|
.field("consequent", def("Expression"))
|
|
288
225
|
.field("alternate", def("Expression"));
|
|
289
|
-
|
|
290
226
|
def("NewExpression")
|
|
291
227
|
.bases("Expression")
|
|
292
228
|
.build("callee", "arguments")
|
|
@@ -295,69 +231,62 @@ module.exports = function (fork) {
|
|
|
295
231
|
// null)], but null values don't really make sense at the call site.
|
|
296
232
|
// TODO Report this nonsense.
|
|
297
233
|
.field("arguments", [def("Expression")]);
|
|
298
|
-
|
|
299
234
|
def("CallExpression")
|
|
300
235
|
.bases("Expression")
|
|
301
236
|
.build("callee", "arguments")
|
|
302
237
|
.field("callee", def("Expression"))
|
|
303
238
|
// See comment for NewExpression above.
|
|
304
239
|
.field("arguments", [def("Expression")]);
|
|
305
|
-
|
|
306
240
|
def("MemberExpression")
|
|
307
241
|
.bases("Expression")
|
|
308
242
|
.build("object", "property", "computed")
|
|
309
243
|
.field("object", def("Expression"))
|
|
310
244
|
.field("property", or(def("Identifier"), def("Expression")))
|
|
311
245
|
.field("computed", Boolean, function () {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
246
|
+
var type = this.property.type;
|
|
247
|
+
if (type === 'Literal' ||
|
|
248
|
+
type === 'MemberExpression' ||
|
|
249
|
+
type === 'BinaryExpression') {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
return false;
|
|
253
|
+
});
|
|
321
254
|
def("Pattern").bases("Node");
|
|
322
|
-
|
|
323
255
|
def("SwitchCase")
|
|
324
256
|
.bases("Node")
|
|
325
257
|
.build("test", "consequent")
|
|
326
258
|
.field("test", or(def("Expression"), null))
|
|
327
259
|
.field("consequent", [def("Statement")]);
|
|
328
|
-
|
|
329
260
|
def("Identifier")
|
|
330
261
|
// But aren't Expressions and Patterns already Nodes? TODO Report this.
|
|
331
262
|
.bases("Node", "Expression", "Pattern")
|
|
332
263
|
.build("name")
|
|
333
264
|
.field("name", String)
|
|
334
265
|
.field("optional", Boolean, defaults["false"]);
|
|
335
|
-
|
|
336
266
|
def("Literal")
|
|
337
267
|
// But aren't Expressions already Nodes? TODO Report this.
|
|
338
268
|
.bases("Node", "Expression")
|
|
339
269
|
.build("value")
|
|
340
270
|
.field("value", or(String, Boolean, null, Number, RegExp))
|
|
341
271
|
.field("regex", or({
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
272
|
+
pattern: String,
|
|
273
|
+
flags: String
|
|
274
|
+
}, null), function () {
|
|
275
|
+
if (this.value instanceof RegExp) {
|
|
276
|
+
var flags = "";
|
|
277
|
+
if (this.value.ignoreCase)
|
|
278
|
+
flags += "i";
|
|
279
|
+
if (this.value.multiline)
|
|
280
|
+
flags += "m";
|
|
281
|
+
if (this.value.global)
|
|
282
|
+
flags += "g";
|
|
283
|
+
return {
|
|
284
|
+
pattern: this.value.source,
|
|
285
|
+
flags: flags
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
return null;
|
|
289
|
+
});
|
|
361
290
|
// Abstract (non-buildable) comment supertype. Not a Node.
|
|
362
291
|
def("Comment")
|
|
363
292
|
.bases("Printable")
|
|
@@ -369,4 +298,6 @@ module.exports = function (fork) {
|
|
|
369
298
|
// e.g. { /*dangling*/ }.
|
|
370
299
|
.field("leading", Boolean, defaults["true"])
|
|
371
300
|
.field("trailing", Boolean, defaults["false"]);
|
|
372
|
-
}
|
|
301
|
+
}
|
|
302
|
+
exports.default = default_1;
|
|
303
|
+
module.exports = exports["default"];
|
package/def/es-proposals.js
CHANGED
|
@@ -1,33 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var types = fork.use(require("../lib/types"));
|
|
5
|
-
var Type = types.Type;
|
|
6
|
-
var def = types.Type.def;
|
|
7
|
-
var or = Type.or;
|
|
8
|
-
|
|
9
|
-
var shared = fork.use(require("../lib/shared"));
|
|
10
|
-
var defaults = shared.defaults;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// https://github.com/tc39/proposal-optional-chaining
|
|
14
|
-
// `a?.b` as per https://github.com/estree/estree/issues/146
|
|
15
|
-
def("OptionalMemberExpression")
|
|
16
|
-
.bases("MemberExpression")
|
|
17
|
-
.build("object", "property", "computed", "optional")
|
|
18
|
-
.field("optional", Boolean, defaults["true"])
|
|
19
|
-
|
|
20
|
-
// a?.b()
|
|
21
|
-
def("OptionalCallExpression")
|
|
22
|
-
.bases("CallExpression")
|
|
23
|
-
.build("callee", "arguments", "optional")
|
|
24
|
-
.field("optional", Boolean, defaults["true"])
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// https://github.com/tc39/proposal-nullish-coalescing
|
|
28
|
-
// `a ?? b` as per https://github.com/babel/babylon/pull/761/files
|
|
29
|
-
var LogicalOperator = or("||", "&&", "??");
|
|
30
|
-
|
|
31
|
-
def("LogicalExpression")
|
|
32
|
-
.field("operator", LogicalOperator)
|
|
1
|
+
"use strict";;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33
4
|
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var types_1 = __importDefault(require("../lib/types"));
|
|
7
|
+
var shared_1 = __importDefault(require("../lib/shared"));
|
|
8
|
+
var core_1 = __importDefault(require("./core"));
|
|
9
|
+
function default_1(fork) {
|
|
10
|
+
fork.use(core_1.default);
|
|
11
|
+
var types = fork.use(types_1.default);
|
|
12
|
+
var Type = types.Type;
|
|
13
|
+
var def = types.Type.def;
|
|
14
|
+
var or = Type.or;
|
|
15
|
+
var shared = fork.use(shared_1.default);
|
|
16
|
+
var defaults = shared.defaults;
|
|
17
|
+
// https://github.com/tc39/proposal-optional-chaining
|
|
18
|
+
// `a?.b` as per https://github.com/estree/estree/issues/146
|
|
19
|
+
def("OptionalMemberExpression")
|
|
20
|
+
.bases("MemberExpression")
|
|
21
|
+
.build("object", "property", "computed", "optional")
|
|
22
|
+
.field("optional", Boolean, defaults["true"]);
|
|
23
|
+
// a?.b()
|
|
24
|
+
def("OptionalCallExpression")
|
|
25
|
+
.bases("CallExpression")
|
|
26
|
+
.build("callee", "arguments", "optional")
|
|
27
|
+
.field("optional", Boolean, defaults["true"]);
|
|
28
|
+
// https://github.com/tc39/proposal-nullish-coalescing
|
|
29
|
+
// `a ?? b` as per https://github.com/babel/babylon/pull/761/files
|
|
30
|
+
var LogicalOperator = or("||", "&&", "??");
|
|
31
|
+
def("LogicalExpression")
|
|
32
|
+
.field("operator", LogicalOperator);
|
|
33
|
+
}
|
|
34
|
+
exports.default = default_1;
|
|
35
|
+
module.exports = exports["default"];
|
package/def/es6.d.ts
ADDED