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