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