summaryrefslogtreecommitdiff
path: root/node_modules/@babel/traverse/lib/scope/binding.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/traverse/lib/scope/binding.js')
-rw-r--r--node_modules/@babel/traverse/lib/scope/binding.js83
1 files changed, 0 insertions, 83 deletions
diff --git a/node_modules/@babel/traverse/lib/scope/binding.js b/node_modules/@babel/traverse/lib/scope/binding.js
deleted file mode 100644
index 90a6d9b8..00000000
--- a/node_modules/@babel/traverse/lib/scope/binding.js
+++ /dev/null
@@ -1,83 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.default = void 0;
-class Binding {
- constructor({
- identifier,
- scope,
- path,
- kind
- }) {
- this.identifier = void 0;
- this.scope = void 0;
- this.path = void 0;
- this.kind = void 0;
- this.constantViolations = [];
- this.constant = true;
- this.referencePaths = [];
- this.referenced = false;
- this.references = 0;
- this.identifier = identifier;
- this.scope = scope;
- this.path = path;
- this.kind = kind;
- if ((kind === "var" || kind === "hoisted") && isDeclaredInLoop(path)) {
- this.reassign(path);
- }
- this.clearValue();
- }
- deoptValue() {
- this.clearValue();
- this.hasDeoptedValue = true;
- }
- setValue(value) {
- if (this.hasDeoptedValue) return;
- this.hasValue = true;
- this.value = value;
- }
- clearValue() {
- this.hasDeoptedValue = false;
- this.hasValue = false;
- this.value = null;
- }
- reassign(path) {
- this.constant = false;
- if (this.constantViolations.includes(path)) {
- return;
- }
- this.constantViolations.push(path);
- }
- reference(path) {
- if (this.referencePaths.includes(path)) {
- return;
- }
- this.referenced = true;
- this.references++;
- this.referencePaths.push(path);
- }
- dereference() {
- this.references--;
- this.referenced = !!this.references;
- }
-}
-exports.default = Binding;
-function isDeclaredInLoop(path) {
- for (let {
- parentPath,
- key
- } = path; parentPath; ({
- parentPath,
- key
- } = parentPath)) {
- if (parentPath.isFunctionParent()) return false;
- if (parentPath.isWhile() || parentPath.isForXStatement() || parentPath.isForStatement() && key === "body") {
- return true;
- }
- }
- return false;
-}
-
-//# sourceMappingURL=binding.js.map