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