1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _index = require("./index.js");
|
9 |
|
10 | var _invariant = _interopRequireDefault(require("../invariant.js"));
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | class 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 | }
|
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 |
|
189 | exports.default = Value;
|
190 |
|
\ | No newline at end of file |