summaryrefslogtreecommitdiff
path: root/node_modules/@babel/generator/lib/node/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/generator/lib/node/index.js')
-rw-r--r--node_modules/@babel/generator/lib/node/index.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/node_modules/@babel/generator/lib/node/index.js b/node_modules/@babel/generator/lib/node/index.js
index b5640509..50f0e19d 100644
--- a/node_modules/@babel/generator/lib/node/index.js
+++ b/node_modules/@babel/generator/lib/node/index.js
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TokenContext = void 0;
+exports.isLastChild = isLastChild;
exports.needsParens = needsParens;
exports.needsWhitespace = needsWhitespace;
exports.needsWhitespaceAfter = needsWhitespaceAfter;
@@ -13,6 +14,7 @@ var parens = require("./parentheses.js");
var _t = require("@babel/types");
const {
FLIPPED_ALIAS_KEYS,
+ VISITOR_KEYS,
isCallExpression,
isDecorator,
isExpressionStatement,
@@ -97,5 +99,21 @@ function isDecoratorMemberExpression(node) {
return false;
}
}
+function isLastChild(parent, child) {
+ const visitorKeys = VISITOR_KEYS[parent.type];
+ for (let i = visitorKeys.length - 1; i >= 0; i--) {
+ const val = parent[visitorKeys[i]];
+ if (val === child) {
+ return true;
+ } else if (Array.isArray(val)) {
+ let j = val.length - 1;
+ while (j >= 0 && val[j] === null) j--;
+ return j >= 0 && val[j] === child;
+ } else if (val) {
+ return false;
+ }
+ }
+ return false;
+}
//# sourceMappingURL=index.js.map