diff options
Diffstat (limited to 'node_modules/@babel/generator/lib/node/index.js')
| -rw-r--r-- | node_modules/@babel/generator/lib/node/index.js | 18 |
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 |
