UNPKG

4.54 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _index = require("./index.js");
9
10var _invariant = _interopRequireDefault(require("../invariant.js"));
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14/**
15 * Copyright (c) 2017-present, Facebook, Inc.
16 * All rights reserved.
17 *
18 * This source code is licensed under the BSD-style license found in the
19 * LICENSE file in the root directory of this source tree. An additional grant
20 * of patent rights can be found in the PATENTS file in the same directory.
21 */
22class Value {
23 constructor(realm, intrinsicName) {
24 (0, _invariant.default)(realm, "realm required");
25 this.$Realm = realm;
26 this.intrinsicName = intrinsicName;
27 this.expressionLocation = realm.currentLocation;
28 } // Name from original source if existant
29
30
31 toDisplayString() {
32 return "[" + this.constructor.name + " originally; " + (this.__originalName ? this.__originalName : "undefined") + "]";
33 }
34
35 equals(x) {
36 (0, _invariant.default)(false, "abstract method; please override");
37 }
38
39 getHash() {
40 (0, _invariant.default)(false, "abstract method; please override");
41 }
42
43 getType() {
44 return this.constructor;
45 }
46
47 static isTypeCompatibleWith(type, Constructor) {
48 return type.prototype instanceof Constructor || type.prototype === Constructor.prototype;
49 }
50
51 implies(val) {
52 if (this.equals(val)) return true;
53 if (!this.mightNotBeFalse()) return true;
54 if (!val.mightNotBeTrue()) return true;
55 return false;
56 }
57
58 isIntrinsic() {
59 return !!this.intrinsicName;
60 }
61
62 isPartialObject() {
63 return false;
64 }
65
66 isSimpleObject() {
67 return false;
68 }
69
70 mightBeFalse() {
71 (0, _invariant.default)(false, "abstract method; please override");
72 }
73
74 mightNotBeFalse() {
75 (0, _invariant.default)(false, "abstract method; please override");
76 }
77
78 mightBeNull() {
79 (0, _invariant.default)(false, "abstract method; please override");
80 }
81
82 mightNotBeNull() {
83 (0, _invariant.default)(false, "abstract method; please override");
84 }
85
86 mightBeNumber() {
87 (0, _invariant.default)(false, "abstract method; please override");
88 }
89
90 mightNotBeNumber() {
91 (0, _invariant.default)(false, "abstract method; please override");
92 }
93
94 mightNotBeObject() {
95 (0, _invariant.default)(false, "abstract method; please override");
96 }
97
98 mightBeObject() {
99 (0, _invariant.default)(false, "abstract method; please override");
100 }
101
102 mightBeString() {
103 (0, _invariant.default)(false, "abstract method; please override");
104 }
105
106 mightNotBeString() {
107 (0, _invariant.default)(false, "abstract method; please override");
108 }
109
110 mightBeTrue() {
111 return this.mightNotBeFalse();
112 }
113
114 mightNotBeTrue() {
115 return this.mightBeFalse();
116 }
117
118 mightBeUndefined() {
119 (0, _invariant.default)(false, "abstract method; please override");
120 }
121
122 mightNotBeUndefined() {
123 (0, _invariant.default)(false, "abstract method; please override");
124 }
125
126 mightHaveBeenDeleted() {
127 (0, _invariant.default)(false, "abstract method; please override");
128 }
129
130 promoteEmptyToUndefined() {
131 (0, _invariant.default)(false, "abstract method; please override");
132 }
133
134 throwIfNotConcrete() {
135 (0, _invariant.default)(false, "abstract method; please override");
136 }
137
138 throwIfNotConcreteNumber() {
139 (0, _invariant.default)(false, "abstract method; please override");
140 }
141
142 throwIfNotConcreteString() {
143 throw new Error("abstract method; please override");
144 }
145
146 throwIfNotConcreteBoolean() {
147 throw new Error("abstract method; please override");
148 }
149
150 throwIfNotConcreteSymbol() {
151 throw new Error("abstract method; please override");
152 }
153
154 throwIfNotConcreteObject() {
155 (0, _invariant.default)(false, "abstract method; please override");
156 }
157
158 throwIfNotConcretePrimitive() {
159 (0, _invariant.default)(false, "abstract method; please override");
160 }
161
162 throwIfNotObject() {
163 (0, _invariant.default)(false, "abstract method; please override");
164 }
165
166 serialize(stack = new Map()) {
167 if (stack.has(this)) {
168 return stack.get(this);
169 } else {
170 let set = val => {
171 stack.set(this, val);
172 return val;
173 };
174
175 return set(this._serialize(set, stack));
176 }
177 }
178
179 _serialize(set, stack) {
180 (0, _invariant.default)(false, "abstract method; please override");
181 }
182
183 getDebugName() {
184 return this.intrinsicName || this.__originalName;
185 }
186
187}
188
189exports.default = Value;
190//# sourceMappingURL=Value.js.map
\No newline at end of file