diff options
Diffstat (limited to 'node_modules/@babel/traverse/lib/path/removal.js')
| -rw-r--r-- | node_modules/@babel/traverse/lib/path/removal.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/node_modules/@babel/traverse/lib/path/removal.js b/node_modules/@babel/traverse/lib/path/removal.js new file mode 100644 index 0000000..f31e1ca --- /dev/null +++ b/node_modules/@babel/traverse/lib/path/removal.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports._assertUnremoved = _assertUnremoved; +exports._callRemovalHooks = _callRemovalHooks; +exports._markRemoved = _markRemoved; +exports._remove = _remove; +exports._removeFromScope = _removeFromScope; +exports.remove = remove; +var _removalHooks = require("./lib/removal-hooks.js"); +var _cache = require("../cache.js"); +var _replacement = require("./replacement.js"); +var _index = require("./index.js"); +var t = require("@babel/types"); +var _modification = require("./modification.js"); +var _context = require("./context.js"); +function remove() { + var _this$opts; + _assertUnremoved.call(this); + _context.resync.call(this); + if (_callRemovalHooks.call(this)) { + _markRemoved.call(this); + return; + } + if (!((_this$opts = this.opts) != null && _this$opts.noScope)) { + _removeFromScope.call(this); + } + this.shareCommentsWithSiblings(); + _remove.call(this); + _markRemoved.call(this); +} +function _removeFromScope() { + const bindings = t.getBindingIdentifiers(this.node, false, false, true); + Object.keys(bindings).forEach(name => this.scope.removeBinding(name)); +} +function _callRemovalHooks() { + if (this.parentPath) { + for (const fn of _removalHooks.hooks) { + if (fn(this, this.parentPath)) return true; + } + } +} +function _remove() { + if (Array.isArray(this.container)) { + this.container.splice(this.key, 1); + _modification.updateSiblingKeys.call(this, this.key, -1); + } else { + _replacement._replaceWith.call(this, null); + } +} +function _markRemoved() { + this._traverseFlags |= _index.SHOULD_SKIP | _index.REMOVED; + if (this.parent) { + var _getCachedPaths; + (_getCachedPaths = (0, _cache.getCachedPaths)(this)) == null || _getCachedPaths.delete(this.node); + } + this.node = null; +} +function _assertUnremoved() { + if (this.removed) { + throw this.buildCodeFrameError("NodePath has been removed so is read-only."); + } +} + +//# sourceMappingURL=removal.js.map |
