test/dummy/node_modules/@babel/traverse/lib/path/index.js in disco_app-0.18.0 vs test/dummy/node_modules/@babel/traverse/lib/path/index.js in disco_app-0.18.1

- old
+ new

@@ -1,79 +1,81 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = void 0; +exports.default = exports.SHOULD_SKIP = exports.SHOULD_STOP = exports.REMOVED = void 0; -var virtualTypes = _interopRequireWildcard(require("./lib/virtual-types")); +var virtualTypes = require("./lib/virtual-types"); -var _debug = _interopRequireDefault(require("debug")); +var _debug = require("debug"); -var _index = _interopRequireDefault(require("../index")); +var _index = require("../index"); -var _scope = _interopRequireDefault(require("../scope")); +var _scope = require("../scope"); -var t = _interopRequireWildcard(require("@babel/types")); +var _t = require("@babel/types"); +var t = _t; + var _cache = require("../cache"); -var _generator = _interopRequireDefault(require("@babel/generator")); +var _generator = require("@babel/generator"); -var NodePath_ancestry = _interopRequireWildcard(require("./ancestry")); +var NodePath_ancestry = require("./ancestry"); -var NodePath_inference = _interopRequireWildcard(require("./inference")); +var NodePath_inference = require("./inference"); -var NodePath_replacement = _interopRequireWildcard(require("./replacement")); +var NodePath_replacement = require("./replacement"); -var NodePath_evaluation = _interopRequireWildcard(require("./evaluation")); +var NodePath_evaluation = require("./evaluation"); -var NodePath_conversion = _interopRequireWildcard(require("./conversion")); +var NodePath_conversion = require("./conversion"); -var NodePath_introspection = _interopRequireWildcard(require("./introspection")); +var NodePath_introspection = require("./introspection"); -var NodePath_context = _interopRequireWildcard(require("./context")); +var NodePath_context = require("./context"); -var NodePath_removal = _interopRequireWildcard(require("./removal")); +var NodePath_removal = require("./removal"); -var NodePath_modification = _interopRequireWildcard(require("./modification")); +var NodePath_modification = require("./modification"); -var NodePath_family = _interopRequireWildcard(require("./family")); +var NodePath_family = require("./family"); -var NodePath_comments = _interopRequireWildcard(require("./comments")); +var NodePath_comments = require("./comments"); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +const { + validate +} = _t; -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } +const debug = _debug("babel"); -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +const REMOVED = 1 << 0; +exports.REMOVED = REMOVED; +const SHOULD_STOP = 1 << 1; +exports.SHOULD_STOP = SHOULD_STOP; +const SHOULD_SKIP = 1 << 2; +exports.SHOULD_SKIP = SHOULD_SKIP; -const debug = (0, _debug.default)("babel"); - class NodePath { constructor(hub, parent) { - this.parent = parent; - this.hub = hub; this.contexts = []; - this.data = Object.create(null); - this.shouldSkip = false; - this.shouldStop = false; - this.removed = false; this.state = null; this.opts = null; + this._traverseFlags = 0; this.skipKeys = null; this.parentPath = null; - this.context = null; this.container = null; this.listKey = null; - this.inList = false; - this.parentKey = null; this.key = null; this.node = null; - this.scope = null; this.type = null; - this.typeAnnotation = null; + this.parent = parent; + this.hub = hub; + this.data = null; + this.context = null; + this.scope = null; } static get({ hub, parentPath, @@ -89,30 +91,24 @@ if (!parent) { throw new Error("To get a node path the parent needs to exist"); } const targetNode = container[key]; - const paths = _cache.path.get(parent) || []; - if (!_cache.path.has(parent)) { - _cache.path.set(parent, paths); - } + let paths = _cache.path.get(parent); - let path; + if (!paths) { + paths = new Map(); - for (let i = 0; i < paths.length; i++) { - const pathCheck = paths[i]; - - if (pathCheck.node === targetNode) { - path = pathCheck; - break; - } + _cache.path.set(parent, paths); } + let path = paths.get(targetNode); + if (!path) { path = new NodePath(hub, parent); - paths.push(path); + if (targetNode) paths.set(targetNode, path); } path.setup(parentPath, container, listKey, key); return path; } @@ -120,14 +116,22 @@ getScope(scope) { return this.isScope() ? new _scope.default(this) : scope; } setData(key, val) { + if (this.data == null) { + this.data = Object.create(null); + } + return this.data[key] = val; } getData(key, def) { + if (this.data == null) { + this.data = Object.create(null); + } + let val = this.data[key]; if (val === undefined && def !== undefined) val = this.data[key] = def; return val; } @@ -138,11 +142,11 @@ traverse(visitor, state) { (0, _index.default)(this.node, visitor, this.scope, state, this); } set(key, node) { - t.validate(this.node, key, node); + validate(this.node, key, node); this.node[key] = node; } getPathLocation() { const parts = []; @@ -164,13 +168,62 @@ toString() { return (0, _generator.default)(this.node).code; } + get inList() { + return !!this.listKey; + } + + set inList(inList) { + if (!inList) { + this.listKey = null; + } + } + + get parentKey() { + return this.listKey || this.key; + } + + get shouldSkip() { + return !!(this._traverseFlags & SHOULD_SKIP); + } + + set shouldSkip(v) { + if (v) { + this._traverseFlags |= SHOULD_SKIP; + } else { + this._traverseFlags &= ~SHOULD_SKIP; + } + } + + get shouldStop() { + return !!(this._traverseFlags & SHOULD_STOP); + } + + set shouldStop(v) { + if (v) { + this._traverseFlags |= SHOULD_STOP; + } else { + this._traverseFlags &= ~SHOULD_STOP; + } + } + + get removed() { + return !!(this._traverseFlags & REMOVED); + } + + set removed(v) { + if (v) { + this._traverseFlags |= REMOVED; + } else { + this._traverseFlags &= ~REMOVED; + } + } + } -exports.default = NodePath; Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments); for (const type of t.TYPES) { const typeKey = `is${type}`; const fn = t[typeKey]; @@ -192,6 +245,9 @@ const virtualType = virtualTypes[type]; NodePath.prototype[`is${type}`] = function (opts) { return virtualType.checkPath(this, opts); }; -} +} + +var _default = NodePath; +exports.default = _default; \ No newline at end of file