source: trip-planner-front/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js@ 59329aa

Last change on this file since 59329aa was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 2.3 KB
Line 
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = gatherSequenceExpressions;
7
8var _getBindingIdentifiers = require("../retrievers/getBindingIdentifiers");
9
10var _generated = require("../validators/generated");
11
12var _generated2 = require("../builders/generated");
13
14var _cloneNode = require("../clone/cloneNode");
15
16function gatherSequenceExpressions(nodes, scope, declars) {
17 const exprs = [];
18 let ensureLastUndefined = true;
19
20 for (const node of nodes) {
21 if (!(0, _generated.isEmptyStatement)(node)) {
22 ensureLastUndefined = false;
23 }
24
25 if ((0, _generated.isExpression)(node)) {
26 exprs.push(node);
27 } else if ((0, _generated.isExpressionStatement)(node)) {
28 exprs.push(node.expression);
29 } else if ((0, _generated.isVariableDeclaration)(node)) {
30 if (node.kind !== "var") return;
31
32 for (const declar of node.declarations) {
33 const bindings = (0, _getBindingIdentifiers.default)(declar);
34
35 for (const key of Object.keys(bindings)) {
36 declars.push({
37 kind: node.kind,
38 id: (0, _cloneNode.default)(bindings[key])
39 });
40 }
41
42 if (declar.init) {
43 exprs.push((0, _generated2.assignmentExpression)("=", declar.id, declar.init));
44 }
45 }
46
47 ensureLastUndefined = true;
48 } else if ((0, _generated.isIfStatement)(node)) {
49 const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], scope, declars) : scope.buildUndefinedNode();
50 const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], scope, declars) : scope.buildUndefinedNode();
51 if (!consequent || !alternate) return;
52 exprs.push((0, _generated2.conditionalExpression)(node.test, consequent, alternate));
53 } else if ((0, _generated.isBlockStatement)(node)) {
54 const body = gatherSequenceExpressions(node.body, scope, declars);
55 if (!body) return;
56 exprs.push(body);
57 } else if ((0, _generated.isEmptyStatement)(node)) {
58 if (nodes.indexOf(node) === 0) {
59 ensureLastUndefined = true;
60 }
61 } else {
62 return;
63 }
64 }
65
66 if (ensureLastUndefined) {
67 exprs.push(scope.buildUndefinedNode());
68 }
69
70 if (exprs.length === 1) {
71 return exprs[0];
72 } else {
73 return (0, _generated2.sequenceExpression)(exprs);
74 }
75}
Note: See TracBrowser for help on using the repository browser.