Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/free-space.h"
10 : #include "src/objects/js-generator.h"
11 : #include "src/objects/js-promise.h"
12 : #include "src/objects/js-regexp-string-iterator.h"
13 : #include "src/objects/module.h"
14 : #include "src/objects/stack-frame-info.h"
15 : #include "src/builtins/builtins-regexp-gen.h"
16 : #include "src/builtins/builtins-array-gen.h"
17 : #include "src/builtins/builtins-collections-gen.h"
18 : #include "src/builtins/builtins-data-view-gen.h"
19 : #include "src/builtins/builtins-iterator-gen.h"
20 : #include "src/builtins/builtins-proxy-gen.h"
21 : #include "src/builtins/builtins-proxy-gen.h"
22 : #include "src/builtins/builtins-proxy-gen.h"
23 : #include "src/builtins/builtins-proxy-gen.h"
24 : #include "src/builtins/builtins-regexp-gen.h"
25 : #include "src/builtins/builtins-regexp-gen.h"
26 : #include "src/builtins/builtins-regexp-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-constructor-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "src/builtins/builtins-typed-array-gen.h"
31 : #include "src/builtins/builtins-typed-array-gen.h"
32 : #include "src/builtins/builtins-typed-array-gen.h"
33 : #include "src/builtins/builtins-typed-array-gen.h"
34 : #include "src/builtins/builtins-typed-array-gen.h"
35 : #include "src/builtins/builtins-typed-array-gen.h"
36 : #include "src/builtins/builtins-typed-array-gen.h"
37 : #include "torque-generated/builtins-base-from-dsl-gen.h"
38 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
39 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
48 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
49 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
50 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
51 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
52 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
53 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
54 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
55 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
56 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
57 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
58 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
59 : #include "torque-generated/builtins-object-from-dsl-gen.h"
60 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
61 : #include "torque-generated/builtins-regexp-from-dsl-gen.h"
62 : #include "torque-generated/builtins-regexp-replace-from-dsl-gen.h"
63 : #include "torque-generated/builtins-string-from-dsl-gen.h"
64 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
65 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
69 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
70 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
71 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
72 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
73 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
74 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
75 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
76 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
77 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
78 : #include "torque-generated/builtins-test-from-dsl-gen.h"
79 :
80 : namespace v8 {
81 : namespace internal {
82 :
83 112 : compiler::TNode<JSProxy> ProxyBuiltinsFromDSLAssembler::AllocateProxy(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_target, compiler::TNode<JSReceiver> p_handler) {
84 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSReceiver> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSReceiver, JSProxy> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSReceiver, JSProxy> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 : ca_.Goto(&block0, p_context, p_target, p_handler);
88 :
89 112 : if (block0.is_used()) {
90 : compiler::TNode<Context> tmp0;
91 : compiler::TNode<JSReceiver> tmp1;
92 : compiler::TNode<JSReceiver> tmp2;
93 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
94 112 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 13);
95 : compiler::TNode<JSProxy> tmp3;
96 : USE(tmp3);
97 336 : tmp3 = ca_.UncheckedCast<JSProxy>(ProxiesCodeStubAssembler(state_).AllocateProxy(compiler::TNode<JSReceiver>{tmp1}, compiler::TNode<JSReceiver>{tmp2}, compiler::TNode<Context>{tmp0}));
98 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp3);
99 : }
100 :
101 112 : if (block1.is_used()) {
102 : compiler::TNode<Context> tmp4;
103 : compiler::TNode<JSReceiver> tmp5;
104 : compiler::TNode<JSReceiver> tmp6;
105 : compiler::TNode<JSProxy> tmp7;
106 : ca_.Bind(&block1, &tmp4, &tmp5, &tmp6, &tmp7);
107 112 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 11);
108 : ca_.Goto(&block2, tmp4, tmp5, tmp6, tmp7);
109 : }
110 :
111 : compiler::TNode<Context> tmp8;
112 : compiler::TNode<JSReceiver> tmp9;
113 : compiler::TNode<JSReceiver> tmp10;
114 : compiler::TNode<JSProxy> tmp11;
115 : ca_.Bind(&block2, &tmp8, &tmp9, &tmp10, &tmp11);
116 224 : return compiler::TNode<JSProxy>{tmp11};
117 : }
118 :
119 224 : compiler::TNode<BoolT> ProxyBuiltinsFromDSLAssembler::IsRevokedProxy(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o) {
120 224 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
121 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSReceiver> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
122 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSReceiver, JSProxy> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
123 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
124 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSProxy> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
125 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSProxy, Object> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
126 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSProxy, Object, JSReceiver> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
127 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSProxy> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
128 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, JSProxy, JSReceiver> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
129 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, BoolT> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
130 : compiler::CodeAssemblerParameterizedLabel<Context, JSReceiver, BoolT> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
131 : ca_.Goto(&block0, p_context, p_o);
132 :
133 224 : if (block0.is_used()) {
134 : compiler::TNode<Context> tmp0;
135 : compiler::TNode<JSReceiver> tmp1;
136 : ca_.Bind(&block0, &tmp0, &tmp1);
137 224 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 17);
138 : compiler::TNode<JSProxy> tmp2;
139 : USE(tmp2);
140 224 : compiler::CodeAssemblerLabel label0(&ca_);
141 672 : tmp2 = BaseBuiltinsFromDSLAssembler(state_).Cast7JSProxy(compiler::TNode<HeapObject>{tmp1}, &label0);
142 : ca_.Goto(&block4, tmp0, tmp1, tmp1, tmp2);
143 224 : if (label0.is_used()) {
144 224 : ca_.Bind(&label0);
145 : ca_.Goto(&block5, tmp0, tmp1, tmp1);
146 : }
147 : }
148 :
149 224 : if (block5.is_used()) {
150 : compiler::TNode<Context> tmp3;
151 : compiler::TNode<JSReceiver> tmp4;
152 : compiler::TNode<JSReceiver> tmp5;
153 : ca_.Bind(&block5, &tmp3, &tmp4, &tmp5);
154 : ca_.Goto(&block3, tmp3, tmp4);
155 : }
156 :
157 224 : if (block4.is_used()) {
158 : compiler::TNode<Context> tmp6;
159 : compiler::TNode<JSReceiver> tmp7;
160 : compiler::TNode<JSReceiver> tmp8;
161 : compiler::TNode<JSProxy> tmp9;
162 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9);
163 : ca_.Goto(&block2, tmp6, tmp7, tmp9);
164 : }
165 :
166 224 : if (block3.is_used()) {
167 : compiler::TNode<Context> tmp10;
168 : compiler::TNode<JSReceiver> tmp11;
169 : ca_.Bind(&block3, &tmp10, &tmp11);
170 : compiler::TNode<BoolT> tmp12;
171 : USE(tmp12);
172 672 : tmp12 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(false));
173 : ca_.Goto(&block1, tmp10, tmp11, tmp12);
174 : }
175 :
176 224 : if (block2.is_used()) {
177 : compiler::TNode<Context> tmp13;
178 : compiler::TNode<JSReceiver> tmp14;
179 : compiler::TNode<JSProxy> tmp15;
180 : ca_.Bind(&block2, &tmp13, &tmp14, &tmp15);
181 224 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 19);
182 224 : compiler::TNode<IntPtrT> tmp16 = ca_.IntPtrConstant(JSProxy::kHandlerOffset);
183 : USE(tmp16);
184 448 : compiler::TNode<Object>tmp17 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp15, tmp16});
185 : compiler::TNode<JSReceiver> tmp18;
186 : USE(tmp18);
187 224 : compiler::CodeAssemblerLabel label0(&ca_);
188 672 : tmp18 = BaseBuiltinsFromDSLAssembler(state_).Cast10JSReceiver(compiler::TNode<Context>{tmp13}, compiler::TNode<Object>{tmp17}, &label0);
189 : ca_.Goto(&block8, tmp13, tmp14, tmp15, tmp17, tmp18);
190 224 : if (label0.is_used()) {
191 224 : ca_.Bind(&label0);
192 : ca_.Goto(&block9, tmp13, tmp14, tmp15, tmp17);
193 : }
194 : }
195 :
196 224 : if (block9.is_used()) {
197 : compiler::TNode<Context> tmp19;
198 : compiler::TNode<JSReceiver> tmp20;
199 : compiler::TNode<JSProxy> tmp21;
200 : compiler::TNode<Object> tmp22;
201 : ca_.Bind(&block9, &tmp19, &tmp20, &tmp21, &tmp22);
202 : ca_.Goto(&block7, tmp19, tmp20, tmp21);
203 : }
204 :
205 224 : if (block8.is_used()) {
206 : compiler::TNode<Context> tmp23;
207 : compiler::TNode<JSReceiver> tmp24;
208 : compiler::TNode<JSProxy> tmp25;
209 : compiler::TNode<Object> tmp26;
210 : compiler::TNode<JSReceiver> tmp27;
211 : ca_.Bind(&block8, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
212 : ca_.Goto(&block6, tmp23, tmp24, tmp25, tmp27);
213 : }
214 :
215 224 : if (block7.is_used()) {
216 : compiler::TNode<Context> tmp28;
217 : compiler::TNode<JSReceiver> tmp29;
218 : compiler::TNode<JSProxy> tmp30;
219 : ca_.Bind(&block7, &tmp28, &tmp29, &tmp30);
220 : compiler::TNode<BoolT> tmp31;
221 : USE(tmp31);
222 672 : tmp31 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(true));
223 : ca_.Goto(&block1, tmp28, tmp29, tmp31);
224 : }
225 :
226 224 : if (block6.is_used()) {
227 : compiler::TNode<Context> tmp32;
228 : compiler::TNode<JSReceiver> tmp33;
229 : compiler::TNode<JSProxy> tmp34;
230 : compiler::TNode<JSReceiver> tmp35;
231 : ca_.Bind(&block6, &tmp32, &tmp33, &tmp34, &tmp35);
232 224 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 18);
233 224 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 20);
234 : compiler::TNode<BoolT> tmp36;
235 : USE(tmp36);
236 672 : tmp36 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(false));
237 : ca_.Goto(&block1, tmp32, tmp33, tmp36);
238 : }
239 :
240 224 : if (block1.is_used()) {
241 : compiler::TNode<Context> tmp37;
242 : compiler::TNode<JSReceiver> tmp38;
243 : compiler::TNode<BoolT> tmp39;
244 : ca_.Bind(&block1, &tmp37, &tmp38, &tmp39);
245 224 : ca_.SetSourcePosition("../../src/builtins/proxy.tq", 16);
246 : ca_.Goto(&block10, tmp37, tmp38, tmp39);
247 : }
248 :
249 : compiler::TNode<Context> tmp40;
250 : compiler::TNode<JSReceiver> tmp41;
251 : compiler::TNode<BoolT> tmp42;
252 : ca_.Bind(&block10, &tmp40, &tmp41, &tmp42);
253 448 : return compiler::TNode<BoolT>{tmp42};
254 : }
255 :
256 224 : TF_BUILTIN(ProxyConstructor, CodeStubAssembler) {
257 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
258 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
259 : USE(parameter0);
260 : compiler::TNode<Object> parameter1 = UncheckedCast<Object>(Parameter(Descriptor::kReceiver));
261 : USE(parameter1);
262 : compiler::TNode<Object> parameter2 = UncheckedCast<Object>(Parameter(Descriptor::kTarget));
263 : USE(parameter2);
264 : compiler::TNode<Object> parameter3 = UncheckedCast<Object>(Parameter(Descriptor::kHandler));
265 : USE(parameter3);
266 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
267 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
268 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
269 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
270 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, Object, JSReceiver> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
271 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
272 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
273 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver, Object> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
274 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver, Object, JSReceiver> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
275 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver, JSReceiver> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
276 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver, JSReceiver> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
277 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kDeferred);
278 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block2(&ca_, compiler::CodeAssemblerLabel::kDeferred);
279 : ca_.Goto(&block0, parameter0, parameter1, parameter2, parameter3);
280 :
281 56 : if (block0.is_used()) {
282 : compiler::TNode<Context> tmp0;
283 : compiler::TNode<Object> tmp1;
284 : compiler::TNode<Object> tmp2;
285 : compiler::TNode<Object> tmp3;
286 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
287 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 19);
288 : compiler::TNode<Object> tmp4;
289 : USE(tmp4);
290 112 : tmp4 = ca_.UncheckedCast<Object>(ProxiesCodeStubAssembler(state_).GetProxyConstructorJSNewTarget());
291 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 20);
292 : compiler::TNode<Oddball> tmp5;
293 : USE(tmp5);
294 112 : tmp5 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
295 : compiler::TNode<BoolT> tmp6;
296 : USE(tmp6);
297 112 : tmp6 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp4}, compiler::TNode<HeapObject>{tmp5}));
298 56 : ca_.Branch(tmp6, &block5, &block6, tmp0, tmp1, tmp2, tmp3, tmp4);
299 : }
300 :
301 56 : if (block5.is_used()) {
302 : compiler::TNode<Context> tmp7;
303 : compiler::TNode<Object> tmp8;
304 : compiler::TNode<Object> tmp9;
305 : compiler::TNode<Object> tmp10;
306 : compiler::TNode<Object> tmp11;
307 : ca_.Bind(&block5, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
308 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 21);
309 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp7}, MessageTemplate::kConstructorNotFunction, "Proxy");
310 : }
311 :
312 56 : if (block6.is_used()) {
313 : compiler::TNode<Context> tmp12;
314 : compiler::TNode<Object> tmp13;
315 : compiler::TNode<Object> tmp14;
316 : compiler::TNode<Object> tmp15;
317 : compiler::TNode<Object> tmp16;
318 : ca_.Bind(&block6, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
319 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 33);
320 : compiler::TNode<JSReceiver> tmp17;
321 : USE(tmp17);
322 56 : compiler::CodeAssemblerLabel label0(&ca_);
323 112 : tmp17 = BaseBuiltinsFromDSLAssembler(state_).Cast10JSReceiver(compiler::TNode<Context>{tmp12}, compiler::TNode<Object>{tmp14}, &label0);
324 : ca_.Goto(&block7, tmp12, tmp13, tmp14, tmp15, tmp16, tmp14, tmp17);
325 56 : if (label0.is_used()) {
326 56 : ca_.Bind(&label0);
327 : ca_.Goto(&block8, tmp12, tmp13, tmp14, tmp15, tmp16, tmp14);
328 : }
329 : }
330 :
331 56 : if (block8.is_used()) {
332 : compiler::TNode<Context> tmp18;
333 : compiler::TNode<Object> tmp19;
334 : compiler::TNode<Object> tmp20;
335 : compiler::TNode<Object> tmp21;
336 : compiler::TNode<Object> tmp22;
337 : compiler::TNode<Object> tmp23;
338 : ca_.Bind(&block8, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23);
339 : ca_.Goto(&block4, tmp18, tmp19, tmp20, tmp21);
340 : }
341 :
342 56 : if (block7.is_used()) {
343 : compiler::TNode<Context> tmp24;
344 : compiler::TNode<Object> tmp25;
345 : compiler::TNode<Object> tmp26;
346 : compiler::TNode<Object> tmp27;
347 : compiler::TNode<Object> tmp28;
348 : compiler::TNode<Object> tmp29;
349 : compiler::TNode<JSReceiver> tmp30;
350 : ca_.Bind(&block7, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30);
351 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 34);
352 : compiler::TNode<BoolT> tmp31;
353 : USE(tmp31);
354 112 : tmp31 = ca_.UncheckedCast<BoolT>(ProxyBuiltinsFromDSLAssembler(state_).IsRevokedProxy(compiler::TNode<Context>{tmp24}, compiler::TNode<JSReceiver>{tmp30}));
355 56 : ca_.Branch(tmp31, &block9, &block10, tmp24, tmp25, tmp26, tmp27, tmp28, tmp30);
356 : }
357 :
358 56 : if (block9.is_used()) {
359 : compiler::TNode<Context> tmp32;
360 : compiler::TNode<Object> tmp33;
361 : compiler::TNode<Object> tmp34;
362 : compiler::TNode<Object> tmp35;
363 : compiler::TNode<Object> tmp36;
364 : compiler::TNode<JSReceiver> tmp37;
365 : ca_.Bind(&block9, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37);
366 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 35);
367 : ca_.Goto(&block2, tmp32, tmp33, tmp34, tmp35);
368 : }
369 :
370 56 : if (block10.is_used()) {
371 : compiler::TNode<Context> tmp38;
372 : compiler::TNode<Object> tmp39;
373 : compiler::TNode<Object> tmp40;
374 : compiler::TNode<Object> tmp41;
375 : compiler::TNode<Object> tmp42;
376 : compiler::TNode<JSReceiver> tmp43;
377 : ca_.Bind(&block10, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43);
378 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 39);
379 : compiler::TNode<JSReceiver> tmp44;
380 : USE(tmp44);
381 56 : compiler::CodeAssemblerLabel label0(&ca_);
382 112 : tmp44 = BaseBuiltinsFromDSLAssembler(state_).Cast10JSReceiver(compiler::TNode<Context>{tmp38}, compiler::TNode<Object>{tmp41}, &label0);
383 : ca_.Goto(&block11, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp41, tmp44);
384 56 : if (label0.is_used()) {
385 56 : ca_.Bind(&label0);
386 : ca_.Goto(&block12, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp41);
387 : }
388 : }
389 :
390 56 : if (block12.is_used()) {
391 : compiler::TNode<Context> tmp45;
392 : compiler::TNode<Object> tmp46;
393 : compiler::TNode<Object> tmp47;
394 : compiler::TNode<Object> tmp48;
395 : compiler::TNode<Object> tmp49;
396 : compiler::TNode<JSReceiver> tmp50;
397 : compiler::TNode<Object> tmp51;
398 : ca_.Bind(&block12, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51);
399 : ca_.Goto(&block4, tmp45, tmp46, tmp47, tmp48);
400 : }
401 :
402 56 : if (block11.is_used()) {
403 : compiler::TNode<Context> tmp52;
404 : compiler::TNode<Object> tmp53;
405 : compiler::TNode<Object> tmp54;
406 : compiler::TNode<Object> tmp55;
407 : compiler::TNode<Object> tmp56;
408 : compiler::TNode<JSReceiver> tmp57;
409 : compiler::TNode<Object> tmp58;
410 : compiler::TNode<JSReceiver> tmp59;
411 : ca_.Bind(&block11, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59);
412 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 40);
413 : compiler::TNode<BoolT> tmp60;
414 : USE(tmp60);
415 112 : tmp60 = ca_.UncheckedCast<BoolT>(ProxyBuiltinsFromDSLAssembler(state_).IsRevokedProxy(compiler::TNode<Context>{tmp52}, compiler::TNode<JSReceiver>{tmp59}));
416 56 : ca_.Branch(tmp60, &block13, &block14, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp59);
417 : }
418 :
419 56 : if (block13.is_used()) {
420 : compiler::TNode<Context> tmp61;
421 : compiler::TNode<Object> tmp62;
422 : compiler::TNode<Object> tmp63;
423 : compiler::TNode<Object> tmp64;
424 : compiler::TNode<Object> tmp65;
425 : compiler::TNode<JSReceiver> tmp66;
426 : compiler::TNode<JSReceiver> tmp67;
427 : ca_.Bind(&block13, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67);
428 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 41);
429 : ca_.Goto(&block2, tmp61, tmp62, tmp63, tmp64);
430 : }
431 :
432 56 : if (block14.is_used()) {
433 : compiler::TNode<Context> tmp68;
434 : compiler::TNode<Object> tmp69;
435 : compiler::TNode<Object> tmp70;
436 : compiler::TNode<Object> tmp71;
437 : compiler::TNode<Object> tmp72;
438 : compiler::TNode<JSReceiver> tmp73;
439 : compiler::TNode<JSReceiver> tmp74;
440 : ca_.Bind(&block14, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
441 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 54);
442 : compiler::TNode<JSProxy> tmp75;
443 : USE(tmp75);
444 112 : tmp75 = ca_.UncheckedCast<JSProxy>(ProxyBuiltinsFromDSLAssembler(state_).AllocateProxy(compiler::TNode<Context>{tmp68}, compiler::TNode<JSReceiver>{tmp73}, compiler::TNode<JSReceiver>{tmp74}));
445 112 : CodeStubAssembler(state_).Return(tmp75);
446 : }
447 :
448 56 : if (block4.is_used()) {
449 : compiler::TNode<Context> tmp76;
450 : compiler::TNode<Object> tmp77;
451 : compiler::TNode<Object> tmp78;
452 : compiler::TNode<Object> tmp79;
453 : ca_.Bind(&block4, &tmp76, &tmp77, &tmp78, &tmp79);
454 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 57);
455 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp76}, MessageTemplate::kProxyNonObject);
456 : }
457 :
458 56 : if (block2.is_used()) {
459 : compiler::TNode<Context> tmp80;
460 : compiler::TNode<Object> tmp81;
461 : compiler::TNode<Object> tmp82;
462 : compiler::TNode<Object> tmp83;
463 : ca_.Bind(&block2, &tmp80, &tmp81, &tmp82, &tmp83);
464 56 : ca_.SetSourcePosition("../../src/builtins/proxy-constructor.tq", 60);
465 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp80}, MessageTemplate::kProxyHandlerOrTargetRevoked);
466 : }
467 56 : }
468 :
469 56 : compiler::TNode<JSFunction> ProxyBuiltinsFromDSLAssembler::AllocateProxyRevokeFunction(compiler::TNode<Context> p_context, compiler::TNode<JSProxy> p_proxy) {
470 56 : compiler::CodeAssemblerParameterizedLabel<Context, JSProxy> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
471 : compiler::CodeAssemblerParameterizedLabel<Context, JSProxy, JSFunction> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
472 : compiler::CodeAssemblerParameterizedLabel<Context, JSProxy, JSFunction> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
473 : ca_.Goto(&block0, p_context, p_proxy);
474 :
475 56 : if (block0.is_used()) {
476 : compiler::TNode<Context> tmp0;
477 : compiler::TNode<JSProxy> tmp1;
478 : ca_.Bind(&block0, &tmp0, &tmp1);
479 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 13);
480 : compiler::TNode<JSFunction> tmp2;
481 : USE(tmp2);
482 168 : tmp2 = ca_.UncheckedCast<JSFunction>(ProxiesCodeStubAssembler(state_).AllocateProxyRevokeFunction(compiler::TNode<Object>{tmp1}, compiler::TNode<Object>{tmp0}));
483 : ca_.Goto(&block1, tmp0, tmp1, tmp2);
484 : }
485 :
486 56 : if (block1.is_used()) {
487 : compiler::TNode<Context> tmp3;
488 : compiler::TNode<JSProxy> tmp4;
489 : compiler::TNode<JSFunction> tmp5;
490 : ca_.Bind(&block1, &tmp3, &tmp4, &tmp5);
491 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 11);
492 : ca_.Goto(&block2, tmp3, tmp4, tmp5);
493 : }
494 :
495 : compiler::TNode<Context> tmp6;
496 : compiler::TNode<JSProxy> tmp7;
497 : compiler::TNode<JSFunction> tmp8;
498 : ca_.Bind(&block2, &tmp6, &tmp7, &tmp8);
499 112 : return compiler::TNode<JSFunction>{tmp8};
500 : }
501 :
502 224 : TF_BUILTIN(ProxyRevocable, CodeStubAssembler) {
503 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
504 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
505 : USE(parameter0);
506 : compiler::TNode<Object> parameter1 = UncheckedCast<Object>(Parameter(Descriptor::kReceiver));
507 : USE(parameter1);
508 : compiler::TNode<Object> parameter2 = UncheckedCast<Object>(Parameter(Descriptor::kTarget));
509 : USE(parameter2);
510 : compiler::TNode<Object> parameter3 = UncheckedCast<Object>(Parameter(Descriptor::kHandler));
511 : USE(parameter3);
512 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
513 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
514 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, JSReceiver> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
515 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
516 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
517 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver, Object> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
518 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver, Object, JSReceiver> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
519 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver, JSReceiver> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
520 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSReceiver, JSReceiver> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
521 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kDeferred);
522 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block2(&ca_, compiler::CodeAssemblerLabel::kDeferred);
523 : ca_.Goto(&block0, parameter0, parameter1, parameter2, parameter3);
524 :
525 56 : if (block0.is_used()) {
526 : compiler::TNode<Context> tmp0;
527 : compiler::TNode<Object> tmp1;
528 : compiler::TNode<Object> tmp2;
529 : compiler::TNode<Object> tmp3;
530 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
531 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 24);
532 : compiler::TNode<JSReceiver> tmp4;
533 : USE(tmp4);
534 56 : compiler::CodeAssemblerLabel label0(&ca_);
535 112 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast10JSReceiver(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}, &label0);
536 : ca_.Goto(&block5, tmp0, tmp1, tmp2, tmp3, tmp2, tmp4);
537 56 : if (label0.is_used()) {
538 56 : ca_.Bind(&label0);
539 : ca_.Goto(&block6, tmp0, tmp1, tmp2, tmp3, tmp2);
540 : }
541 : }
542 :
543 56 : if (block6.is_used()) {
544 : compiler::TNode<Context> tmp5;
545 : compiler::TNode<Object> tmp6;
546 : compiler::TNode<Object> tmp7;
547 : compiler::TNode<Object> tmp8;
548 : compiler::TNode<Object> tmp9;
549 : ca_.Bind(&block6, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
550 : ca_.Goto(&block4, tmp5, tmp6, tmp7, tmp8);
551 : }
552 :
553 56 : if (block5.is_used()) {
554 : compiler::TNode<Context> tmp10;
555 : compiler::TNode<Object> tmp11;
556 : compiler::TNode<Object> tmp12;
557 : compiler::TNode<Object> tmp13;
558 : compiler::TNode<Object> tmp14;
559 : compiler::TNode<JSReceiver> tmp15;
560 : ca_.Bind(&block5, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
561 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 25);
562 : compiler::TNode<BoolT> tmp16;
563 : USE(tmp16);
564 112 : tmp16 = ca_.UncheckedCast<BoolT>(ProxyBuiltinsFromDSLAssembler(state_).IsRevokedProxy(compiler::TNode<Context>{tmp10}, compiler::TNode<JSReceiver>{tmp15}));
565 56 : ca_.Branch(tmp16, &block7, &block8, tmp10, tmp11, tmp12, tmp13, tmp15);
566 : }
567 :
568 56 : if (block7.is_used()) {
569 : compiler::TNode<Context> tmp17;
570 : compiler::TNode<Object> tmp18;
571 : compiler::TNode<Object> tmp19;
572 : compiler::TNode<Object> tmp20;
573 : compiler::TNode<JSReceiver> tmp21;
574 : ca_.Bind(&block7, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
575 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 26);
576 : ca_.Goto(&block2, tmp17, tmp18, tmp19, tmp20);
577 : }
578 :
579 56 : if (block8.is_used()) {
580 : compiler::TNode<Context> tmp22;
581 : compiler::TNode<Object> tmp23;
582 : compiler::TNode<Object> tmp24;
583 : compiler::TNode<Object> tmp25;
584 : compiler::TNode<JSReceiver> tmp26;
585 : ca_.Bind(&block8, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
586 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 30);
587 : compiler::TNode<JSReceiver> tmp27;
588 : USE(tmp27);
589 56 : compiler::CodeAssemblerLabel label0(&ca_);
590 112 : tmp27 = BaseBuiltinsFromDSLAssembler(state_).Cast10JSReceiver(compiler::TNode<Context>{tmp22}, compiler::TNode<Object>{tmp25}, &label0);
591 : ca_.Goto(&block9, tmp22, tmp23, tmp24, tmp25, tmp26, tmp25, tmp27);
592 56 : if (label0.is_used()) {
593 56 : ca_.Bind(&label0);
594 : ca_.Goto(&block10, tmp22, tmp23, tmp24, tmp25, tmp26, tmp25);
595 : }
596 : }
597 :
598 56 : if (block10.is_used()) {
599 : compiler::TNode<Context> tmp28;
600 : compiler::TNode<Object> tmp29;
601 : compiler::TNode<Object> tmp30;
602 : compiler::TNode<Object> tmp31;
603 : compiler::TNode<JSReceiver> tmp32;
604 : compiler::TNode<Object> tmp33;
605 : ca_.Bind(&block10, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33);
606 : ca_.Goto(&block4, tmp28, tmp29, tmp30, tmp31);
607 : }
608 :
609 56 : if (block9.is_used()) {
610 : compiler::TNode<Context> tmp34;
611 : compiler::TNode<Object> tmp35;
612 : compiler::TNode<Object> tmp36;
613 : compiler::TNode<Object> tmp37;
614 : compiler::TNode<JSReceiver> tmp38;
615 : compiler::TNode<Object> tmp39;
616 : compiler::TNode<JSReceiver> tmp40;
617 : ca_.Bind(&block9, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40);
618 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 31);
619 : compiler::TNode<BoolT> tmp41;
620 : USE(tmp41);
621 112 : tmp41 = ca_.UncheckedCast<BoolT>(ProxyBuiltinsFromDSLAssembler(state_).IsRevokedProxy(compiler::TNode<Context>{tmp34}, compiler::TNode<JSReceiver>{tmp40}));
622 56 : ca_.Branch(tmp41, &block11, &block12, tmp34, tmp35, tmp36, tmp37, tmp38, tmp40);
623 : }
624 :
625 56 : if (block11.is_used()) {
626 : compiler::TNode<Context> tmp42;
627 : compiler::TNode<Object> tmp43;
628 : compiler::TNode<Object> tmp44;
629 : compiler::TNode<Object> tmp45;
630 : compiler::TNode<JSReceiver> tmp46;
631 : compiler::TNode<JSReceiver> tmp47;
632 : ca_.Bind(&block11, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47);
633 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 32);
634 : ca_.Goto(&block2, tmp42, tmp43, tmp44, tmp45);
635 : }
636 :
637 56 : if (block12.is_used()) {
638 : compiler::TNode<Context> tmp48;
639 : compiler::TNode<Object> tmp49;
640 : compiler::TNode<Object> tmp50;
641 : compiler::TNode<Object> tmp51;
642 : compiler::TNode<JSReceiver> tmp52;
643 : compiler::TNode<JSReceiver> tmp53;
644 : ca_.Bind(&block12, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
645 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 36);
646 : compiler::TNode<JSProxy> tmp54;
647 : USE(tmp54);
648 112 : tmp54 = ca_.UncheckedCast<JSProxy>(ProxyBuiltinsFromDSLAssembler(state_).AllocateProxy(compiler::TNode<Context>{tmp48}, compiler::TNode<JSReceiver>{tmp52}, compiler::TNode<JSReceiver>{tmp53}));
649 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 42);
650 : compiler::TNode<JSFunction> tmp55;
651 : USE(tmp55);
652 112 : tmp55 = ca_.UncheckedCast<JSFunction>(ProxyBuiltinsFromDSLAssembler(state_).AllocateProxyRevokeFunction(compiler::TNode<Context>{tmp48}, compiler::TNode<JSProxy>{tmp54}));
653 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 48);
654 : compiler::TNode<JSProxyRevocableResult> tmp56;
655 : USE(tmp56);
656 112 : tmp56 = ca_.UncheckedCast<JSProxyRevocableResult>(BaseBuiltinsFromDSLAssembler(state_).NewJSProxyRevocableResult(compiler::TNode<Context>{tmp48}, compiler::TNode<JSProxy>{tmp54}, compiler::TNode<JSFunction>{tmp55}));
657 112 : CodeStubAssembler(state_).Return(tmp56);
658 : }
659 :
660 56 : if (block4.is_used()) {
661 : compiler::TNode<Context> tmp57;
662 : compiler::TNode<Object> tmp58;
663 : compiler::TNode<Object> tmp59;
664 : compiler::TNode<Object> tmp60;
665 : ca_.Bind(&block4, &tmp57, &tmp58, &tmp59, &tmp60);
666 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 51);
667 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp57}, MessageTemplate::kProxyNonObject, "Proxy.revocable");
668 : }
669 :
670 56 : if (block2.is_used()) {
671 : compiler::TNode<Context> tmp61;
672 : compiler::TNode<Object> tmp62;
673 : compiler::TNode<Object> tmp63;
674 : compiler::TNode<Object> tmp64;
675 : ca_.Bind(&block2, &tmp61, &tmp62, &tmp63, &tmp64);
676 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revocable.tq", 54);
677 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp61}, MessageTemplate::kProxyHandlerOrTargetRevoked, "Proxy.revocable");
678 : }
679 56 : }
680 :
681 224 : TF_BUILTIN(ProxyRevoke, CodeStubAssembler) {
682 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
683 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
684 : USE(parameter0);
685 : compiler::TNode<Object> parameter1 = UncheckedCast<Object>(Parameter(Descriptor::kReceiver));
686 : USE(parameter1);
687 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
688 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
689 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
690 : ca_.Goto(&block0, parameter0, parameter1);
691 :
692 56 : if (block0.is_used()) {
693 : compiler::TNode<Context> tmp0;
694 : compiler::TNode<Object> tmp1;
695 : ca_.Bind(&block0, &tmp0, &tmp1);
696 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 15);
697 : compiler::TNode<IntPtrT> tmp2;
698 : USE(tmp2);
699 112 : tmp2 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr13ATContextSlot23ATconstexpr_ContextSlot(Context::MIN_CONTEXT_SLOTS));
700 : compiler::TNode<Object> tmp3;
701 : USE(tmp3);
702 168 : tmp3 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadContextElement(compiler::TNode<Context>{tmp0}, compiler::TNode<IntPtrT>{tmp2}));
703 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 18);
704 : compiler::TNode<Oddball> tmp4;
705 : USE(tmp4);
706 112 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Null();
707 : compiler::TNode<BoolT> tmp5;
708 : USE(tmp5);
709 112 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp3}, compiler::TNode<HeapObject>{tmp4}));
710 56 : ca_.Branch(tmp5, &block1, &block2, tmp0, tmp1, tmp3);
711 : }
712 :
713 56 : if (block1.is_used()) {
714 : compiler::TNode<Context> tmp6;
715 : compiler::TNode<Object> tmp7;
716 : compiler::TNode<Object> tmp8;
717 : ca_.Bind(&block1, &tmp6, &tmp7, &tmp8);
718 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 19);
719 : compiler::TNode<Oddball> tmp9;
720 : USE(tmp9);
721 112 : tmp9 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
722 112 : CodeStubAssembler(state_).Return(tmp9);
723 : }
724 :
725 56 : if (block2.is_used()) {
726 : compiler::TNode<Context> tmp10;
727 : compiler::TNode<Object> tmp11;
728 : compiler::TNode<Object> tmp12;
729 : ca_.Bind(&block2, &tmp10, &tmp11, &tmp12);
730 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 23);
731 : compiler::TNode<Oddball> tmp13;
732 : USE(tmp13);
733 112 : tmp13 = BaseBuiltinsFromDSLAssembler(state_).Null();
734 : compiler::TNode<IntPtrT> tmp14;
735 : USE(tmp14);
736 112 : tmp14 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr13ATContextSlot23ATconstexpr_ContextSlot(Context::MIN_CONTEXT_SLOTS));
737 168 : CodeStubAssembler(state_).StoreContextElement(compiler::TNode<Context>{tmp10}, compiler::TNode<IntPtrT>{tmp14}, compiler::TNode<Object>{tmp13});
738 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 26);
739 : compiler::TNode<JSProxy> tmp15;
740 : USE(tmp15);
741 112 : tmp15 = ca_.UncheckedCast<JSProxy>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast7JSProxy(compiler::TNode<Context>{tmp10}, compiler::TNode<Object>{tmp12}));
742 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 29);
743 56 : compiler::TNode<IntPtrT> tmp16 = ca_.IntPtrConstant(JSProxy::kTargetOffset);
744 : USE(tmp16);
745 : compiler::TNode<Oddball> tmp17;
746 : USE(tmp17);
747 112 : tmp17 = BaseBuiltinsFromDSLAssembler(state_).Null();
748 112 : CodeStubAssembler(state_).StoreReference(CodeStubAssembler::Reference{tmp15, tmp16}, tmp17);
749 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 32);
750 56 : compiler::TNode<IntPtrT> tmp18 = ca_.IntPtrConstant(JSProxy::kHandlerOffset);
751 : USE(tmp18);
752 : compiler::TNode<Oddball> tmp19;
753 : USE(tmp19);
754 112 : tmp19 = BaseBuiltinsFromDSLAssembler(state_).Null();
755 112 : CodeStubAssembler(state_).StoreReference(CodeStubAssembler::Reference{tmp15, tmp18}, tmp19);
756 56 : ca_.SetSourcePosition("../../src/builtins/proxy-revoke.tq", 35);
757 : compiler::TNode<Oddball> tmp20;
758 : USE(tmp20);
759 112 : tmp20 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
760 112 : CodeStubAssembler(state_).Return(tmp20);
761 : }
762 56 : }
763 :
764 : } // namespace internal
765 59480 : } // namespace v8
766 :
|