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/js-generator.h"
10 : #include "src/objects/js-promise.h"
11 : #include "src/objects/js-regexp-string-iterator.h"
12 : #include "src/objects/module.h"
13 : #include "src/objects/stack-frame-info.h"
14 : #include "src/builtins/builtins-array-gen.h"
15 : #include "src/builtins/builtins-collections-gen.h"
16 : #include "src/builtins/builtins-data-view-gen.h"
17 : #include "src/builtins/builtins-iterator-gen.h"
18 : #include "src/builtins/builtins-proxy-gen.h"
19 : #include "src/builtins/builtins-regexp-gen.h"
20 : #include "src/builtins/builtins-typed-array-gen.h"
21 : #include "src/builtins/builtins-constructor-gen.h"
22 : #include "src/builtins/builtins-typed-array-gen.h"
23 : #include "src/builtins/builtins-typed-array-gen.h"
24 : #include "src/builtins/builtins-typed-array-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-typed-array-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "torque-generated/builtins-base-from-dsl-gen.h"
31 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
32 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
33 : #include "torque-generated/builtins-array-from-dsl-gen.h"
34 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
35 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
36 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
37 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
48 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
49 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
50 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
51 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
52 : #include "torque-generated/builtins-object-from-dsl-gen.h"
53 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
54 : #include "torque-generated/builtins-string-from-dsl-gen.h"
55 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
56 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
57 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
58 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
59 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
60 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
61 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
62 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
63 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
69 : #include "torque-generated/builtins-test-from-dsl-gen.h"
70 :
71 : namespace v8 {
72 : namespace internal {
73 :
74 56 : compiler::TNode<JSObject> ObjectBuiltinsFromDSLAssembler::ObjectFromEntriesFastCase(compiler::TNode<Context> p_context, compiler::TNode<Object> p_iterable, compiler::CodeAssemblerLabel* label_IfSlow) {
75 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
76 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
77 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSArray> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
78 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArrayBase> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
79 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArrayBase, FixedArray> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
80 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
81 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
82 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi, Object, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
83 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi, Object, Object, Object, Object> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
84 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi, Object, Object, Object> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi, Object, Object, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray, FixedArray, Smi, JSObject, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSObject> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 112 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
91 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSObject> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
92 56 : ca_.Goto(&block0, p_context, p_iterable);
93 :
94 56 : if (block0.is_used()) {
95 56 : compiler::TNode<Context> tmp0;
96 56 : compiler::TNode<Object> tmp1;
97 56 : ca_.Bind(&block0, &tmp0, &tmp1);
98 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 9);
99 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 10);
100 56 : compiler::TNode<JSArray> tmp2;
101 56 : USE(tmp2);
102 112 : compiler::CodeAssemblerLabel label0(&ca_);
103 56 : tmp2 = BaseBuiltinsFromDSLAssembler(state_).Cast34ATFastJSArrayWithNoCustomIteration(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
104 56 : ca_.Goto(&block5, tmp0, tmp1, tmp1, tmp1, tmp2);
105 56 : if (label0.is_used()) {
106 56 : ca_.Bind(&label0);
107 56 : ca_.Goto(&block6, tmp0, tmp1, tmp1, tmp1);
108 : }
109 : }
110 :
111 56 : if (block6.is_used()) {
112 56 : compiler::TNode<Context> tmp3;
113 56 : compiler::TNode<Object> tmp4;
114 56 : compiler::TNode<Object> tmp5;
115 56 : compiler::TNode<Object> tmp6;
116 56 : ca_.Bind(&block6, &tmp3, &tmp4, &tmp5, &tmp6);
117 56 : ca_.Goto(&block4, tmp3, tmp4, tmp5);
118 : }
119 :
120 56 : if (block5.is_used()) {
121 56 : compiler::TNode<Context> tmp7;
122 56 : compiler::TNode<Object> tmp8;
123 56 : compiler::TNode<Object> tmp9;
124 56 : compiler::TNode<Object> tmp10;
125 56 : compiler::TNode<JSArray> tmp11;
126 56 : ca_.Bind(&block5, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
127 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 12);
128 56 : compiler::TNode<FixedArrayBase> tmp12;
129 56 : USE(tmp12);
130 56 : tmp12 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp11}));
131 56 : compiler::TNode<FixedArray> tmp13;
132 56 : USE(tmp13);
133 112 : compiler::CodeAssemblerLabel label0(&ca_);
134 56 : tmp13 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp12}, &label0);
135 56 : ca_.Goto(&block7, tmp7, tmp8, tmp9, tmp11, tmp12, tmp13);
136 56 : if (label0.is_used()) {
137 56 : ca_.Bind(&label0);
138 56 : ca_.Goto(&block8, tmp7, tmp8, tmp9, tmp11, tmp12);
139 : }
140 : }
141 :
142 56 : if (block8.is_used()) {
143 56 : compiler::TNode<Context> tmp14;
144 56 : compiler::TNode<Object> tmp15;
145 56 : compiler::TNode<Object> tmp16;
146 56 : compiler::TNode<JSArray> tmp17;
147 56 : compiler::TNode<FixedArrayBase> tmp18;
148 56 : ca_.Bind(&block8, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18);
149 56 : ca_.Goto(&block1);
150 : }
151 :
152 56 : if (block7.is_used()) {
153 56 : compiler::TNode<Context> tmp19;
154 56 : compiler::TNode<Object> tmp20;
155 56 : compiler::TNode<Object> tmp21;
156 56 : compiler::TNode<JSArray> tmp22;
157 56 : compiler::TNode<FixedArrayBase> tmp23;
158 56 : compiler::TNode<FixedArray> tmp24;
159 56 : ca_.Bind(&block7, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24);
160 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 11);
161 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 13);
162 56 : compiler::TNode<Smi> tmp25;
163 56 : USE(tmp25);
164 56 : tmp25 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp22}));
165 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 14);
166 56 : compiler::TNode<JSObject> tmp26;
167 56 : USE(tmp26);
168 56 : tmp26 = ca_.UncheckedCast<JSObject>(BaseBuiltinsFromDSLAssembler(state_).NewJSObject(compiler::TNode<Context>{tmp19}));
169 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 16);
170 56 : compiler::TNode<Smi> tmp27;
171 56 : USE(tmp27);
172 56 : tmp27 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
173 56 : ca_.Goto(&block11, tmp19, tmp20, tmp21, tmp22, tmp24, tmp25, tmp26, tmp27);
174 : }
175 :
176 56 : if (block11.is_used()) {
177 56 : compiler::TNode<Context> tmp28;
178 56 : compiler::TNode<Object> tmp29;
179 56 : compiler::TNode<Object> tmp30;
180 56 : compiler::TNode<JSArray> tmp31;
181 56 : compiler::TNode<FixedArray> tmp32;
182 56 : compiler::TNode<Smi> tmp33;
183 56 : compiler::TNode<JSObject> tmp34;
184 56 : compiler::TNode<Smi> tmp35;
185 56 : ca_.Bind(&block11, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35);
186 56 : compiler::TNode<BoolT> tmp36;
187 56 : USE(tmp36);
188 56 : tmp36 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp35}, compiler::TNode<Smi>{tmp33}));
189 56 : ca_.Branch(tmp36, &block9, &block10, tmp28, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35);
190 : }
191 :
192 56 : if (block9.is_used()) {
193 56 : compiler::TNode<Context> tmp37;
194 56 : compiler::TNode<Object> tmp38;
195 56 : compiler::TNode<Object> tmp39;
196 56 : compiler::TNode<JSArray> tmp40;
197 56 : compiler::TNode<FixedArray> tmp41;
198 56 : compiler::TNode<Smi> tmp42;
199 56 : compiler::TNode<JSObject> tmp43;
200 56 : compiler::TNode<Smi> tmp44;
201 56 : ca_.Bind(&block9, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
202 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 17);
203 56 : compiler::TNode<Object> tmp45;
204 56 : USE(tmp45);
205 56 : tmp45 = ca_.UncheckedCast<Object>(ArrayBuiltinsFromDSLAssembler(state_).LoadElementOrUndefined(compiler::TNode<FixedArray>{tmp41}, compiler::TNode<Smi>{tmp44}));
206 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 19);
207 56 : compiler::TNode<Object> tmp46;
208 56 : USE(tmp46);
209 56 : compiler::TNode<Object> tmp47;
210 56 : USE(tmp47);
211 112 : compiler::CodeAssemblerLabel label0(&ca_);
212 56 : std::tie(tmp46, tmp47) = CollectionsBuiltinsFromDSLAssembler(state_).LoadKeyValuePairNoSideEffects(compiler::TNode<Context>{tmp37}, compiler::TNode<Object>{tmp45}, &label0).Flatten();
213 56 : ca_.Goto(&block13, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp45, tmp46, tmp47);
214 56 : if (label0.is_used()) {
215 56 : ca_.Bind(&label0);
216 56 : ca_.Goto(&block14, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp45);
217 : }
218 : }
219 :
220 56 : if (block14.is_used()) {
221 56 : compiler::TNode<Context> tmp48;
222 56 : compiler::TNode<Object> tmp49;
223 56 : compiler::TNode<Object> tmp50;
224 56 : compiler::TNode<JSArray> tmp51;
225 56 : compiler::TNode<FixedArray> tmp52;
226 56 : compiler::TNode<Smi> tmp53;
227 56 : compiler::TNode<JSObject> tmp54;
228 56 : compiler::TNode<Smi> tmp55;
229 56 : compiler::TNode<Object> tmp56;
230 56 : compiler::TNode<Object> tmp57;
231 56 : ca_.Bind(&block14, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57);
232 56 : ca_.Goto(&block1);
233 : }
234 :
235 56 : if (block13.is_used()) {
236 56 : compiler::TNode<Context> tmp58;
237 56 : compiler::TNode<Object> tmp59;
238 56 : compiler::TNode<Object> tmp60;
239 56 : compiler::TNode<JSArray> tmp61;
240 56 : compiler::TNode<FixedArray> tmp62;
241 56 : compiler::TNode<Smi> tmp63;
242 56 : compiler::TNode<JSObject> tmp64;
243 56 : compiler::TNode<Smi> tmp65;
244 56 : compiler::TNode<Object> tmp66;
245 56 : compiler::TNode<Object> tmp67;
246 56 : compiler::TNode<Object> tmp68;
247 56 : compiler::TNode<Object> tmp69;
248 56 : ca_.Bind(&block13, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69);
249 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 18);
250 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 24);
251 56 : compiler::TNode<BoolT> tmp70;
252 56 : USE(tmp70);
253 56 : tmp70 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).Is10JSReceiver20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp58}, compiler::TNode<Object>{tmp68}));
254 56 : ca_.Branch(tmp70, &block15, &block16, tmp58, tmp59, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp68, tmp69);
255 : }
256 :
257 56 : if (block15.is_used()) {
258 56 : compiler::TNode<Context> tmp71;
259 56 : compiler::TNode<Object> tmp72;
260 56 : compiler::TNode<Object> tmp73;
261 56 : compiler::TNode<JSArray> tmp74;
262 56 : compiler::TNode<FixedArray> tmp75;
263 56 : compiler::TNode<Smi> tmp76;
264 56 : compiler::TNode<JSObject> tmp77;
265 56 : compiler::TNode<Smi> tmp78;
266 56 : compiler::TNode<Object> tmp79;
267 56 : compiler::TNode<Object> tmp80;
268 56 : compiler::TNode<Object> tmp81;
269 56 : ca_.Bind(&block15, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81);
270 56 : ca_.Goto(&block1);
271 : }
272 :
273 56 : if (block16.is_used()) {
274 56 : compiler::TNode<Context> tmp82;
275 56 : compiler::TNode<Object> tmp83;
276 56 : compiler::TNode<Object> tmp84;
277 56 : compiler::TNode<JSArray> tmp85;
278 56 : compiler::TNode<FixedArray> tmp86;
279 56 : compiler::TNode<Smi> tmp87;
280 56 : compiler::TNode<JSObject> tmp88;
281 56 : compiler::TNode<Smi> tmp89;
282 56 : compiler::TNode<Object> tmp90;
283 56 : compiler::TNode<Object> tmp91;
284 56 : compiler::TNode<Object> tmp92;
285 56 : ca_.Bind(&block16, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
286 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 25);
287 56 : compiler::TNode<Object> tmp93;
288 56 : tmp93 = CodeStubAssembler(state_).CallBuiltin(Builtins::kFastCreateDataProperty, tmp82, tmp88, tmp91, tmp92);
289 56 : USE(tmp93);
290 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 16);
291 56 : ca_.Goto(&block12, tmp82, tmp83, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89);
292 : }
293 :
294 56 : if (block12.is_used()) {
295 56 : compiler::TNode<Context> tmp94;
296 56 : compiler::TNode<Object> tmp95;
297 56 : compiler::TNode<Object> tmp96;
298 56 : compiler::TNode<JSArray> tmp97;
299 56 : compiler::TNode<FixedArray> tmp98;
300 56 : compiler::TNode<Smi> tmp99;
301 56 : compiler::TNode<JSObject> tmp100;
302 56 : compiler::TNode<Smi> tmp101;
303 56 : ca_.Bind(&block12, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101);
304 56 : compiler::TNode<Smi> tmp102;
305 56 : USE(tmp102);
306 56 : tmp102 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
307 56 : compiler::TNode<Smi> tmp103;
308 56 : USE(tmp103);
309 56 : tmp103 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp101}, compiler::TNode<Smi>{tmp102}));
310 56 : ca_.Goto(&block11, tmp94, tmp95, tmp96, tmp97, tmp98, tmp99, tmp100, tmp103);
311 : }
312 :
313 56 : if (block10.is_used()) {
314 56 : compiler::TNode<Context> tmp104;
315 56 : compiler::TNode<Object> tmp105;
316 56 : compiler::TNode<Object> tmp106;
317 56 : compiler::TNode<JSArray> tmp107;
318 56 : compiler::TNode<FixedArray> tmp108;
319 56 : compiler::TNode<Smi> tmp109;
320 56 : compiler::TNode<JSObject> tmp110;
321 56 : compiler::TNode<Smi> tmp111;
322 56 : ca_.Bind(&block10, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111);
323 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 27);
324 56 : ca_.Goto(&block2, tmp104, tmp105, tmp110);
325 : }
326 :
327 56 : if (block4.is_used()) {
328 56 : compiler::TNode<Context> tmp112;
329 56 : compiler::TNode<Object> tmp113;
330 56 : compiler::TNode<Object> tmp114;
331 56 : ca_.Bind(&block4, &tmp112, &tmp113, &tmp114);
332 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 29);
333 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 30);
334 56 : ca_.Goto(&block1);
335 : }
336 :
337 56 : if (block2.is_used()) {
338 56 : compiler::TNode<Context> tmp115;
339 56 : compiler::TNode<Object> tmp116;
340 56 : compiler::TNode<JSObject> tmp117;
341 56 : ca_.Bind(&block2, &tmp115, &tmp116, &tmp117);
342 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 7);
343 56 : ca_.Goto(&block17, tmp115, tmp116, tmp117);
344 : }
345 :
346 56 : if (block1.is_used()) {
347 56 : ca_.Bind(&block1);
348 56 : ca_.Goto(label_IfSlow);
349 : }
350 :
351 56 : compiler::TNode<Context> tmp118;
352 56 : compiler::TNode<Object> tmp119;
353 56 : compiler::TNode<JSObject> tmp120;
354 56 : ca_.Bind(&block17, &tmp118, &tmp119, &tmp120);
355 112 : return compiler::TNode<JSObject>{tmp120};
356 : }
357 :
358 336 : TF_BUILTIN(ObjectFromEntries, CodeStubAssembler) {
359 112 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
360 56 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
361 56 : USE(parameter0);
362 56 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
363 56 : CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
364 56 : TNode<Object> parameter1 = arguments_impl.GetReceiver();
365 56 : auto arguments = &arguments_impl;
366 56 : USE(arguments);
367 56 : USE(parameter1);
368 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
369 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
370 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
371 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
372 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSObject> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
373 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
374 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Object> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
375 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Object, Map> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
376 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
377 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
378 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
379 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object> block18(&ca_, compiler::CodeAssemblerLabel::kDeferred);
380 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
381 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, JSReceiver, Object, Map, Object> block23(&ca_, compiler::CodeAssemblerLabel::kDeferred);
382 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, JSReceiver, Object, Map> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
383 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, JSReceiver, Object, Map, Object> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
384 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
385 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
386 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object, Object, Map, Object> block24(&ca_, compiler::CodeAssemblerLabel::kDeferred);
387 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object, Object, Object, Object> block25(&ca_, compiler::CodeAssemblerLabel::kDeferred);
388 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object, Object, Object, Object, JSObject, Object, Object, Object> block26(&ca_, compiler::CodeAssemblerLabel::kDeferred);
389 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
390 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSObject, Map, JSReceiver, Object, Object> block14(&ca_, compiler::CodeAssemblerLabel::kDeferred);
391 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block2(&ca_, compiler::CodeAssemblerLabel::kDeferred);
392 56 : ca_.Goto(&block0, parameter0, parameter1);
393 :
394 56 : if (block0.is_used()) {
395 56 : compiler::TNode<Context> tmp0;
396 56 : compiler::TNode<Object> tmp1;
397 56 : ca_.Bind(&block0, &tmp0, &tmp1);
398 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 38);
399 56 : compiler::TNode<IntPtrT> tmp2;
400 56 : USE(tmp2);
401 56 : tmp2 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
402 56 : compiler::TNode<Object> tmp3;
403 56 : USE(tmp3);
404 56 : tmp3 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp2}));
405 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 40);
406 56 : compiler::TNode<BoolT> tmp4;
407 56 : USE(tmp4);
408 56 : tmp4 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsNullOrUndefined(compiler::TNode<Object>{tmp3}));
409 56 : ca_.Branch(tmp4, &block5, &block6, tmp0, tmp1, tmp3);
410 : }
411 :
412 56 : if (block5.is_used()) {
413 56 : compiler::TNode<Context> tmp5;
414 56 : compiler::TNode<Object> tmp6;
415 56 : compiler::TNode<Object> tmp7;
416 56 : ca_.Bind(&block5, &tmp5, &tmp6, &tmp7);
417 56 : ca_.Goto(&block2, tmp5, tmp6, tmp7);
418 : }
419 :
420 56 : if (block6.is_used()) {
421 56 : compiler::TNode<Context> tmp8;
422 56 : compiler::TNode<Object> tmp9;
423 56 : compiler::TNode<Object> tmp10;
424 56 : ca_.Bind(&block6, &tmp8, &tmp9, &tmp10);
425 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 41);
426 56 : compiler::TNode<JSObject> tmp11;
427 56 : USE(tmp11);
428 112 : compiler::CodeAssemblerLabel label0(&ca_);
429 56 : tmp11 = ObjectBuiltinsFromDSLAssembler(state_).ObjectFromEntriesFastCase(compiler::TNode<Context>{tmp8}, compiler::TNode<Object>{tmp10}, &label0);
430 56 : ca_.Goto(&block7, tmp8, tmp9, tmp10, tmp10, tmp11);
431 56 : if (label0.is_used()) {
432 56 : ca_.Bind(&label0);
433 56 : ca_.Goto(&block8, tmp8, tmp9, tmp10, tmp10);
434 : }
435 : }
436 :
437 56 : if (block8.is_used()) {
438 56 : compiler::TNode<Context> tmp12;
439 56 : compiler::TNode<Object> tmp13;
440 56 : compiler::TNode<Object> tmp14;
441 56 : compiler::TNode<Object> tmp15;
442 56 : ca_.Bind(&block8, &tmp12, &tmp13, &tmp14, &tmp15);
443 56 : ca_.Goto(&block4, tmp12, tmp13, tmp14);
444 : }
445 :
446 56 : if (block7.is_used()) {
447 56 : compiler::TNode<Context> tmp16;
448 56 : compiler::TNode<Object> tmp17;
449 56 : compiler::TNode<Object> tmp18;
450 56 : compiler::TNode<Object> tmp19;
451 56 : compiler::TNode<JSObject> tmp20;
452 56 : ca_.Bind(&block7, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
453 56 : arguments->PopAndReturn(tmp20);
454 : }
455 :
456 56 : if (block4.is_used()) {
457 56 : compiler::TNode<Context> tmp21;
458 56 : compiler::TNode<Object> tmp22;
459 56 : compiler::TNode<Object> tmp23;
460 56 : ca_.Bind(&block4, &tmp21, &tmp22, &tmp23);
461 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 44);
462 56 : compiler::TNode<JSObject> tmp24;
463 56 : USE(tmp24);
464 56 : tmp24 = ca_.UncheckedCast<JSObject>(BaseBuiltinsFromDSLAssembler(state_).NewJSObject(compiler::TNode<Context>{tmp21}));
465 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 46);
466 56 : compiler::TNode<Context> tmp25;
467 56 : USE(tmp25);
468 56 : tmp25 = ca_.UncheckedCast<Context>(CodeStubAssembler(state_).LoadNativeContext(compiler::TNode<Context>{tmp21}));
469 56 : compiler::TNode<IntPtrT> tmp26;
470 56 : USE(tmp26);
471 56 : tmp26 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr19ATNativeContextSlot29ATconstexpr_NativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX));
472 56 : compiler::TNode<Object> tmp27;
473 56 : USE(tmp27);
474 56 : tmp27 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadContextElement(compiler::TNode<Context>{tmp25}, compiler::TNode<IntPtrT>{tmp26}));
475 56 : compiler::TNode<Map> tmp28;
476 56 : USE(tmp28);
477 112 : compiler::CodeAssemblerLabel label0(&ca_);
478 56 : tmp28 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATMap(compiler::TNode<Context>{tmp21}, compiler::TNode<Object>{tmp27}, &label0);
479 56 : ca_.Goto(&block11, tmp21, tmp22, tmp23, tmp24, tmp27, tmp28);
480 56 : if (label0.is_used()) {
481 56 : ca_.Bind(&label0);
482 56 : ca_.Goto(&block12, tmp21, tmp22, tmp23, tmp24, tmp27);
483 : }
484 : }
485 :
486 56 : if (block12.is_used()) {
487 56 : compiler::TNode<Context> tmp29;
488 56 : compiler::TNode<Object> tmp30;
489 56 : compiler::TNode<Object> tmp31;
490 56 : compiler::TNode<JSObject> tmp32;
491 56 : compiler::TNode<Object> tmp33;
492 56 : ca_.Bind(&block12, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33);
493 56 : ca_.Goto(&block10, tmp29, tmp30, tmp31, tmp32);
494 : }
495 :
496 56 : if (block11.is_used()) {
497 56 : compiler::TNode<Context> tmp34;
498 56 : compiler::TNode<Object> tmp35;
499 56 : compiler::TNode<Object> tmp36;
500 56 : compiler::TNode<JSObject> tmp37;
501 56 : compiler::TNode<Object> tmp38;
502 56 : compiler::TNode<Map> tmp39;
503 56 : ca_.Bind(&block11, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39);
504 56 : ca_.Goto(&block9, tmp34, tmp35, tmp36, tmp37, tmp39);
505 : }
506 :
507 56 : if (block10.is_used()) {
508 56 : compiler::TNode<Context> tmp40;
509 56 : compiler::TNode<Object> tmp41;
510 56 : compiler::TNode<Object> tmp42;
511 56 : compiler::TNode<JSObject> tmp43;
512 56 : ca_.Bind(&block10, &tmp40, &tmp41, &tmp42, &tmp43);
513 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 47);
514 56 : CodeStubAssembler(state_).Unreachable();
515 : }
516 :
517 56 : if (block9.is_used()) {
518 56 : compiler::TNode<Context> tmp44;
519 56 : compiler::TNode<Object> tmp45;
520 56 : compiler::TNode<Object> tmp46;
521 56 : compiler::TNode<JSObject> tmp47;
522 56 : compiler::TNode<Map> tmp48;
523 56 : ca_.Bind(&block9, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48);
524 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 45);
525 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 48);
526 56 : compiler::TNode<JSReceiver> tmp49;
527 56 : USE(tmp49);
528 56 : compiler::TNode<Object> tmp50;
529 56 : USE(tmp50);
530 56 : std::tie(tmp49, tmp50) = IteratorBuiltinsAssembler(state_).GetIterator(compiler::TNode<Context>{tmp44}, compiler::TNode<Object>{tmp46}).Flatten();
531 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 51);
532 56 : ca_.Goto(&block17, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50);
533 : }
534 :
535 56 : if (block17.is_used()) {
536 56 : compiler::TNode<Context> tmp51;
537 56 : compiler::TNode<Object> tmp52;
538 56 : compiler::TNode<Object> tmp53;
539 56 : compiler::TNode<JSObject> tmp54;
540 56 : compiler::TNode<Map> tmp55;
541 56 : compiler::TNode<JSReceiver> tmp56;
542 56 : compiler::TNode<Object> tmp57;
543 56 : ca_.Bind(&block17, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57);
544 56 : compiler::TNode<BoolT> tmp58;
545 56 : USE(tmp58);
546 112 : compiler::CodeAssemblerExceptionHandlerLabel catch59_label(&ca_, compiler::CodeAssemblerLabel::kDeferred);
547 112 : { compiler::CodeAssemblerScopedExceptionHandler s(&ca_, &catch59_label);
548 56 : tmp58 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(true));
549 : }
550 56 : if (catch59_label.is_used()) {
551 0 : compiler::CodeAssemblerLabel catch59_skip(&ca_);
552 0 : ca_.Goto(&catch59_skip);
553 0 : compiler::TNode<Object> catch59_exception_object;
554 0 : ca_.Bind(&catch59_label, &catch59_exception_object);
555 0 : ca_.Goto(&block18, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, catch59_exception_object);
556 0 : ca_.Bind(&catch59_skip);
557 : }
558 56 : ca_.Branch(tmp58, &block15, &block16, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57);
559 : }
560 :
561 56 : if (block18.is_used()) {
562 0 : compiler::TNode<Context> tmp60;
563 0 : compiler::TNode<Object> tmp61;
564 0 : compiler::TNode<Object> tmp62;
565 0 : compiler::TNode<JSObject> tmp63;
566 0 : compiler::TNode<Map> tmp64;
567 0 : compiler::TNode<JSReceiver> tmp65;
568 0 : compiler::TNode<Object> tmp66;
569 0 : compiler::TNode<Object> tmp67;
570 0 : ca_.Bind(&block18, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67);
571 0 : ca_.Goto(&block14, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67);
572 : }
573 :
574 56 : if (block15.is_used()) {
575 56 : compiler::TNode<Context> tmp68;
576 56 : compiler::TNode<Object> tmp69;
577 56 : compiler::TNode<Object> tmp70;
578 56 : compiler::TNode<JSObject> tmp71;
579 56 : compiler::TNode<Map> tmp72;
580 56 : compiler::TNode<JSReceiver> tmp73;
581 56 : compiler::TNode<Object> tmp74;
582 56 : ca_.Bind(&block15, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
583 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 52);
584 56 : compiler::TNode<Object> tmp75;
585 56 : USE(tmp75);
586 112 : compiler::CodeAssemblerLabel label0(&ca_);
587 112 : compiler::CodeAssemblerExceptionHandlerLabel catch76_label(&ca_, compiler::CodeAssemblerLabel::kDeferred);
588 112 : { compiler::CodeAssemblerScopedExceptionHandler s(&ca_, &catch76_label);
589 56 : tmp75 = IteratorBuiltinsAssembler(state_).IteratorStep(compiler::TNode<Context>{tmp68}, IteratorBuiltinsFromDSLAssembler::IteratorRecord{compiler::TNode<JSReceiver>{tmp73}, compiler::TNode<Object>{tmp74}}, compiler::TNode<Map>{tmp72}, &label0);
590 : }
591 56 : if (catch76_label.is_used()) {
592 112 : compiler::CodeAssemblerLabel catch76_skip(&ca_);
593 56 : ca_.Goto(&catch76_skip);
594 56 : compiler::TNode<Object> catch76_exception_object;
595 56 : ca_.Bind(&catch76_label, &catch76_exception_object);
596 56 : ca_.Goto(&block23, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp73, tmp74, tmp72, catch76_exception_object);
597 56 : ca_.Bind(&catch76_skip);
598 : }
599 56 : ca_.Goto(&block21, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp73, tmp74, tmp72, tmp75);
600 56 : if (label0.is_used()) {
601 56 : ca_.Bind(&label0);
602 56 : ca_.Goto(&block22, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp73, tmp74, tmp72);
603 : }
604 : }
605 :
606 56 : if (block23.is_used()) {
607 56 : compiler::TNode<Context> tmp77;
608 56 : compiler::TNode<Object> tmp78;
609 56 : compiler::TNode<Object> tmp79;
610 56 : compiler::TNode<JSObject> tmp80;
611 56 : compiler::TNode<Map> tmp81;
612 56 : compiler::TNode<JSReceiver> tmp82;
613 56 : compiler::TNode<Object> tmp83;
614 56 : compiler::TNode<JSReceiver> tmp84;
615 56 : compiler::TNode<Object> tmp85;
616 56 : compiler::TNode<Map> tmp86;
617 56 : compiler::TNode<Object> tmp87;
618 56 : ca_.Bind(&block23, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87);
619 56 : ca_.Goto(&block14, tmp77, tmp78, tmp79, tmp80, tmp81, tmp82, tmp83, tmp87);
620 : }
621 :
622 56 : if (block22.is_used()) {
623 56 : compiler::TNode<Context> tmp88;
624 56 : compiler::TNode<Object> tmp89;
625 56 : compiler::TNode<Object> tmp90;
626 56 : compiler::TNode<JSObject> tmp91;
627 56 : compiler::TNode<Map> tmp92;
628 56 : compiler::TNode<JSReceiver> tmp93;
629 56 : compiler::TNode<Object> tmp94;
630 56 : compiler::TNode<JSReceiver> tmp95;
631 56 : compiler::TNode<Object> tmp96;
632 56 : compiler::TNode<Map> tmp97;
633 56 : ca_.Bind(&block22, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97);
634 56 : ca_.Goto(&block20, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94);
635 : }
636 :
637 56 : if (block21.is_used()) {
638 56 : compiler::TNode<Context> tmp98;
639 56 : compiler::TNode<Object> tmp99;
640 56 : compiler::TNode<Object> tmp100;
641 56 : compiler::TNode<JSObject> tmp101;
642 56 : compiler::TNode<Map> tmp102;
643 56 : compiler::TNode<JSReceiver> tmp103;
644 56 : compiler::TNode<Object> tmp104;
645 56 : compiler::TNode<JSReceiver> tmp105;
646 56 : compiler::TNode<Object> tmp106;
647 56 : compiler::TNode<Map> tmp107;
648 56 : compiler::TNode<Object> tmp108;
649 56 : ca_.Bind(&block21, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108);
650 56 : ca_.Goto(&block19, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp108);
651 : }
652 :
653 56 : if (block20.is_used()) {
654 56 : compiler::TNode<Context> tmp109;
655 56 : compiler::TNode<Object> tmp110;
656 56 : compiler::TNode<Object> tmp111;
657 56 : compiler::TNode<JSObject> tmp112;
658 56 : compiler::TNode<Map> tmp113;
659 56 : compiler::TNode<JSReceiver> tmp114;
660 56 : compiler::TNode<Object> tmp115;
661 56 : ca_.Bind(&block20, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115);
662 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 53);
663 56 : arguments->PopAndReturn(tmp112);
664 : }
665 :
666 56 : if (block19.is_used()) {
667 56 : compiler::TNode<Context> tmp116;
668 56 : compiler::TNode<Object> tmp117;
669 56 : compiler::TNode<Object> tmp118;
670 56 : compiler::TNode<JSObject> tmp119;
671 56 : compiler::TNode<Map> tmp120;
672 56 : compiler::TNode<JSReceiver> tmp121;
673 56 : compiler::TNode<Object> tmp122;
674 56 : compiler::TNode<Object> tmp123;
675 56 : ca_.Bind(&block19, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123);
676 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 52);
677 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 55);
678 56 : compiler::TNode<Object> tmp124;
679 56 : USE(tmp124);
680 112 : compiler::CodeAssemblerExceptionHandlerLabel catch125_label(&ca_, compiler::CodeAssemblerLabel::kDeferred);
681 112 : { compiler::CodeAssemblerScopedExceptionHandler s(&ca_, &catch125_label);
682 56 : tmp124 = ca_.UncheckedCast<Object>(IteratorBuiltinsAssembler(state_).IteratorValue(compiler::TNode<Context>{tmp116}, compiler::TNode<Object>{tmp123}, compiler::TNode<Map>{tmp120}));
683 : }
684 56 : if (catch125_label.is_used()) {
685 112 : compiler::CodeAssemblerLabel catch125_skip(&ca_);
686 56 : ca_.Goto(&catch125_skip);
687 56 : compiler::TNode<Object> catch125_exception_object;
688 56 : ca_.Bind(&catch125_label, &catch125_exception_object);
689 56 : ca_.Goto(&block24, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp123, tmp120, catch125_exception_object);
690 56 : ca_.Bind(&catch125_skip);
691 : }
692 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 54);
693 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 57);
694 56 : compiler::TNode<Object> tmp126;
695 56 : USE(tmp126);
696 56 : compiler::TNode<Object> tmp127;
697 56 : USE(tmp127);
698 112 : compiler::CodeAssemblerExceptionHandlerLabel catch128_label(&ca_, compiler::CodeAssemblerLabel::kDeferred);
699 112 : { compiler::CodeAssemblerScopedExceptionHandler s(&ca_, &catch128_label);
700 56 : std::tie(tmp126, tmp127) = CollectionsBuiltinsFromDSLAssembler(state_).LoadKeyValuePair(compiler::TNode<Context>{tmp116}, compiler::TNode<Object>{tmp124}).Flatten();
701 : }
702 56 : if (catch128_label.is_used()) {
703 112 : compiler::CodeAssemblerLabel catch128_skip(&ca_);
704 56 : ca_.Goto(&catch128_skip);
705 56 : compiler::TNode<Object> catch128_exception_object;
706 56 : ca_.Bind(&catch128_label, &catch128_exception_object);
707 56 : ca_.Goto(&block25, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124, tmp124, catch128_exception_object);
708 56 : ca_.Bind(&catch128_skip);
709 : }
710 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 56);
711 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 58);
712 56 : compiler::TNode<Object> tmp129;
713 112 : compiler::CodeAssemblerExceptionHandlerLabel catch130_label(&ca_, compiler::CodeAssemblerLabel::kDeferred);
714 112 : { compiler::CodeAssemblerScopedExceptionHandler s(&ca_, &catch130_label);
715 56 : tmp129 = CodeStubAssembler(state_).CallBuiltin(Builtins::kFastCreateDataProperty, tmp116, tmp119, tmp126, tmp127);
716 56 : USE(tmp129);
717 : }
718 56 : if (catch130_label.is_used()) {
719 112 : compiler::CodeAssemblerLabel catch130_skip(&ca_);
720 56 : ca_.Goto(&catch130_skip);
721 56 : compiler::TNode<Object> catch130_exception_object;
722 56 : ca_.Bind(&catch130_label, &catch130_exception_object);
723 56 : ca_.Goto(&block26, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124, tmp126, tmp127, tmp119, tmp126, tmp127, catch130_exception_object);
724 56 : ca_.Bind(&catch130_skip);
725 : }
726 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 51);
727 56 : ca_.Goto(&block17, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122);
728 : }
729 :
730 56 : if (block24.is_used()) {
731 56 : compiler::TNode<Context> tmp131;
732 56 : compiler::TNode<Object> tmp132;
733 56 : compiler::TNode<Object> tmp133;
734 56 : compiler::TNode<JSObject> tmp134;
735 56 : compiler::TNode<Map> tmp135;
736 56 : compiler::TNode<JSReceiver> tmp136;
737 56 : compiler::TNode<Object> tmp137;
738 56 : compiler::TNode<Object> tmp138;
739 56 : compiler::TNode<Object> tmp139;
740 56 : compiler::TNode<Map> tmp140;
741 56 : compiler::TNode<Object> tmp141;
742 56 : ca_.Bind(&block24, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141);
743 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 55);
744 56 : ca_.Goto(&block14, tmp131, tmp132, tmp133, tmp134, tmp135, tmp136, tmp137, tmp141);
745 : }
746 :
747 56 : if (block25.is_used()) {
748 56 : compiler::TNode<Context> tmp142;
749 56 : compiler::TNode<Object> tmp143;
750 56 : compiler::TNode<Object> tmp144;
751 56 : compiler::TNode<JSObject> tmp145;
752 56 : compiler::TNode<Map> tmp146;
753 56 : compiler::TNode<JSReceiver> tmp147;
754 56 : compiler::TNode<Object> tmp148;
755 56 : compiler::TNode<Object> tmp149;
756 56 : compiler::TNode<Object> tmp150;
757 56 : compiler::TNode<Object> tmp151;
758 56 : compiler::TNode<Object> tmp152;
759 56 : ca_.Bind(&block25, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152);
760 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 57);
761 56 : ca_.Goto(&block14, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp152);
762 : }
763 :
764 56 : if (block26.is_used()) {
765 56 : compiler::TNode<Context> tmp153;
766 56 : compiler::TNode<Object> tmp154;
767 56 : compiler::TNode<Object> tmp155;
768 56 : compiler::TNode<JSObject> tmp156;
769 56 : compiler::TNode<Map> tmp157;
770 56 : compiler::TNode<JSReceiver> tmp158;
771 56 : compiler::TNode<Object> tmp159;
772 56 : compiler::TNode<Object> tmp160;
773 56 : compiler::TNode<Object> tmp161;
774 56 : compiler::TNode<Object> tmp162;
775 56 : compiler::TNode<Object> tmp163;
776 56 : compiler::TNode<JSObject> tmp164;
777 56 : compiler::TNode<Object> tmp165;
778 56 : compiler::TNode<Object> tmp166;
779 56 : compiler::TNode<Object> tmp167;
780 56 : ca_.Bind(&block26, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167);
781 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 58);
782 56 : ca_.Goto(&block14, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp167);
783 : }
784 :
785 56 : if (block16.is_used()) {
786 56 : compiler::TNode<Context> tmp168;
787 56 : compiler::TNode<Object> tmp169;
788 56 : compiler::TNode<Object> tmp170;
789 56 : compiler::TNode<JSObject> tmp171;
790 56 : compiler::TNode<Map> tmp172;
791 56 : compiler::TNode<JSReceiver> tmp173;
792 56 : compiler::TNode<Object> tmp174;
793 56 : ca_.Bind(&block16, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174);
794 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 60);
795 56 : arguments->PopAndReturn(tmp171);
796 : }
797 :
798 56 : if (block14.is_used()) {
799 56 : compiler::TNode<Context> tmp175;
800 56 : compiler::TNode<Object> tmp176;
801 56 : compiler::TNode<Object> tmp177;
802 56 : compiler::TNode<JSObject> tmp178;
803 56 : compiler::TNode<Map> tmp179;
804 56 : compiler::TNode<JSReceiver> tmp180;
805 56 : compiler::TNode<Object> tmp181;
806 56 : compiler::TNode<Object> tmp182;
807 56 : ca_.Bind(&block14, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180, &tmp181, &tmp182);
808 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 62);
809 56 : IteratorBuiltinsAssembler(state_).IteratorCloseOnException(compiler::TNode<Context>{tmp175}, IteratorBuiltinsFromDSLAssembler::IteratorRecord{compiler::TNode<JSReceiver>{tmp180}, compiler::TNode<Object>{tmp181}}, compiler::TNode<Object>{tmp182});
810 : }
811 :
812 56 : if (block2.is_used()) {
813 56 : compiler::TNode<Context> tmp183;
814 56 : compiler::TNode<Object> tmp184;
815 56 : compiler::TNode<Object> tmp185;
816 56 : ca_.Bind(&block2, &tmp183, &tmp184, &tmp185);
817 56 : ca_.SetSourcePosition("../../src/builtins/object-fromentries.tq", 66);
818 56 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp183}, MessageTemplate::kNotIterable);
819 : }
820 56 : }
821 :
822 : } // namespace internal
823 87414 : } // namespace v8
824 :
|