Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/js-generator.h"
10 : #include "src/objects/js-promise.h"
11 : #include "src/objects/js-regexp-string-iterator.h"
12 : #include "src/objects/module.h"
13 : #include "src/objects/stack-frame-info.h"
14 : #include "src/builtins/builtins-array-gen.h"
15 : #include "src/builtins/builtins-collections-gen.h"
16 : #include "src/builtins/builtins-data-view-gen.h"
17 : #include "src/builtins/builtins-iterator-gen.h"
18 : #include "src/builtins/builtins-proxy-gen.h"
19 : #include "src/builtins/builtins-regexp-gen.h"
20 : #include "src/builtins/builtins-typed-array-gen.h"
21 : #include "src/builtins/builtins-constructor-gen.h"
22 : #include "src/builtins/builtins-typed-array-gen.h"
23 : #include "src/builtins/builtins-typed-array-gen.h"
24 : #include "src/builtins/builtins-typed-array-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-typed-array-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "torque-generated/builtins-base-from-dsl-gen.h"
31 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
32 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
33 : #include "torque-generated/builtins-array-from-dsl-gen.h"
34 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
35 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
36 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
37 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
48 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
49 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
50 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
51 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
52 : #include "torque-generated/builtins-object-from-dsl-gen.h"
53 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
54 : #include "torque-generated/builtins-string-from-dsl-gen.h"
55 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
56 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
57 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
58 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
59 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
60 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
61 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
62 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
63 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
69 : #include "torque-generated/builtins-test-from-dsl-gen.h"
70 :
71 : namespace v8 {
72 : namespace internal {
73 :
74 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleSimpleArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout) {
75 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
76 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
77 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
78 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArrayBase> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
79 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArrayBase, FixedArray> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
80 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
81 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
82 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray, Map, JSArray, FixedArrayBase> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
83 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray, Map, JSArray, FixedArrayBase, FixedArray> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
84 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 112 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 56 : ca_.Goto(&block0, p_context, p_args, p_start, p_count);
88 :
89 56 : if (block0.is_used()) {
90 56 : compiler::TNode<Context> tmp0;
91 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp1;
92 56 : compiler::TNode<Smi> tmp2;
93 56 : compiler::TNode<Smi> tmp3;
94 56 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
95 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 11);
96 56 : compiler::TNode<Smi> tmp4;
97 56 : USE(tmp4);
98 56 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(FixedArray::kMaxRegularLength));
99 56 : compiler::TNode<BoolT> tmp5;
100 56 : USE(tmp5);
101 56 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp3}, compiler::TNode<Smi>{tmp4}));
102 56 : ca_.Branch(tmp5, &block3, &block4, tmp0, tmp1, tmp2, tmp3);
103 : }
104 :
105 56 : if (block3.is_used()) {
106 56 : compiler::TNode<Context> tmp6;
107 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp7;
108 56 : compiler::TNode<Smi> tmp8;
109 56 : compiler::TNode<Smi> tmp9;
110 56 : ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9);
111 56 : ca_.Goto(&block1);
112 : }
113 :
114 56 : if (block4.is_used()) {
115 56 : compiler::TNode<Context> tmp10;
116 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp11;
117 56 : compiler::TNode<Smi> tmp12;
118 56 : compiler::TNode<Smi> tmp13;
119 56 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12, &tmp13);
120 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 13);
121 56 : compiler::TNode<Smi> tmp14;
122 56 : USE(tmp14);
123 56 : tmp14 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp12}, compiler::TNode<Smi>{tmp13}));
124 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 15);
125 56 : compiler::TNode<FixedArrayBase> tmp15;
126 56 : USE(tmp15);
127 56 : tmp15 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp11}));
128 56 : compiler::TNode<FixedArray> tmp16;
129 56 : USE(tmp16);
130 112 : compiler::CodeAssemblerLabel label0(&ca_);
131 56 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp15}, &label0);
132 56 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16);
133 56 : if (label0.is_used()) {
134 56 : ca_.Bind(&label0);
135 56 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15);
136 : }
137 : }
138 :
139 56 : if (block6.is_used()) {
140 56 : compiler::TNode<Context> tmp17;
141 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp18;
142 56 : compiler::TNode<Smi> tmp19;
143 56 : compiler::TNode<Smi> tmp20;
144 56 : compiler::TNode<Smi> tmp21;
145 56 : compiler::TNode<FixedArrayBase> tmp22;
146 56 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22);
147 56 : ca_.Goto(&block1);
148 : }
149 :
150 56 : if (block5.is_used()) {
151 56 : compiler::TNode<Context> tmp23;
152 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp24;
153 56 : compiler::TNode<Smi> tmp25;
154 56 : compiler::TNode<Smi> tmp26;
155 56 : compiler::TNode<Smi> tmp27;
156 56 : compiler::TNode<FixedArrayBase> tmp28;
157 56 : compiler::TNode<FixedArray> tmp29;
158 56 : ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
159 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 14);
160 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 16);
161 56 : compiler::TNode<Smi> tmp30;
162 56 : USE(tmp30);
163 56 : tmp30 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp29}));
164 56 : compiler::TNode<BoolT> tmp31;
165 56 : USE(tmp31);
166 56 : tmp31 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp27}, compiler::TNode<Smi>{tmp30}));
167 56 : ca_.Branch(tmp31, &block7, &block8, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29);
168 : }
169 :
170 56 : if (block7.is_used()) {
171 56 : compiler::TNode<Context> tmp32;
172 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp33;
173 56 : compiler::TNode<Smi> tmp34;
174 56 : compiler::TNode<Smi> tmp35;
175 56 : compiler::TNode<Smi> tmp36;
176 56 : compiler::TNode<FixedArray> tmp37;
177 56 : ca_.Bind(&block7, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37);
178 56 : ca_.Goto(&block1);
179 : }
180 :
181 56 : if (block8.is_used()) {
182 56 : compiler::TNode<Context> tmp38;
183 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp39;
184 56 : compiler::TNode<Smi> tmp40;
185 56 : compiler::TNode<Smi> tmp41;
186 56 : compiler::TNode<Smi> tmp42;
187 56 : compiler::TNode<FixedArray> tmp43;
188 56 : ca_.Bind(&block8, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43);
189 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 18);
190 56 : compiler::TNode<Map> tmp44;
191 56 : USE(tmp44);
192 56 : tmp44 = ca_.UncheckedCast<Map>(CodeStubAssembler(state_).LoadJSArrayElementsMap(HOLEY_ELEMENTS, compiler::TNode<Context>{tmp38}));
193 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 20);
194 56 : compiler::TNode<JSArray> tmp45;
195 56 : USE(tmp45);
196 56 : tmp45 = ca_.UncheckedCast<JSArray>(CodeStubAssembler(state_).AllocateJSArray(HOLEY_ELEMENTS, compiler::TNode<Map>{tmp44}, compiler::TNode<Smi>{tmp41}, compiler::TNode<Smi>{tmp41}));
197 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 19);
198 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 22);
199 56 : compiler::TNode<FixedArrayBase> tmp46;
200 56 : USE(tmp46);
201 56 : tmp46 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp45}));
202 56 : compiler::TNode<FixedArray> tmp47;
203 56 : USE(tmp47);
204 112 : compiler::CodeAssemblerLabel label0(&ca_);
205 56 : tmp47 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp46}, &label0);
206 56 : ca_.Goto(&block9, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47);
207 56 : if (label0.is_used()) {
208 56 : ca_.Bind(&label0);
209 56 : ca_.Goto(&block10, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46);
210 : }
211 : }
212 :
213 56 : if (block10.is_used()) {
214 56 : compiler::TNode<Context> tmp48;
215 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp49;
216 56 : compiler::TNode<Smi> tmp50;
217 56 : compiler::TNode<Smi> tmp51;
218 56 : compiler::TNode<Smi> tmp52;
219 56 : compiler::TNode<FixedArray> tmp53;
220 56 : compiler::TNode<Map> tmp54;
221 56 : compiler::TNode<JSArray> tmp55;
222 56 : compiler::TNode<FixedArrayBase> tmp56;
223 56 : ca_.Bind(&block10, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56);
224 56 : ca_.Goto(&block1);
225 : }
226 :
227 56 : if (block9.is_used()) {
228 56 : compiler::TNode<Context> tmp57;
229 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp58;
230 56 : compiler::TNode<Smi> tmp59;
231 56 : compiler::TNode<Smi> tmp60;
232 56 : compiler::TNode<Smi> tmp61;
233 56 : compiler::TNode<FixedArray> tmp62;
234 56 : compiler::TNode<Map> tmp63;
235 56 : compiler::TNode<JSArray> tmp64;
236 56 : compiler::TNode<FixedArrayBase> tmp65;
237 56 : compiler::TNode<FixedArray> tmp66;
238 56 : ca_.Bind(&block9, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66);
239 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 21);
240 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 24);
241 56 : compiler::TNode<IntPtrT> tmp67;
242 56 : USE(tmp67);
243 56 : tmp67 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp59}));
244 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 25);
245 56 : compiler::TNode<IntPtrT> tmp68;
246 56 : USE(tmp68);
247 56 : tmp68 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp60}));
248 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 23);
249 56 : compiler::TNode<IntPtrT> tmp69;
250 56 : USE(tmp69);
251 56 : tmp69 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
252 56 : CodeStubAssembler(state_).CopyElements(PACKED_ELEMENTS, compiler::TNode<FixedArrayBase>{tmp66}, compiler::TNode<IntPtrT>{tmp69}, compiler::TNode<FixedArrayBase>{tmp62}, compiler::TNode<IntPtrT>{tmp67}, compiler::TNode<IntPtrT>{tmp68});
253 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 26);
254 56 : ca_.Goto(&block2, tmp57, tmp58, tmp59, tmp60, tmp64);
255 : }
256 :
257 56 : if (block2.is_used()) {
258 56 : compiler::TNode<Context> tmp70;
259 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp71;
260 56 : compiler::TNode<Smi> tmp72;
261 56 : compiler::TNode<Smi> tmp73;
262 56 : compiler::TNode<JSArray> tmp74;
263 56 : ca_.Bind(&block2, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
264 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 6);
265 56 : ca_.Goto(&block11, tmp70, tmp71, tmp72, tmp73, tmp74);
266 : }
267 :
268 56 : if (block1.is_used()) {
269 56 : ca_.Bind(&block1);
270 56 : ca_.Goto(label_Bailout);
271 : }
272 :
273 56 : compiler::TNode<Context> tmp75;
274 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp76;
275 56 : compiler::TNode<Smi> tmp77;
276 56 : compiler::TNode<Smi> tmp78;
277 56 : compiler::TNode<JSArray> tmp79;
278 56 : ca_.Bind(&block11, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79);
279 112 : return compiler::TNode<JSArray>{tmp79};
280 : }
281 :
282 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleFastAliasedSloppyArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout) {
283 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
284 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
285 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
286 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, FixedArrayBase> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
287 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, FixedArrayBase, SloppyArgumentsElements> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
288 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
289 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, Object, FixedArray> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
290 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
291 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
292 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
293 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
294 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
295 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
296 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object, Object> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
297 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object, Object> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
298 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
299 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
300 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
301 112 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
302 112 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
303 56 : ca_.Goto(&block0, p_context, p_args, p_start, p_count);
304 :
305 56 : if (block0.is_used()) {
306 56 : compiler::TNode<Context> tmp0;
307 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp1;
308 56 : compiler::TNode<Smi> tmp2;
309 56 : compiler::TNode<Smi> tmp3;
310 56 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
311 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 34);
312 56 : compiler::TNode<Smi> tmp4;
313 56 : USE(tmp4);
314 56 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(FixedArray::kMaxRegularLength));
315 56 : compiler::TNode<BoolT> tmp5;
316 56 : USE(tmp5);
317 56 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp3}, compiler::TNode<Smi>{tmp4}));
318 56 : ca_.Branch(tmp5, &block3, &block4, tmp0, tmp1, tmp2, tmp3);
319 : }
320 :
321 56 : if (block3.is_used()) {
322 56 : compiler::TNode<Context> tmp6;
323 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp7;
324 56 : compiler::TNode<Smi> tmp8;
325 56 : compiler::TNode<Smi> tmp9;
326 56 : ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9);
327 56 : ca_.Goto(&block1);
328 : }
329 :
330 56 : if (block4.is_used()) {
331 56 : compiler::TNode<Context> tmp10;
332 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp11;
333 56 : compiler::TNode<Smi> tmp12;
334 56 : compiler::TNode<Smi> tmp13;
335 56 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12, &tmp13);
336 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 37);
337 56 : compiler::TNode<FixedArrayBase> tmp14;
338 56 : USE(tmp14);
339 56 : tmp14 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp11}));
340 56 : compiler::TNode<SloppyArgumentsElements> tmp15;
341 56 : USE(tmp15);
342 112 : compiler::CodeAssemblerLabel label0(&ca_);
343 56 : tmp15 = BaseBuiltinsFromDSLAssembler(state_).Cast23SloppyArgumentsElements(compiler::TNode<HeapObject>{tmp14}, &label0);
344 56 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15);
345 56 : if (label0.is_used()) {
346 56 : ca_.Bind(&label0);
347 56 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp14);
348 : }
349 : }
350 :
351 56 : if (block6.is_used()) {
352 56 : compiler::TNode<Context> tmp16;
353 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp17;
354 56 : compiler::TNode<Smi> tmp18;
355 56 : compiler::TNode<Smi> tmp19;
356 56 : compiler::TNode<FixedArrayBase> tmp20;
357 56 : ca_.Bind(&block6, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
358 56 : ca_.Goto(&block1);
359 : }
360 :
361 56 : if (block5.is_used()) {
362 56 : compiler::TNode<Context> tmp21;
363 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp22;
364 56 : compiler::TNode<Smi> tmp23;
365 56 : compiler::TNode<Smi> tmp24;
366 56 : compiler::TNode<FixedArrayBase> tmp25;
367 56 : compiler::TNode<SloppyArgumentsElements> tmp26;
368 56 : ca_.Bind(&block5, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
369 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 36);
370 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 38);
371 56 : compiler::TNode<Smi> tmp27;
372 56 : USE(tmp27);
373 56 : tmp27 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp26}));
374 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 40);
375 56 : compiler::TNode<Smi> tmp28;
376 56 : USE(tmp28);
377 56 : tmp28 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(SloppyArgumentsElements::kParameterMapStart));
378 56 : compiler::TNode<Smi> tmp29;
379 56 : USE(tmp29);
380 56 : tmp29 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp27}, compiler::TNode<Smi>{tmp28}));
381 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 39);
382 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 44);
383 56 : compiler::TNode<Smi> tmp30;
384 56 : USE(tmp30);
385 56 : tmp30 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp23}, compiler::TNode<Smi>{tmp24}));
386 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 46);
387 56 : compiler::TNode<Object> tmp31;
388 56 : USE(tmp31);
389 56 : tmp31 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp26}, SloppyArgumentsElements::kArgumentsIndex));
390 56 : compiler::TNode<FixedArray> tmp32;
391 56 : USE(tmp32);
392 112 : compiler::CodeAssemblerLabel label0(&ca_);
393 56 : tmp32 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<Context>{tmp21}, compiler::TNode<Object>{tmp31}, &label0);
394 56 : ca_.Goto(&block7, tmp21, tmp22, tmp23, tmp24, tmp26, tmp27, tmp29, tmp30, tmp31, tmp32);
395 56 : if (label0.is_used()) {
396 56 : ca_.Bind(&label0);
397 56 : ca_.Goto(&block8, tmp21, tmp22, tmp23, tmp24, tmp26, tmp27, tmp29, tmp30, tmp31);
398 : }
399 : }
400 :
401 56 : if (block8.is_used()) {
402 56 : compiler::TNode<Context> tmp33;
403 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp34;
404 56 : compiler::TNode<Smi> tmp35;
405 56 : compiler::TNode<Smi> tmp36;
406 56 : compiler::TNode<SloppyArgumentsElements> tmp37;
407 56 : compiler::TNode<Smi> tmp38;
408 56 : compiler::TNode<Smi> tmp39;
409 56 : compiler::TNode<Smi> tmp40;
410 56 : compiler::TNode<Object> tmp41;
411 56 : ca_.Bind(&block8, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41);
412 56 : ca_.Goto(&block1);
413 : }
414 :
415 56 : if (block7.is_used()) {
416 56 : compiler::TNode<Context> tmp42;
417 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp43;
418 56 : compiler::TNode<Smi> tmp44;
419 56 : compiler::TNode<Smi> tmp45;
420 56 : compiler::TNode<SloppyArgumentsElements> tmp46;
421 56 : compiler::TNode<Smi> tmp47;
422 56 : compiler::TNode<Smi> tmp48;
423 56 : compiler::TNode<Smi> tmp49;
424 56 : compiler::TNode<Object> tmp50;
425 56 : compiler::TNode<FixedArray> tmp51;
426 56 : ca_.Bind(&block7, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51);
427 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 45);
428 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 48);
429 56 : compiler::TNode<Smi> tmp52;
430 56 : USE(tmp52);
431 56 : tmp52 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadFixedArrayBaseLength(compiler::TNode<FixedArrayBase>{tmp51}));
432 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 49);
433 56 : compiler::TNode<BoolT> tmp53;
434 56 : USE(tmp53);
435 56 : tmp53 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp49}, compiler::TNode<Smi>{tmp52}));
436 56 : ca_.Branch(tmp53, &block9, &block10, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp51, tmp52);
437 : }
438 :
439 56 : if (block9.is_used()) {
440 56 : compiler::TNode<Context> tmp54;
441 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp55;
442 56 : compiler::TNode<Smi> tmp56;
443 56 : compiler::TNode<Smi> tmp57;
444 56 : compiler::TNode<SloppyArgumentsElements> tmp58;
445 56 : compiler::TNode<Smi> tmp59;
446 56 : compiler::TNode<Smi> tmp60;
447 56 : compiler::TNode<Smi> tmp61;
448 56 : compiler::TNode<FixedArray> tmp62;
449 56 : compiler::TNode<Smi> tmp63;
450 56 : ca_.Bind(&block9, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63);
451 56 : ca_.Goto(&block1);
452 : }
453 :
454 56 : if (block10.is_used()) {
455 56 : compiler::TNode<Context> tmp64;
456 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp65;
457 56 : compiler::TNode<Smi> tmp66;
458 56 : compiler::TNode<Smi> tmp67;
459 56 : compiler::TNode<SloppyArgumentsElements> tmp68;
460 56 : compiler::TNode<Smi> tmp69;
461 56 : compiler::TNode<Smi> tmp70;
462 56 : compiler::TNode<Smi> tmp71;
463 56 : compiler::TNode<FixedArray> tmp72;
464 56 : compiler::TNode<Smi> tmp73;
465 56 : ca_.Bind(&block10, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73);
466 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 52);
467 56 : compiler::TNode<Object> tmp74;
468 56 : USE(tmp74);
469 56 : tmp74 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp68}, SloppyArgumentsElements::kContextIndex));
470 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 51);
471 56 : compiler::TNode<Context> tmp75;
472 56 : USE(tmp75);
473 56 : tmp75 = ca_.UncheckedCast<Context>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast9ATContext(compiler::TNode<Context>{tmp64}, compiler::TNode<Object>{tmp74}));
474 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 54);
475 56 : compiler::TNode<Map> tmp76;
476 56 : USE(tmp76);
477 56 : tmp76 = ca_.UncheckedCast<Map>(CodeStubAssembler(state_).LoadJSArrayElementsMap(HOLEY_ELEMENTS, compiler::TNode<Context>{tmp64}));
478 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 56);
479 56 : compiler::TNode<JSArray> tmp77;
480 56 : USE(tmp77);
481 56 : tmp77 = ca_.UncheckedCast<JSArray>(CodeStubAssembler(state_).AllocateJSArray(HOLEY_ELEMENTS, compiler::TNode<Map>{tmp76}, compiler::TNode<Smi>{tmp67}, compiler::TNode<Smi>{tmp67}));
482 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 55);
483 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 58);
484 56 : compiler::TNode<Smi> tmp78;
485 56 : USE(tmp78);
486 56 : tmp78 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
487 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 59);
488 56 : compiler::TNode<FixedArrayBase> tmp79;
489 56 : USE(tmp79);
490 56 : tmp79 = ca_.UncheckedCast<FixedArrayBase>(BaseBuiltinsFromDSLAssembler(state_).LoadJSObjectElements(compiler::TNode<JSObject>{tmp77}));
491 56 : compiler::TNode<FixedArray> tmp80;
492 56 : USE(tmp80);
493 56 : tmp80 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp64}, compiler::TNode<Object>{tmp79}));
494 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 60);
495 56 : compiler::TNode<Smi> tmp81;
496 56 : USE(tmp81);
497 56 : tmp81 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMin(compiler::TNode<Smi>{tmp70}, compiler::TNode<Smi>{tmp71}));
498 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 63);
499 56 : ca_.Goto(&block13, tmp64, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp75, tmp76, tmp77, tmp78, tmp80, tmp81, tmp66);
500 : }
501 :
502 56 : if (block13.is_used()) {
503 56 : compiler::TNode<Context> tmp82;
504 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp83;
505 56 : compiler::TNode<Smi> tmp84;
506 56 : compiler::TNode<Smi> tmp85;
507 56 : compiler::TNode<SloppyArgumentsElements> tmp86;
508 56 : compiler::TNode<Smi> tmp87;
509 56 : compiler::TNode<Smi> tmp88;
510 56 : compiler::TNode<Smi> tmp89;
511 56 : compiler::TNode<FixedArray> tmp90;
512 56 : compiler::TNode<Smi> tmp91;
513 56 : compiler::TNode<Context> tmp92;
514 56 : compiler::TNode<Map> tmp93;
515 56 : compiler::TNode<JSArray> tmp94;
516 56 : compiler::TNode<Smi> tmp95;
517 56 : compiler::TNode<FixedArray> tmp96;
518 56 : compiler::TNode<Smi> tmp97;
519 56 : compiler::TNode<Smi> tmp98;
520 56 : ca_.Bind(&block13, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98);
521 56 : compiler::TNode<BoolT> tmp99;
522 56 : USE(tmp99);
523 56 : tmp99 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp98}, compiler::TNode<Smi>{tmp97}));
524 56 : ca_.Branch(tmp99, &block11, &block12, tmp82, tmp83, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp97, tmp98);
525 : }
526 :
527 56 : if (block11.is_used()) {
528 56 : compiler::TNode<Context> tmp100;
529 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp101;
530 56 : compiler::TNode<Smi> tmp102;
531 56 : compiler::TNode<Smi> tmp103;
532 56 : compiler::TNode<SloppyArgumentsElements> tmp104;
533 56 : compiler::TNode<Smi> tmp105;
534 56 : compiler::TNode<Smi> tmp106;
535 56 : compiler::TNode<Smi> tmp107;
536 56 : compiler::TNode<FixedArray> tmp108;
537 56 : compiler::TNode<Smi> tmp109;
538 56 : compiler::TNode<Context> tmp110;
539 56 : compiler::TNode<Map> tmp111;
540 56 : compiler::TNode<JSArray> tmp112;
541 56 : compiler::TNode<Smi> tmp113;
542 56 : compiler::TNode<FixedArray> tmp114;
543 56 : compiler::TNode<Smi> tmp115;
544 56 : compiler::TNode<Smi> tmp116;
545 56 : ca_.Bind(&block11, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116);
546 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 65);
547 56 : compiler::TNode<Smi> tmp117;
548 56 : USE(tmp117);
549 56 : tmp117 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(SloppyArgumentsElements::kParameterMapStart));
550 56 : compiler::TNode<Smi> tmp118;
551 56 : USE(tmp118);
552 56 : tmp118 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp116}, compiler::TNode<Smi>{tmp117}));
553 56 : compiler::TNode<Object> tmp119;
554 56 : USE(tmp119);
555 56 : tmp119 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp104}, compiler::TNode<Smi>{tmp118}));
556 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 64);
557 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
558 56 : compiler::TNode<Oddball> tmp120;
559 56 : USE(tmp120);
560 56 : tmp120 = BaseBuiltinsFromDSLAssembler(state_).Hole();
561 56 : compiler::TNode<BoolT> tmp121;
562 56 : USE(tmp121);
563 56 : tmp121 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordNotEqual(compiler::TNode<Object>{tmp119}, compiler::TNode<HeapObject>{tmp120}));
564 56 : ca_.Branch(tmp121, &block15, &block16, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp119);
565 : }
566 :
567 56 : if (block15.is_used()) {
568 56 : compiler::TNode<Context> tmp122;
569 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp123;
570 56 : compiler::TNode<Smi> tmp124;
571 56 : compiler::TNode<Smi> tmp125;
572 56 : compiler::TNode<SloppyArgumentsElements> tmp126;
573 56 : compiler::TNode<Smi> tmp127;
574 56 : compiler::TNode<Smi> tmp128;
575 56 : compiler::TNode<Smi> tmp129;
576 56 : compiler::TNode<FixedArray> tmp130;
577 56 : compiler::TNode<Smi> tmp131;
578 56 : compiler::TNode<Context> tmp132;
579 56 : compiler::TNode<Map> tmp133;
580 56 : compiler::TNode<JSArray> tmp134;
581 56 : compiler::TNode<Smi> tmp135;
582 56 : compiler::TNode<FixedArray> tmp136;
583 56 : compiler::TNode<Smi> tmp137;
584 56 : compiler::TNode<Smi> tmp138;
585 56 : compiler::TNode<Object> tmp139;
586 56 : ca_.Bind(&block15, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139);
587 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 67);
588 56 : compiler::TNode<Smi> tmp140;
589 56 : USE(tmp140);
590 56 : tmp140 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast5ATSmi(compiler::TNode<Context>{tmp122}, compiler::TNode<Object>{tmp139}));
591 56 : compiler::TNode<Object> tmp141;
592 56 : USE(tmp141);
593 56 : tmp141 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadContextElement(compiler::TNode<Context>{tmp132}, compiler::TNode<Smi>{tmp140}));
594 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
595 56 : ca_.Goto(&block18, tmp122, tmp123, tmp124, tmp125, tmp126, tmp127, tmp128, tmp129, tmp130, tmp131, tmp132, tmp133, tmp134, tmp135, tmp136, tmp137, tmp138, tmp139, tmp141);
596 : }
597 :
598 56 : if (block16.is_used()) {
599 56 : compiler::TNode<Context> tmp142;
600 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp143;
601 56 : compiler::TNode<Smi> tmp144;
602 56 : compiler::TNode<Smi> tmp145;
603 56 : compiler::TNode<SloppyArgumentsElements> tmp146;
604 56 : compiler::TNode<Smi> tmp147;
605 56 : compiler::TNode<Smi> tmp148;
606 56 : compiler::TNode<Smi> tmp149;
607 56 : compiler::TNode<FixedArray> tmp150;
608 56 : compiler::TNode<Smi> tmp151;
609 56 : compiler::TNode<Context> tmp152;
610 56 : compiler::TNode<Map> tmp153;
611 56 : compiler::TNode<JSArray> tmp154;
612 56 : compiler::TNode<Smi> tmp155;
613 56 : compiler::TNode<FixedArray> tmp156;
614 56 : compiler::TNode<Smi> tmp157;
615 56 : compiler::TNode<Smi> tmp158;
616 56 : compiler::TNode<Object> tmp159;
617 56 : ca_.Bind(&block16, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159);
618 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 68);
619 56 : compiler::TNode<Object> tmp160;
620 56 : USE(tmp160);
621 56 : tmp160 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp150}, compiler::TNode<Smi>{tmp158}));
622 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
623 56 : ca_.Goto(&block17, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160);
624 : }
625 :
626 56 : if (block18.is_used()) {
627 56 : compiler::TNode<Context> tmp161;
628 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp162;
629 56 : compiler::TNode<Smi> tmp163;
630 56 : compiler::TNode<Smi> tmp164;
631 56 : compiler::TNode<SloppyArgumentsElements> tmp165;
632 56 : compiler::TNode<Smi> tmp166;
633 56 : compiler::TNode<Smi> tmp167;
634 56 : compiler::TNode<Smi> tmp168;
635 56 : compiler::TNode<FixedArray> tmp169;
636 56 : compiler::TNode<Smi> tmp170;
637 56 : compiler::TNode<Context> tmp171;
638 56 : compiler::TNode<Map> tmp172;
639 56 : compiler::TNode<JSArray> tmp173;
640 56 : compiler::TNode<Smi> tmp174;
641 56 : compiler::TNode<FixedArray> tmp175;
642 56 : compiler::TNode<Smi> tmp176;
643 56 : compiler::TNode<Smi> tmp177;
644 56 : compiler::TNode<Object> tmp178;
645 56 : compiler::TNode<Object> tmp179;
646 56 : ca_.Bind(&block18, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179);
647 56 : ca_.Goto(&block17, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp178, tmp179);
648 : }
649 :
650 56 : if (block17.is_used()) {
651 56 : compiler::TNode<Context> tmp180;
652 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp181;
653 56 : compiler::TNode<Smi> tmp182;
654 56 : compiler::TNode<Smi> tmp183;
655 56 : compiler::TNode<SloppyArgumentsElements> tmp184;
656 56 : compiler::TNode<Smi> tmp185;
657 56 : compiler::TNode<Smi> tmp186;
658 56 : compiler::TNode<Smi> tmp187;
659 56 : compiler::TNode<FixedArray> tmp188;
660 56 : compiler::TNode<Smi> tmp189;
661 56 : compiler::TNode<Context> tmp190;
662 56 : compiler::TNode<Map> tmp191;
663 56 : compiler::TNode<JSArray> tmp192;
664 56 : compiler::TNode<Smi> tmp193;
665 56 : compiler::TNode<FixedArray> tmp194;
666 56 : compiler::TNode<Smi> tmp195;
667 56 : compiler::TNode<Smi> tmp196;
668 56 : compiler::TNode<Object> tmp197;
669 56 : compiler::TNode<Object> tmp198;
670 56 : ca_.Bind(&block17, &tmp180, &tmp181, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198);
671 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 70);
672 56 : compiler::TNode<Smi> tmp199;
673 56 : USE(tmp199);
674 56 : tmp199 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
675 56 : compiler::TNode<Smi> tmp200;
676 56 : USE(tmp200);
677 56 : tmp200 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp193}, compiler::TNode<Smi>{tmp199}));
678 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 69);
679 56 : CodeStubAssembler(state_).StoreFixedArrayElementSmi(compiler::TNode<FixedArray>{tmp194}, compiler::TNode<Smi>{tmp193}, compiler::TNode<Object>{tmp198}, SKIP_WRITE_BARRIER);
680 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 63);
681 56 : ca_.Goto(&block14, tmp180, tmp181, tmp182, tmp183, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190, tmp191, tmp192, tmp200, tmp194, tmp195, tmp196);
682 : }
683 :
684 56 : if (block14.is_used()) {
685 56 : compiler::TNode<Context> tmp201;
686 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp202;
687 56 : compiler::TNode<Smi> tmp203;
688 56 : compiler::TNode<Smi> tmp204;
689 56 : compiler::TNode<SloppyArgumentsElements> tmp205;
690 56 : compiler::TNode<Smi> tmp206;
691 56 : compiler::TNode<Smi> tmp207;
692 56 : compiler::TNode<Smi> tmp208;
693 56 : compiler::TNode<FixedArray> tmp209;
694 56 : compiler::TNode<Smi> tmp210;
695 56 : compiler::TNode<Context> tmp211;
696 56 : compiler::TNode<Map> tmp212;
697 56 : compiler::TNode<JSArray> tmp213;
698 56 : compiler::TNode<Smi> tmp214;
699 56 : compiler::TNode<FixedArray> tmp215;
700 56 : compiler::TNode<Smi> tmp216;
701 56 : compiler::TNode<Smi> tmp217;
702 56 : ca_.Bind(&block14, &tmp201, &tmp202, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217);
703 56 : compiler::TNode<Smi> tmp218;
704 56 : USE(tmp218);
705 56 : tmp218 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
706 56 : compiler::TNode<Smi> tmp219;
707 56 : USE(tmp219);
708 56 : tmp219 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp217}, compiler::TNode<Smi>{tmp218}));
709 56 : ca_.Goto(&block13, tmp201, tmp202, tmp203, tmp204, tmp205, tmp206, tmp207, tmp208, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214, tmp215, tmp216, tmp219);
710 : }
711 :
712 56 : if (block12.is_used()) {
713 56 : compiler::TNode<Context> tmp220;
714 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp221;
715 56 : compiler::TNode<Smi> tmp222;
716 56 : compiler::TNode<Smi> tmp223;
717 56 : compiler::TNode<SloppyArgumentsElements> tmp224;
718 56 : compiler::TNode<Smi> tmp225;
719 56 : compiler::TNode<Smi> tmp226;
720 56 : compiler::TNode<Smi> tmp227;
721 56 : compiler::TNode<FixedArray> tmp228;
722 56 : compiler::TNode<Smi> tmp229;
723 56 : compiler::TNode<Context> tmp230;
724 56 : compiler::TNode<Map> tmp231;
725 56 : compiler::TNode<JSArray> tmp232;
726 56 : compiler::TNode<Smi> tmp233;
727 56 : compiler::TNode<FixedArray> tmp234;
728 56 : compiler::TNode<Smi> tmp235;
729 56 : compiler::TNode<Smi> tmp236;
730 56 : ca_.Bind(&block12, &tmp220, &tmp221, &tmp222, &tmp223, &tmp224, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232, &tmp233, &tmp234, &tmp235, &tmp236);
731 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 75);
732 56 : compiler::TNode<Smi> tmp237;
733 56 : USE(tmp237);
734 56 : tmp237 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMax(compiler::TNode<Smi>{tmp226}, compiler::TNode<Smi>{tmp222}));
735 56 : compiler::TNode<Smi> tmp238;
736 56 : USE(tmp238);
737 56 : tmp238 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMin(compiler::TNode<Smi>{tmp237}, compiler::TNode<Smi>{tmp227}));
738 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 76);
739 56 : compiler::TNode<Smi> tmp239;
740 56 : USE(tmp239);
741 56 : tmp239 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp227}, compiler::TNode<Smi>{tmp238}));
742 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 78);
743 56 : compiler::TNode<IntPtrT> tmp240;
744 56 : USE(tmp240);
745 56 : tmp240 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp233}));
746 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 79);
747 56 : compiler::TNode<IntPtrT> tmp241;
748 56 : USE(tmp241);
749 56 : tmp241 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp238}));
750 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 80);
751 56 : compiler::TNode<IntPtrT> tmp242;
752 56 : USE(tmp242);
753 56 : tmp242 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp239}));
754 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 77);
755 56 : CodeStubAssembler(state_).CopyElements(PACKED_ELEMENTS, compiler::TNode<FixedArrayBase>{tmp234}, compiler::TNode<IntPtrT>{tmp240}, compiler::TNode<FixedArrayBase>{tmp228}, compiler::TNode<IntPtrT>{tmp241}, compiler::TNode<IntPtrT>{tmp242});
756 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 81);
757 56 : ca_.Goto(&block2, tmp220, tmp221, tmp222, tmp223, tmp232);
758 : }
759 :
760 56 : if (block2.is_used()) {
761 56 : compiler::TNode<Context> tmp243;
762 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp244;
763 56 : compiler::TNode<Smi> tmp245;
764 56 : compiler::TNode<Smi> tmp246;
765 56 : compiler::TNode<JSArray> tmp247;
766 56 : ca_.Bind(&block2, &tmp243, &tmp244, &tmp245, &tmp246, &tmp247);
767 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 29);
768 56 : ca_.Goto(&block19, tmp243, tmp244, tmp245, tmp246, tmp247);
769 : }
770 :
771 56 : if (block1.is_used()) {
772 56 : ca_.Bind(&block1);
773 56 : ca_.Goto(label_Bailout);
774 : }
775 :
776 56 : compiler::TNode<Context> tmp248;
777 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp249;
778 56 : compiler::TNode<Smi> tmp250;
779 56 : compiler::TNode<Smi> tmp251;
780 56 : compiler::TNode<JSArray> tmp252;
781 56 : ca_.Bind(&block19, &tmp248, &tmp249, &tmp250, &tmp251, &tmp252);
782 112 : return compiler::TNode<JSArray>{tmp252};
783 : }
784 :
785 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleFastSlice(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<Number> p_startNumber, compiler::TNode<Number> p_countNumber, compiler::CodeAssemblerLabel* label_Bailout) {
786 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
787 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
788 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
789 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
790 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Number, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
791 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
792 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object, JSArray> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
793 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArray> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
794 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArray> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
795 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
796 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
797 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object, JSArgumentsObjectWithLength> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
798 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
799 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
800 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
801 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
802 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block24(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
803 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
804 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
805 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block25(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
806 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block23(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
807 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
808 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
809 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
810 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
811 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
812 112 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
813 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, JSArray> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
814 56 : ca_.Goto(&block0, p_context, p_o, p_startNumber, p_countNumber);
815 :
816 56 : if (block0.is_used()) {
817 56 : compiler::TNode<Context> tmp0;
818 56 : compiler::TNode<Object> tmp1;
819 56 : compiler::TNode<Number> tmp2;
820 56 : compiler::TNode<Number> tmp3;
821 56 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
822 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 88);
823 56 : compiler::TNode<Smi> tmp4;
824 56 : USE(tmp4);
825 112 : compiler::CodeAssemblerLabel label0(&ca_);
826 56 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp2}, &label0);
827 56 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp2, tmp4);
828 56 : if (label0.is_used()) {
829 56 : ca_.Bind(&label0);
830 56 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp2);
831 : }
832 : }
833 :
834 56 : if (block4.is_used()) {
835 56 : compiler::TNode<Context> tmp5;
836 56 : compiler::TNode<Object> tmp6;
837 56 : compiler::TNode<Number> tmp7;
838 56 : compiler::TNode<Number> tmp8;
839 56 : compiler::TNode<Number> tmp9;
840 56 : ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
841 56 : ca_.Goto(&block1);
842 : }
843 :
844 56 : if (block3.is_used()) {
845 56 : compiler::TNode<Context> tmp10;
846 56 : compiler::TNode<Object> tmp11;
847 56 : compiler::TNode<Number> tmp12;
848 56 : compiler::TNode<Number> tmp13;
849 56 : compiler::TNode<Number> tmp14;
850 56 : compiler::TNode<Smi> tmp15;
851 56 : ca_.Bind(&block3, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
852 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 89);
853 56 : compiler::TNode<Smi> tmp16;
854 56 : USE(tmp16);
855 112 : compiler::CodeAssemblerLabel label0(&ca_);
856 56 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp13}, &label0);
857 56 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp15, tmp13, tmp16);
858 56 : if (label0.is_used()) {
859 56 : ca_.Bind(&label0);
860 56 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp15, tmp13);
861 : }
862 : }
863 :
864 56 : if (block6.is_used()) {
865 56 : compiler::TNode<Context> tmp17;
866 56 : compiler::TNode<Object> tmp18;
867 56 : compiler::TNode<Number> tmp19;
868 56 : compiler::TNode<Number> tmp20;
869 56 : compiler::TNode<Smi> tmp21;
870 56 : compiler::TNode<Number> tmp22;
871 56 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22);
872 56 : ca_.Goto(&block1);
873 : }
874 :
875 56 : if (block5.is_used()) {
876 56 : compiler::TNode<Context> tmp23;
877 56 : compiler::TNode<Object> tmp24;
878 56 : compiler::TNode<Number> tmp25;
879 56 : compiler::TNode<Number> tmp26;
880 56 : compiler::TNode<Smi> tmp27;
881 56 : compiler::TNode<Number> tmp28;
882 56 : compiler::TNode<Smi> tmp29;
883 56 : ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
884 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 92);
885 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 93);
886 56 : compiler::TNode<JSArray> tmp30;
887 56 : USE(tmp30);
888 112 : compiler::CodeAssemblerLabel label0(&ca_);
889 56 : tmp30 = BaseBuiltinsFromDSLAssembler(state_).Cast20ATFastJSArrayForCopy(compiler::TNode<Context>{tmp23}, compiler::TNode<Object>{tmp24}, &label0);
890 56 : ca_.Goto(&block9, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp24, tmp24, tmp30);
891 56 : if (label0.is_used()) {
892 56 : ca_.Bind(&label0);
893 56 : ca_.Goto(&block10, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp24, tmp24);
894 : }
895 : }
896 :
897 56 : if (block10.is_used()) {
898 56 : compiler::TNode<Context> tmp31;
899 56 : compiler::TNode<Object> tmp32;
900 56 : compiler::TNode<Number> tmp33;
901 56 : compiler::TNode<Number> tmp34;
902 56 : compiler::TNode<Smi> tmp35;
903 56 : compiler::TNode<Smi> tmp36;
904 56 : compiler::TNode<Object> tmp37;
905 56 : compiler::TNode<Object> tmp38;
906 56 : ca_.Bind(&block10, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38);
907 56 : ca_.Goto(&block8, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37);
908 : }
909 :
910 56 : if (block9.is_used()) {
911 56 : compiler::TNode<Context> tmp39;
912 56 : compiler::TNode<Object> tmp40;
913 56 : compiler::TNode<Number> tmp41;
914 56 : compiler::TNode<Number> tmp42;
915 56 : compiler::TNode<Smi> tmp43;
916 56 : compiler::TNode<Smi> tmp44;
917 56 : compiler::TNode<Object> tmp45;
918 56 : compiler::TNode<Object> tmp46;
919 56 : compiler::TNode<JSArray> tmp47;
920 56 : ca_.Bind(&block9, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47);
921 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 100);
922 56 : compiler::TNode<Smi> tmp48;
923 56 : USE(tmp48);
924 56 : tmp48 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp43}, compiler::TNode<Smi>{tmp44}));
925 56 : compiler::TNode<Smi> tmp49;
926 56 : USE(tmp49);
927 56 : tmp49 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp47}));
928 56 : compiler::TNode<BoolT> tmp50;
929 56 : USE(tmp50);
930 56 : tmp50 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp48}, compiler::TNode<Smi>{tmp49}));
931 56 : ca_.Branch(tmp50, &block11, &block12, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp47);
932 : }
933 :
934 56 : if (block11.is_used()) {
935 56 : compiler::TNode<Context> tmp51;
936 56 : compiler::TNode<Object> tmp52;
937 56 : compiler::TNode<Number> tmp53;
938 56 : compiler::TNode<Number> tmp54;
939 56 : compiler::TNode<Smi> tmp55;
940 56 : compiler::TNode<Smi> tmp56;
941 56 : compiler::TNode<Object> tmp57;
942 56 : compiler::TNode<JSArray> tmp58;
943 56 : ca_.Bind(&block11, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
944 56 : ca_.Goto(&block1);
945 : }
946 :
947 56 : if (block12.is_used()) {
948 56 : compiler::TNode<Context> tmp59;
949 56 : compiler::TNode<Object> tmp60;
950 56 : compiler::TNode<Number> tmp61;
951 56 : compiler::TNode<Number> tmp62;
952 56 : compiler::TNode<Smi> tmp63;
953 56 : compiler::TNode<Smi> tmp64;
954 56 : compiler::TNode<Object> tmp65;
955 56 : compiler::TNode<JSArray> tmp66;
956 56 : ca_.Bind(&block12, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66);
957 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 101);
958 56 : compiler::TNode<JSArray> tmp67;
959 56 : tmp67 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kExtractFastJSArray, tmp59, tmp66, tmp63, tmp64));
960 56 : USE(tmp67);
961 56 : ca_.Goto(&block2, tmp59, tmp60, tmp61, tmp62, tmp67);
962 : }
963 :
964 56 : if (block8.is_used()) {
965 56 : compiler::TNode<Context> tmp68;
966 56 : compiler::TNode<Object> tmp69;
967 56 : compiler::TNode<Number> tmp70;
968 56 : compiler::TNode<Number> tmp71;
969 56 : compiler::TNode<Smi> tmp72;
970 56 : compiler::TNode<Smi> tmp73;
971 56 : compiler::TNode<Object> tmp74;
972 56 : ca_.Bind(&block8, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
973 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
974 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp75;
975 56 : USE(tmp75);
976 112 : compiler::CodeAssemblerLabel label0(&ca_);
977 56 : tmp75 = BaseBuiltinsFromDSLAssembler(state_).Cast27JSArgumentsObjectWithLength(compiler::TNode<Context>{tmp68}, compiler::TNode<Object>{ca_.UncheckedCast<Object>(tmp74)}, &label0);
978 56 : ca_.Goto(&block15, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, ca_.UncheckedCast<Object>(tmp74), tmp75);
979 56 : if (label0.is_used()) {
980 56 : ca_.Bind(&label0);
981 56 : ca_.Goto(&block16, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, ca_.UncheckedCast<Object>(tmp74));
982 : }
983 : }
984 :
985 56 : if (block16.is_used()) {
986 56 : compiler::TNode<Context> tmp76;
987 56 : compiler::TNode<Object> tmp77;
988 56 : compiler::TNode<Number> tmp78;
989 56 : compiler::TNode<Number> tmp79;
990 56 : compiler::TNode<Smi> tmp80;
991 56 : compiler::TNode<Smi> tmp81;
992 56 : compiler::TNode<Object> tmp82;
993 56 : compiler::TNode<Object> tmp83;
994 56 : ca_.Bind(&block16, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83);
995 56 : ca_.Goto(&block14, tmp76, tmp77, tmp78, tmp79, tmp80, tmp81, tmp82);
996 : }
997 :
998 56 : if (block15.is_used()) {
999 56 : compiler::TNode<Context> tmp84;
1000 56 : compiler::TNode<Object> tmp85;
1001 56 : compiler::TNode<Number> tmp86;
1002 56 : compiler::TNode<Number> tmp87;
1003 56 : compiler::TNode<Smi> tmp88;
1004 56 : compiler::TNode<Smi> tmp89;
1005 56 : compiler::TNode<Object> tmp90;
1006 56 : compiler::TNode<Object> tmp91;
1007 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp92;
1008 56 : ca_.Bind(&block15, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
1009 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 104);
1010 56 : compiler::TNode<Context> tmp93;
1011 56 : USE(tmp93);
1012 56 : tmp93 = ca_.UncheckedCast<Context>(CodeStubAssembler(state_).LoadNativeContext(compiler::TNode<Context>{tmp84}));
1013 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 105);
1014 56 : compiler::TNode<Map> tmp94;
1015 56 : USE(tmp94);
1016 56 : tmp94 = ca_.UncheckedCast<Map>(BaseBuiltinsFromDSLAssembler(state_).LoadHeapObjectMap(compiler::TNode<HeapObject>{tmp92}));
1017 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 106);
1018 56 : compiler::TNode<BoolT> tmp95;
1019 56 : USE(tmp95);
1020 56 : tmp95 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsFastAliasedArgumentsMap(compiler::TNode<Context>{tmp84}, compiler::TNode<Map>{tmp94}));
1021 56 : ca_.Branch(tmp95, &block17, &block18, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp92, tmp93, tmp94);
1022 : }
1023 :
1024 56 : if (block17.is_used()) {
1025 56 : compiler::TNode<Context> tmp96;
1026 56 : compiler::TNode<Object> tmp97;
1027 56 : compiler::TNode<Number> tmp98;
1028 56 : compiler::TNode<Number> tmp99;
1029 56 : compiler::TNode<Smi> tmp100;
1030 56 : compiler::TNode<Smi> tmp101;
1031 56 : compiler::TNode<Object> tmp102;
1032 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp103;
1033 56 : compiler::TNode<Context> tmp104;
1034 56 : compiler::TNode<Map> tmp105;
1035 56 : ca_.Bind(&block17, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105);
1036 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 107);
1037 56 : compiler::TNode<JSArray> tmp106;
1038 56 : USE(tmp106);
1039 112 : compiler::CodeAssemblerLabel label0(&ca_);
1040 56 : tmp106 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleFastAliasedSloppyArgumentsSlice(compiler::TNode<Context>{tmp96}, compiler::TNode<JSArgumentsObjectWithLength>{tmp103}, compiler::TNode<Smi>{tmp100}, compiler::TNode<Smi>{tmp101}, &label0);
1041 56 : ca_.Goto(&block20, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp96, tmp103, tmp100, tmp101, tmp106);
1042 56 : if (label0.is_used()) {
1043 56 : ca_.Bind(&label0);
1044 56 : ca_.Goto(&block21, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp96, tmp103, tmp100, tmp101);
1045 : }
1046 : }
1047 :
1048 56 : if (block21.is_used()) {
1049 56 : compiler::TNode<Context> tmp107;
1050 56 : compiler::TNode<Object> tmp108;
1051 56 : compiler::TNode<Number> tmp109;
1052 56 : compiler::TNode<Number> tmp110;
1053 56 : compiler::TNode<Smi> tmp111;
1054 56 : compiler::TNode<Smi> tmp112;
1055 56 : compiler::TNode<Object> tmp113;
1056 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp114;
1057 56 : compiler::TNode<Context> tmp115;
1058 56 : compiler::TNode<Map> tmp116;
1059 56 : compiler::TNode<Context> tmp117;
1060 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp118;
1061 56 : compiler::TNode<Smi> tmp119;
1062 56 : compiler::TNode<Smi> tmp120;
1063 56 : ca_.Bind(&block21, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120);
1064 56 : ca_.Goto(&block1);
1065 : }
1066 :
1067 56 : if (block20.is_used()) {
1068 56 : compiler::TNode<Context> tmp121;
1069 56 : compiler::TNode<Object> tmp122;
1070 56 : compiler::TNode<Number> tmp123;
1071 56 : compiler::TNode<Number> tmp124;
1072 56 : compiler::TNode<Smi> tmp125;
1073 56 : compiler::TNode<Smi> tmp126;
1074 56 : compiler::TNode<Object> tmp127;
1075 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp128;
1076 56 : compiler::TNode<Context> tmp129;
1077 56 : compiler::TNode<Map> tmp130;
1078 56 : compiler::TNode<Context> tmp131;
1079 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp132;
1080 56 : compiler::TNode<Smi> tmp133;
1081 56 : compiler::TNode<Smi> tmp134;
1082 56 : compiler::TNode<JSArray> tmp135;
1083 56 : ca_.Bind(&block20, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135);
1084 56 : ca_.Goto(&block2, tmp121, tmp122, tmp123, tmp124, tmp135);
1085 : }
1086 :
1087 56 : if (block18.is_used()) {
1088 56 : compiler::TNode<Context> tmp136;
1089 56 : compiler::TNode<Object> tmp137;
1090 56 : compiler::TNode<Number> tmp138;
1091 56 : compiler::TNode<Number> tmp139;
1092 56 : compiler::TNode<Smi> tmp140;
1093 56 : compiler::TNode<Smi> tmp141;
1094 56 : compiler::TNode<Object> tmp142;
1095 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp143;
1096 56 : compiler::TNode<Context> tmp144;
1097 56 : compiler::TNode<Map> tmp145;
1098 56 : ca_.Bind(&block18, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145);
1099 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 109);
1100 56 : compiler::TNode<BoolT> tmp146;
1101 56 : USE(tmp146);
1102 56 : tmp146 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsStrictArgumentsMap(compiler::TNode<Context>{tmp136}, compiler::TNode<Map>{tmp145}));
1103 56 : ca_.Branch(tmp146, &block22, &block24, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp145);
1104 : }
1105 :
1106 56 : if (block24.is_used()) {
1107 56 : compiler::TNode<Context> tmp147;
1108 56 : compiler::TNode<Object> tmp148;
1109 56 : compiler::TNode<Number> tmp149;
1110 56 : compiler::TNode<Number> tmp150;
1111 56 : compiler::TNode<Smi> tmp151;
1112 56 : compiler::TNode<Smi> tmp152;
1113 56 : compiler::TNode<Object> tmp153;
1114 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp154;
1115 56 : compiler::TNode<Context> tmp155;
1116 56 : compiler::TNode<Map> tmp156;
1117 56 : ca_.Bind(&block24, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156);
1118 56 : compiler::TNode<BoolT> tmp157;
1119 56 : USE(tmp157);
1120 56 : tmp157 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsSloppyArgumentsMap(compiler::TNode<Context>{tmp147}, compiler::TNode<Map>{tmp156}));
1121 56 : ca_.Branch(tmp157, &block22, &block23, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156);
1122 : }
1123 :
1124 56 : if (block22.is_used()) {
1125 56 : compiler::TNode<Context> tmp158;
1126 56 : compiler::TNode<Object> tmp159;
1127 56 : compiler::TNode<Number> tmp160;
1128 56 : compiler::TNode<Number> tmp161;
1129 56 : compiler::TNode<Smi> tmp162;
1130 56 : compiler::TNode<Smi> tmp163;
1131 56 : compiler::TNode<Object> tmp164;
1132 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp165;
1133 56 : compiler::TNode<Context> tmp166;
1134 56 : compiler::TNode<Map> tmp167;
1135 56 : ca_.Bind(&block22, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167);
1136 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 110);
1137 56 : compiler::TNode<JSArray> tmp168;
1138 56 : USE(tmp168);
1139 112 : compiler::CodeAssemblerLabel label0(&ca_);
1140 56 : tmp168 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleSimpleArgumentsSlice(compiler::TNode<Context>{tmp158}, compiler::TNode<JSArgumentsObjectWithLength>{tmp165}, compiler::TNode<Smi>{tmp162}, compiler::TNode<Smi>{tmp163}, &label0);
1141 56 : ca_.Goto(&block25, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167, tmp158, tmp165, tmp162, tmp163, tmp168);
1142 56 : if (label0.is_used()) {
1143 56 : ca_.Bind(&label0);
1144 56 : ca_.Goto(&block26, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167, tmp158, tmp165, tmp162, tmp163);
1145 : }
1146 : }
1147 :
1148 56 : if (block26.is_used()) {
1149 56 : compiler::TNode<Context> tmp169;
1150 56 : compiler::TNode<Object> tmp170;
1151 56 : compiler::TNode<Number> tmp171;
1152 56 : compiler::TNode<Number> tmp172;
1153 56 : compiler::TNode<Smi> tmp173;
1154 56 : compiler::TNode<Smi> tmp174;
1155 56 : compiler::TNode<Object> tmp175;
1156 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp176;
1157 56 : compiler::TNode<Context> tmp177;
1158 56 : compiler::TNode<Map> tmp178;
1159 56 : compiler::TNode<Context> tmp179;
1160 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp180;
1161 56 : compiler::TNode<Smi> tmp181;
1162 56 : compiler::TNode<Smi> tmp182;
1163 56 : ca_.Bind(&block26, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180, &tmp181, &tmp182);
1164 56 : ca_.Goto(&block1);
1165 : }
1166 :
1167 56 : if (block25.is_used()) {
1168 56 : compiler::TNode<Context> tmp183;
1169 56 : compiler::TNode<Object> tmp184;
1170 56 : compiler::TNode<Number> tmp185;
1171 56 : compiler::TNode<Number> tmp186;
1172 56 : compiler::TNode<Smi> tmp187;
1173 56 : compiler::TNode<Smi> tmp188;
1174 56 : compiler::TNode<Object> tmp189;
1175 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp190;
1176 56 : compiler::TNode<Context> tmp191;
1177 56 : compiler::TNode<Map> tmp192;
1178 56 : compiler::TNode<Context> tmp193;
1179 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp194;
1180 56 : compiler::TNode<Smi> tmp195;
1181 56 : compiler::TNode<Smi> tmp196;
1182 56 : compiler::TNode<JSArray> tmp197;
1183 56 : ca_.Bind(&block25, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197);
1184 56 : ca_.Goto(&block2, tmp183, tmp184, tmp185, tmp186, tmp197);
1185 : }
1186 :
1187 56 : if (block23.is_used()) {
1188 56 : compiler::TNode<Context> tmp198;
1189 56 : compiler::TNode<Object> tmp199;
1190 56 : compiler::TNode<Number> tmp200;
1191 56 : compiler::TNode<Number> tmp201;
1192 56 : compiler::TNode<Smi> tmp202;
1193 56 : compiler::TNode<Smi> tmp203;
1194 56 : compiler::TNode<Object> tmp204;
1195 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp205;
1196 56 : compiler::TNode<Context> tmp206;
1197 56 : compiler::TNode<Map> tmp207;
1198 56 : ca_.Bind(&block23, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207);
1199 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 106);
1200 56 : ca_.Goto(&block19, tmp198, tmp199, tmp200, tmp201, tmp202, tmp203, tmp204, tmp205, tmp206, tmp207);
1201 : }
1202 :
1203 56 : if (block19.is_used()) {
1204 56 : compiler::TNode<Context> tmp208;
1205 56 : compiler::TNode<Object> tmp209;
1206 56 : compiler::TNode<Number> tmp210;
1207 56 : compiler::TNode<Number> tmp211;
1208 56 : compiler::TNode<Smi> tmp212;
1209 56 : compiler::TNode<Smi> tmp213;
1210 56 : compiler::TNode<Object> tmp214;
1211 56 : compiler::TNode<JSArgumentsObjectWithLength> tmp215;
1212 56 : compiler::TNode<Context> tmp216;
1213 56 : compiler::TNode<Map> tmp217;
1214 56 : ca_.Bind(&block19, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217);
1215 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
1216 56 : ca_.Goto(&block13, tmp208, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214);
1217 : }
1218 :
1219 56 : if (block14.is_used()) {
1220 56 : compiler::TNode<Context> tmp218;
1221 56 : compiler::TNode<Object> tmp219;
1222 56 : compiler::TNode<Number> tmp220;
1223 56 : compiler::TNode<Number> tmp221;
1224 56 : compiler::TNode<Smi> tmp222;
1225 56 : compiler::TNode<Smi> tmp223;
1226 56 : compiler::TNode<Object> tmp224;
1227 56 : ca_.Bind(&block14, &tmp218, &tmp219, &tmp220, &tmp221, &tmp222, &tmp223, &tmp224);
1228 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 114);
1229 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
1230 56 : ca_.Goto(&block13, tmp218, tmp219, tmp220, tmp221, tmp222, tmp223, tmp224);
1231 : }
1232 :
1233 56 : if (block13.is_used()) {
1234 56 : compiler::TNode<Context> tmp225;
1235 56 : compiler::TNode<Object> tmp226;
1236 56 : compiler::TNode<Number> tmp227;
1237 56 : compiler::TNode<Number> tmp228;
1238 56 : compiler::TNode<Smi> tmp229;
1239 56 : compiler::TNode<Smi> tmp230;
1240 56 : compiler::TNode<Object> tmp231;
1241 56 : ca_.Bind(&block13, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231);
1242 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 93);
1243 56 : ca_.Goto(&block7, tmp225, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231);
1244 : }
1245 :
1246 56 : if (block7.is_used()) {
1247 56 : compiler::TNode<Context> tmp232;
1248 56 : compiler::TNode<Object> tmp233;
1249 56 : compiler::TNode<Number> tmp234;
1250 56 : compiler::TNode<Number> tmp235;
1251 56 : compiler::TNode<Smi> tmp236;
1252 56 : compiler::TNode<Smi> tmp237;
1253 56 : compiler::TNode<Object> tmp238;
1254 56 : ca_.Bind(&block7, &tmp232, &tmp233, &tmp234, &tmp235, &tmp236, &tmp237, &tmp238);
1255 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 92);
1256 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 117);
1257 56 : ca_.Goto(&block1);
1258 : }
1259 :
1260 56 : if (block2.is_used()) {
1261 56 : compiler::TNode<Context> tmp239;
1262 56 : compiler::TNode<Object> tmp240;
1263 56 : compiler::TNode<Number> tmp241;
1264 56 : compiler::TNode<Number> tmp242;
1265 56 : compiler::TNode<JSArray> tmp243;
1266 56 : ca_.Bind(&block2, &tmp239, &tmp240, &tmp241, &tmp242, &tmp243);
1267 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 84);
1268 56 : ca_.Goto(&block27, tmp239, tmp240, tmp241, tmp242, tmp243);
1269 : }
1270 :
1271 56 : if (block1.is_used()) {
1272 56 : ca_.Bind(&block1);
1273 56 : ca_.Goto(label_Bailout);
1274 : }
1275 :
1276 56 : compiler::TNode<Context> tmp244;
1277 56 : compiler::TNode<Object> tmp245;
1278 56 : compiler::TNode<Number> tmp246;
1279 56 : compiler::TNode<Number> tmp247;
1280 56 : compiler::TNode<JSArray> tmp248;
1281 56 : ca_.Bind(&block27, &tmp244, &tmp245, &tmp246, &tmp247, &tmp248);
1282 112 : return compiler::TNode<JSArray>{tmp248};
1283 : }
1284 :
1285 336 : TF_BUILTIN(ArrayPrototypeSlice, CodeStubAssembler) {
1286 112 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
1287 56 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
1288 56 : USE(parameter0);
1289 56 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
1290 56 : CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
1291 56 : TNode<Object> parameter1 = arguments_impl.GetReceiver();
1292 56 : auto arguments = &arguments_impl;
1293 56 : USE(arguments);
1294 56 : USE(parameter1);
1295 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1296 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1297 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1298 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, JSArray> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1299 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1300 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1301 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1302 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1303 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1304 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1305 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1306 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1307 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1308 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1309 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1310 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1311 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1312 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1313 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1314 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1315 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1316 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1317 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1318 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, Context, JSReceiver, Number, Number> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1319 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, Context, JSReceiver, Number, Number, JSArray> block25(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1320 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number> block24(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1321 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number> block23(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1322 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block29(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1323 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Number> block30(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1324 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Number> block31(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1325 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1326 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Oddball> block32(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1327 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Oddball> block33(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1328 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block28(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1329 56 : ca_.Goto(&block0, parameter0, parameter1);
1330 :
1331 56 : if (block0.is_used()) {
1332 56 : compiler::TNode<Context> tmp0;
1333 56 : compiler::TNode<Object> tmp1;
1334 56 : ca_.Bind(&block0, &tmp0, &tmp1);
1335 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 125);
1336 56 : compiler::TNode<IntPtrT> tmp2;
1337 56 : USE(tmp2);
1338 56 : tmp2 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).GetArgumentsLength(arguments));
1339 56 : compiler::TNode<IntPtrT> tmp3;
1340 56 : USE(tmp3);
1341 56 : tmp3 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
1342 56 : compiler::TNode<BoolT> tmp4;
1343 56 : USE(tmp4);
1344 56 : tmp4 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<IntPtrT>{tmp2}, compiler::TNode<IntPtrT>{tmp3}));
1345 56 : ca_.Branch(tmp4, &block1, &block2, tmp0, tmp1);
1346 : }
1347 :
1348 56 : if (block1.is_used()) {
1349 56 : compiler::TNode<Context> tmp5;
1350 56 : compiler::TNode<Object> tmp6;
1351 56 : ca_.Bind(&block1, &tmp5, &tmp6);
1352 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 126);
1353 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 127);
1354 56 : compiler::TNode<JSArray> tmp7;
1355 56 : USE(tmp7);
1356 112 : compiler::CodeAssemblerLabel label0(&ca_);
1357 56 : tmp7 = BaseBuiltinsFromDSLAssembler(state_).Cast20ATFastJSArrayForCopy(compiler::TNode<Context>{tmp5}, compiler::TNode<Object>{tmp6}, &label0);
1358 56 : ca_.Goto(&block5, tmp5, tmp6, tmp6, tmp6, tmp7);
1359 56 : if (label0.is_used()) {
1360 56 : ca_.Bind(&label0);
1361 56 : ca_.Goto(&block6, tmp5, tmp6, tmp6, tmp6);
1362 : }
1363 : }
1364 :
1365 56 : if (block6.is_used()) {
1366 56 : compiler::TNode<Context> tmp8;
1367 56 : compiler::TNode<Object> tmp9;
1368 56 : compiler::TNode<Object> tmp10;
1369 56 : compiler::TNode<Object> tmp11;
1370 56 : ca_.Bind(&block6, &tmp8, &tmp9, &tmp10, &tmp11);
1371 56 : ca_.Goto(&block4, tmp8, tmp9, tmp10);
1372 : }
1373 :
1374 56 : if (block5.is_used()) {
1375 56 : compiler::TNode<Context> tmp12;
1376 56 : compiler::TNode<Object> tmp13;
1377 56 : compiler::TNode<Object> tmp14;
1378 56 : compiler::TNode<Object> tmp15;
1379 56 : compiler::TNode<JSArray> tmp16;
1380 56 : ca_.Bind(&block5, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
1381 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 128);
1382 56 : compiler::TNode<JSArray> tmp17;
1383 56 : tmp17 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kCloneFastJSArray, tmp12, tmp16));
1384 56 : USE(tmp17);
1385 56 : arguments->PopAndReturn(tmp17);
1386 : }
1387 :
1388 56 : if (block4.is_used()) {
1389 56 : compiler::TNode<Context> tmp18;
1390 56 : compiler::TNode<Object> tmp19;
1391 56 : compiler::TNode<Object> tmp20;
1392 56 : ca_.Bind(&block4, &tmp18, &tmp19, &tmp20);
1393 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 130);
1394 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 127);
1395 56 : ca_.Goto(&block3, tmp18, tmp19, tmp20);
1396 : }
1397 :
1398 56 : if (block3.is_used()) {
1399 56 : compiler::TNode<Context> tmp21;
1400 56 : compiler::TNode<Object> tmp22;
1401 56 : compiler::TNode<Object> tmp23;
1402 56 : ca_.Bind(&block3, &tmp21, &tmp22, &tmp23);
1403 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 126);
1404 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 125);
1405 56 : ca_.Goto(&block2, tmp21, tmp22);
1406 : }
1407 :
1408 56 : if (block2.is_used()) {
1409 56 : compiler::TNode<Context> tmp24;
1410 56 : compiler::TNode<Object> tmp25;
1411 56 : ca_.Bind(&block2, &tmp24, &tmp25);
1412 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 136);
1413 56 : compiler::TNode<JSReceiver> tmp26;
1414 56 : USE(tmp26);
1415 56 : tmp26 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp24}, compiler::TNode<Object>{tmp25}));
1416 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 139);
1417 56 : compiler::TNode<Number> tmp27;
1418 56 : USE(tmp27);
1419 56 : tmp27 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp24}, compiler::TNode<Object>{tmp26}));
1420 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 142);
1421 56 : compiler::TNode<IntPtrT> tmp28;
1422 56 : USE(tmp28);
1423 56 : tmp28 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
1424 56 : compiler::TNode<Object> tmp29;
1425 56 : USE(tmp29);
1426 56 : tmp29 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp28}));
1427 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 143);
1428 56 : compiler::TNode<Number> tmp30;
1429 56 : USE(tmp30);
1430 56 : tmp30 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp24}, compiler::TNode<Object>{tmp29}));
1431 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 147);
1432 56 : compiler::TNode<Number> tmp31;
1433 56 : USE(tmp31);
1434 56 : tmp31 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1435 112 : compiler::CodeAssemblerLabel label0(&ca_);
1436 112 : compiler::CodeAssemblerLabel label1(&ca_);
1437 56 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp30}, compiler::TNode<Number>{tmp31}, &label0, &label1);
1438 56 : if (label0.is_used()) {
1439 56 : ca_.Bind(&label0);
1440 56 : ca_.Goto(&block11, tmp24, tmp25, tmp26, tmp27, tmp29, tmp30, tmp30);
1441 : }
1442 56 : if (label1.is_used()) {
1443 56 : ca_.Bind(&label1);
1444 56 : ca_.Goto(&block12, tmp24, tmp25, tmp26, tmp27, tmp29, tmp30, tmp30);
1445 : }
1446 : }
1447 :
1448 56 : if (block11.is_used()) {
1449 56 : compiler::TNode<Context> tmp32;
1450 56 : compiler::TNode<Object> tmp33;
1451 56 : compiler::TNode<JSReceiver> tmp34;
1452 56 : compiler::TNode<Number> tmp35;
1453 56 : compiler::TNode<Object> tmp36;
1454 56 : compiler::TNode<Number> tmp37;
1455 56 : compiler::TNode<Number> tmp38;
1456 56 : ca_.Bind(&block11, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38);
1457 56 : ca_.Goto(&block7, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37);
1458 : }
1459 :
1460 56 : if (block12.is_used()) {
1461 56 : compiler::TNode<Context> tmp39;
1462 56 : compiler::TNode<Object> tmp40;
1463 56 : compiler::TNode<JSReceiver> tmp41;
1464 56 : compiler::TNode<Number> tmp42;
1465 56 : compiler::TNode<Object> tmp43;
1466 56 : compiler::TNode<Number> tmp44;
1467 56 : compiler::TNode<Number> tmp45;
1468 56 : ca_.Bind(&block12, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
1469 56 : ca_.Goto(&block8, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44);
1470 : }
1471 :
1472 56 : if (block7.is_used()) {
1473 56 : compiler::TNode<Context> tmp46;
1474 56 : compiler::TNode<Object> tmp47;
1475 56 : compiler::TNode<JSReceiver> tmp48;
1476 56 : compiler::TNode<Number> tmp49;
1477 56 : compiler::TNode<Object> tmp50;
1478 56 : compiler::TNode<Number> tmp51;
1479 56 : ca_.Bind(&block7, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51);
1480 56 : compiler::TNode<Number> tmp52;
1481 56 : USE(tmp52);
1482 56 : tmp52 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp49}, compiler::TNode<Number>{tmp51}));
1483 56 : compiler::TNode<Number> tmp53;
1484 56 : USE(tmp53);
1485 56 : tmp53 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1486 56 : compiler::TNode<Number> tmp54;
1487 56 : USE(tmp54);
1488 56 : tmp54 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp52}, compiler::TNode<Number>{tmp53}));
1489 56 : ca_.Goto(&block10, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51, tmp54);
1490 : }
1491 :
1492 56 : if (block8.is_used()) {
1493 56 : compiler::TNode<Context> tmp55;
1494 56 : compiler::TNode<Object> tmp56;
1495 56 : compiler::TNode<JSReceiver> tmp57;
1496 56 : compiler::TNode<Number> tmp58;
1497 56 : compiler::TNode<Object> tmp59;
1498 56 : compiler::TNode<Number> tmp60;
1499 56 : ca_.Bind(&block8, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60);
1500 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 148);
1501 56 : compiler::TNode<Number> tmp61;
1502 56 : USE(tmp61);
1503 56 : tmp61 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Min(compiler::TNode<Number>{tmp60}, compiler::TNode<Number>{tmp58}));
1504 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 147);
1505 56 : ca_.Goto(&block9, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61);
1506 : }
1507 :
1508 56 : if (block10.is_used()) {
1509 56 : compiler::TNode<Context> tmp62;
1510 56 : compiler::TNode<Object> tmp63;
1511 56 : compiler::TNode<JSReceiver> tmp64;
1512 56 : compiler::TNode<Number> tmp65;
1513 56 : compiler::TNode<Object> tmp66;
1514 56 : compiler::TNode<Number> tmp67;
1515 56 : compiler::TNode<Number> tmp68;
1516 56 : ca_.Bind(&block10, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68);
1517 56 : ca_.Goto(&block9, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68);
1518 : }
1519 :
1520 56 : if (block9.is_used()) {
1521 56 : compiler::TNode<Context> tmp69;
1522 56 : compiler::TNode<Object> tmp70;
1523 56 : compiler::TNode<JSReceiver> tmp71;
1524 56 : compiler::TNode<Number> tmp72;
1525 56 : compiler::TNode<Object> tmp73;
1526 56 : compiler::TNode<Number> tmp74;
1527 56 : compiler::TNode<Number> tmp75;
1528 56 : ca_.Bind(&block9, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75);
1529 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 152);
1530 56 : compiler::TNode<IntPtrT> tmp76;
1531 56 : USE(tmp76);
1532 56 : tmp76 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
1533 56 : compiler::TNode<Object> tmp77;
1534 56 : USE(tmp77);
1535 56 : tmp77 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp76}));
1536 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 154);
1537 56 : compiler::TNode<Oddball> tmp78;
1538 56 : USE(tmp78);
1539 56 : tmp78 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
1540 56 : compiler::TNode<BoolT> tmp79;
1541 56 : USE(tmp79);
1542 56 : tmp79 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp77}, compiler::TNode<HeapObject>{tmp78}));
1543 56 : ca_.Branch(tmp79, &block13, &block14, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp77);
1544 : }
1545 :
1546 56 : if (block13.is_used()) {
1547 56 : compiler::TNode<Context> tmp80;
1548 56 : compiler::TNode<Object> tmp81;
1549 56 : compiler::TNode<JSReceiver> tmp82;
1550 56 : compiler::TNode<Number> tmp83;
1551 56 : compiler::TNode<Object> tmp84;
1552 56 : compiler::TNode<Number> tmp85;
1553 56 : compiler::TNode<Number> tmp86;
1554 56 : compiler::TNode<Object> tmp87;
1555 56 : ca_.Bind(&block13, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87);
1556 56 : ca_.Goto(&block16, tmp80, tmp81, tmp82, tmp83, tmp84, tmp85, tmp86, tmp87, tmp83);
1557 : }
1558 :
1559 56 : if (block14.is_used()) {
1560 56 : compiler::TNode<Context> tmp88;
1561 56 : compiler::TNode<Object> tmp89;
1562 56 : compiler::TNode<JSReceiver> tmp90;
1563 56 : compiler::TNode<Number> tmp91;
1564 56 : compiler::TNode<Object> tmp92;
1565 56 : compiler::TNode<Number> tmp93;
1566 56 : compiler::TNode<Number> tmp94;
1567 56 : compiler::TNode<Object> tmp95;
1568 56 : ca_.Bind(&block14, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95);
1569 56 : compiler::TNode<Number> tmp96;
1570 56 : USE(tmp96);
1571 56 : tmp96 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp88}, compiler::TNode<Object>{tmp95}));
1572 56 : ca_.Goto(&block15, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96);
1573 : }
1574 :
1575 56 : if (block16.is_used()) {
1576 56 : compiler::TNode<Context> tmp97;
1577 56 : compiler::TNode<Object> tmp98;
1578 56 : compiler::TNode<JSReceiver> tmp99;
1579 56 : compiler::TNode<Number> tmp100;
1580 56 : compiler::TNode<Object> tmp101;
1581 56 : compiler::TNode<Number> tmp102;
1582 56 : compiler::TNode<Number> tmp103;
1583 56 : compiler::TNode<Object> tmp104;
1584 56 : compiler::TNode<Number> tmp105;
1585 56 : ca_.Bind(&block16, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105);
1586 56 : ca_.Goto(&block15, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105);
1587 : }
1588 :
1589 56 : if (block15.is_used()) {
1590 56 : compiler::TNode<Context> tmp106;
1591 56 : compiler::TNode<Object> tmp107;
1592 56 : compiler::TNode<JSReceiver> tmp108;
1593 56 : compiler::TNode<Number> tmp109;
1594 56 : compiler::TNode<Object> tmp110;
1595 56 : compiler::TNode<Number> tmp111;
1596 56 : compiler::TNode<Number> tmp112;
1597 56 : compiler::TNode<Object> tmp113;
1598 56 : compiler::TNode<Number> tmp114;
1599 56 : ca_.Bind(&block15, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114);
1600 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 153);
1601 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 159);
1602 56 : compiler::TNode<Number> tmp115;
1603 56 : USE(tmp115);
1604 56 : tmp115 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1605 112 : compiler::CodeAssemblerLabel label0(&ca_);
1606 112 : compiler::CodeAssemblerLabel label1(&ca_);
1607 56 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp114}, compiler::TNode<Number>{tmp115}, &label0, &label1);
1608 56 : if (label0.is_used()) {
1609 56 : ca_.Bind(&label0);
1610 56 : ca_.Goto(&block21, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp114);
1611 : }
1612 56 : if (label1.is_used()) {
1613 56 : ca_.Bind(&label1);
1614 56 : ca_.Goto(&block22, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp114);
1615 : }
1616 : }
1617 :
1618 56 : if (block21.is_used()) {
1619 56 : compiler::TNode<Context> tmp116;
1620 56 : compiler::TNode<Object> tmp117;
1621 56 : compiler::TNode<JSReceiver> tmp118;
1622 56 : compiler::TNode<Number> tmp119;
1623 56 : compiler::TNode<Object> tmp120;
1624 56 : compiler::TNode<Number> tmp121;
1625 56 : compiler::TNode<Number> tmp122;
1626 56 : compiler::TNode<Object> tmp123;
1627 56 : compiler::TNode<Number> tmp124;
1628 56 : compiler::TNode<Number> tmp125;
1629 56 : ca_.Bind(&block21, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125);
1630 56 : ca_.Goto(&block17, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124);
1631 : }
1632 :
1633 56 : if (block22.is_used()) {
1634 56 : compiler::TNode<Context> tmp126;
1635 56 : compiler::TNode<Object> tmp127;
1636 56 : compiler::TNode<JSReceiver> tmp128;
1637 56 : compiler::TNode<Number> tmp129;
1638 56 : compiler::TNode<Object> tmp130;
1639 56 : compiler::TNode<Number> tmp131;
1640 56 : compiler::TNode<Number> tmp132;
1641 56 : compiler::TNode<Object> tmp133;
1642 56 : compiler::TNode<Number> tmp134;
1643 56 : compiler::TNode<Number> tmp135;
1644 56 : ca_.Bind(&block22, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135);
1645 56 : ca_.Goto(&block18, tmp126, tmp127, tmp128, tmp129, tmp130, tmp131, tmp132, tmp133, tmp134);
1646 : }
1647 :
1648 56 : if (block17.is_used()) {
1649 56 : compiler::TNode<Context> tmp136;
1650 56 : compiler::TNode<Object> tmp137;
1651 56 : compiler::TNode<JSReceiver> tmp138;
1652 56 : compiler::TNode<Number> tmp139;
1653 56 : compiler::TNode<Object> tmp140;
1654 56 : compiler::TNode<Number> tmp141;
1655 56 : compiler::TNode<Number> tmp142;
1656 56 : compiler::TNode<Object> tmp143;
1657 56 : compiler::TNode<Number> tmp144;
1658 56 : ca_.Bind(&block17, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144);
1659 56 : compiler::TNode<Number> tmp145;
1660 56 : USE(tmp145);
1661 56 : tmp145 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp139}, compiler::TNode<Number>{tmp144}));
1662 56 : compiler::TNode<Number> tmp146;
1663 56 : USE(tmp146);
1664 56 : tmp146 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1665 56 : compiler::TNode<Number> tmp147;
1666 56 : USE(tmp147);
1667 56 : tmp147 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp145}, compiler::TNode<Number>{tmp146}));
1668 56 : ca_.Goto(&block20, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp147);
1669 : }
1670 :
1671 56 : if (block18.is_used()) {
1672 56 : compiler::TNode<Context> tmp148;
1673 56 : compiler::TNode<Object> tmp149;
1674 56 : compiler::TNode<JSReceiver> tmp150;
1675 56 : compiler::TNode<Number> tmp151;
1676 56 : compiler::TNode<Object> tmp152;
1677 56 : compiler::TNode<Number> tmp153;
1678 56 : compiler::TNode<Number> tmp154;
1679 56 : compiler::TNode<Object> tmp155;
1680 56 : compiler::TNode<Number> tmp156;
1681 56 : ca_.Bind(&block18, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156);
1682 56 : compiler::TNode<Number> tmp157;
1683 56 : USE(tmp157);
1684 56 : tmp157 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Min(compiler::TNode<Number>{tmp156}, compiler::TNode<Number>{tmp151}));
1685 56 : ca_.Goto(&block19, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157);
1686 : }
1687 :
1688 56 : if (block20.is_used()) {
1689 56 : compiler::TNode<Context> tmp158;
1690 56 : compiler::TNode<Object> tmp159;
1691 56 : compiler::TNode<JSReceiver> tmp160;
1692 56 : compiler::TNode<Number> tmp161;
1693 56 : compiler::TNode<Object> tmp162;
1694 56 : compiler::TNode<Number> tmp163;
1695 56 : compiler::TNode<Number> tmp164;
1696 56 : compiler::TNode<Object> tmp165;
1697 56 : compiler::TNode<Number> tmp166;
1698 56 : compiler::TNode<Number> tmp167;
1699 56 : ca_.Bind(&block20, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167);
1700 56 : ca_.Goto(&block19, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167);
1701 : }
1702 :
1703 56 : if (block19.is_used()) {
1704 56 : compiler::TNode<Context> tmp168;
1705 56 : compiler::TNode<Object> tmp169;
1706 56 : compiler::TNode<JSReceiver> tmp170;
1707 56 : compiler::TNode<Number> tmp171;
1708 56 : compiler::TNode<Object> tmp172;
1709 56 : compiler::TNode<Number> tmp173;
1710 56 : compiler::TNode<Number> tmp174;
1711 56 : compiler::TNode<Object> tmp175;
1712 56 : compiler::TNode<Number> tmp176;
1713 56 : compiler::TNode<Number> tmp177;
1714 56 : ca_.Bind(&block19, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177);
1715 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 158);
1716 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 162);
1717 56 : compiler::TNode<Number> tmp178;
1718 56 : USE(tmp178);
1719 56 : tmp178 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp177}, compiler::TNode<Number>{tmp174}));
1720 56 : compiler::TNode<Number> tmp179;
1721 56 : USE(tmp179);
1722 56 : tmp179 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1723 56 : compiler::TNode<Number> tmp180;
1724 56 : USE(tmp180);
1725 56 : tmp180 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp178}, compiler::TNode<Number>{tmp179}));
1726 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 172);
1727 56 : compiler::TNode<JSArray> tmp181;
1728 56 : USE(tmp181);
1729 112 : compiler::CodeAssemblerLabel label0(&ca_);
1730 56 : tmp181 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleFastSlice(compiler::TNode<Context>{tmp168}, compiler::TNode<Object>{tmp170}, compiler::TNode<Number>{tmp174}, compiler::TNode<Number>{tmp180}, &label0);
1731 56 : ca_.Goto(&block25, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp180, tmp168, tmp170, tmp174, tmp180, tmp181);
1732 56 : if (label0.is_used()) {
1733 56 : ca_.Bind(&label0);
1734 56 : ca_.Goto(&block26, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp180, tmp168, tmp170, tmp174, tmp180);
1735 : }
1736 : }
1737 :
1738 56 : if (block26.is_used()) {
1739 56 : compiler::TNode<Context> tmp182;
1740 56 : compiler::TNode<Object> tmp183;
1741 56 : compiler::TNode<JSReceiver> tmp184;
1742 56 : compiler::TNode<Number> tmp185;
1743 56 : compiler::TNode<Object> tmp186;
1744 56 : compiler::TNode<Number> tmp187;
1745 56 : compiler::TNode<Number> tmp188;
1746 56 : compiler::TNode<Object> tmp189;
1747 56 : compiler::TNode<Number> tmp190;
1748 56 : compiler::TNode<Number> tmp191;
1749 56 : compiler::TNode<Number> tmp192;
1750 56 : compiler::TNode<Context> tmp193;
1751 56 : compiler::TNode<JSReceiver> tmp194;
1752 56 : compiler::TNode<Number> tmp195;
1753 56 : compiler::TNode<Number> tmp196;
1754 56 : ca_.Bind(&block26, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196);
1755 56 : ca_.Goto(&block24, tmp182, tmp183, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190, tmp191, tmp192);
1756 : }
1757 :
1758 56 : if (block25.is_used()) {
1759 56 : compiler::TNode<Context> tmp197;
1760 56 : compiler::TNode<Object> tmp198;
1761 56 : compiler::TNode<JSReceiver> tmp199;
1762 56 : compiler::TNode<Number> tmp200;
1763 56 : compiler::TNode<Object> tmp201;
1764 56 : compiler::TNode<Number> tmp202;
1765 56 : compiler::TNode<Number> tmp203;
1766 56 : compiler::TNode<Object> tmp204;
1767 56 : compiler::TNode<Number> tmp205;
1768 56 : compiler::TNode<Number> tmp206;
1769 56 : compiler::TNode<Number> tmp207;
1770 56 : compiler::TNode<Context> tmp208;
1771 56 : compiler::TNode<JSReceiver> tmp209;
1772 56 : compiler::TNode<Number> tmp210;
1773 56 : compiler::TNode<Number> tmp211;
1774 56 : compiler::TNode<JSArray> tmp212;
1775 56 : ca_.Bind(&block25, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212);
1776 56 : arguments->PopAndReturn(tmp212);
1777 : }
1778 :
1779 56 : if (block24.is_used()) {
1780 56 : compiler::TNode<Context> tmp213;
1781 56 : compiler::TNode<Object> tmp214;
1782 56 : compiler::TNode<JSReceiver> tmp215;
1783 56 : compiler::TNode<Number> tmp216;
1784 56 : compiler::TNode<Object> tmp217;
1785 56 : compiler::TNode<Number> tmp218;
1786 56 : compiler::TNode<Number> tmp219;
1787 56 : compiler::TNode<Object> tmp220;
1788 56 : compiler::TNode<Number> tmp221;
1789 56 : compiler::TNode<Number> tmp222;
1790 56 : compiler::TNode<Number> tmp223;
1791 56 : ca_.Bind(&block24, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217, &tmp218, &tmp219, &tmp220, &tmp221, &tmp222, &tmp223);
1792 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 171);
1793 56 : ca_.Goto(&block23, tmp213, tmp214, tmp215, tmp216, tmp217, tmp218, tmp219, tmp220, tmp221, tmp222, tmp223);
1794 : }
1795 :
1796 56 : if (block23.is_used()) {
1797 56 : compiler::TNode<Context> tmp224;
1798 56 : compiler::TNode<Object> tmp225;
1799 56 : compiler::TNode<JSReceiver> tmp226;
1800 56 : compiler::TNode<Number> tmp227;
1801 56 : compiler::TNode<Object> tmp228;
1802 56 : compiler::TNode<Number> tmp229;
1803 56 : compiler::TNode<Number> tmp230;
1804 56 : compiler::TNode<Object> tmp231;
1805 56 : compiler::TNode<Number> tmp232;
1806 56 : compiler::TNode<Number> tmp233;
1807 56 : compiler::TNode<Number> tmp234;
1808 56 : ca_.Bind(&block23, &tmp224, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232, &tmp233, &tmp234);
1809 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 177);
1810 56 : compiler::TNode<JSReceiver> tmp235;
1811 56 : USE(tmp235);
1812 56 : tmp235 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ArraySpeciesCreate(compiler::TNode<Context>{tmp224}, compiler::TNode<Object>{tmp226}, compiler::TNode<Number>{tmp234}));
1813 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 180);
1814 56 : compiler::TNode<Number> tmp236;
1815 56 : USE(tmp236);
1816 56 : tmp236 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
1817 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 183);
1818 56 : ca_.Goto(&block29, tmp224, tmp225, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231, tmp232, tmp233, tmp234, tmp235, tmp236);
1819 : }
1820 :
1821 56 : if (block29.is_used()) {
1822 56 : compiler::TNode<Context> tmp237;
1823 56 : compiler::TNode<Object> tmp238;
1824 56 : compiler::TNode<JSReceiver> tmp239;
1825 56 : compiler::TNode<Number> tmp240;
1826 56 : compiler::TNode<Object> tmp241;
1827 56 : compiler::TNode<Number> tmp242;
1828 56 : compiler::TNode<Number> tmp243;
1829 56 : compiler::TNode<Object> tmp244;
1830 56 : compiler::TNode<Number> tmp245;
1831 56 : compiler::TNode<Number> tmp246;
1832 56 : compiler::TNode<Number> tmp247;
1833 56 : compiler::TNode<JSReceiver> tmp248;
1834 56 : compiler::TNode<Number> tmp249;
1835 56 : ca_.Bind(&block29, &tmp237, &tmp238, &tmp239, &tmp240, &tmp241, &tmp242, &tmp243, &tmp244, &tmp245, &tmp246, &tmp247, &tmp248, &tmp249);
1836 112 : compiler::CodeAssemblerLabel label0(&ca_);
1837 112 : compiler::CodeAssemblerLabel label1(&ca_);
1838 56 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp243}, compiler::TNode<Number>{tmp246}, &label0, &label1);
1839 56 : if (label0.is_used()) {
1840 56 : ca_.Bind(&label0);
1841 56 : ca_.Goto(&block30, tmp237, tmp238, tmp239, tmp240, tmp241, tmp242, tmp243, tmp244, tmp245, tmp246, tmp247, tmp248, tmp249, tmp243, tmp246);
1842 : }
1843 56 : if (label1.is_used()) {
1844 56 : ca_.Bind(&label1);
1845 56 : ca_.Goto(&block31, tmp237, tmp238, tmp239, tmp240, tmp241, tmp242, tmp243, tmp244, tmp245, tmp246, tmp247, tmp248, tmp249, tmp243, tmp246);
1846 : }
1847 : }
1848 :
1849 56 : if (block30.is_used()) {
1850 56 : compiler::TNode<Context> tmp250;
1851 56 : compiler::TNode<Object> tmp251;
1852 56 : compiler::TNode<JSReceiver> tmp252;
1853 56 : compiler::TNode<Number> tmp253;
1854 56 : compiler::TNode<Object> tmp254;
1855 56 : compiler::TNode<Number> tmp255;
1856 56 : compiler::TNode<Number> tmp256;
1857 56 : compiler::TNode<Object> tmp257;
1858 56 : compiler::TNode<Number> tmp258;
1859 56 : compiler::TNode<Number> tmp259;
1860 56 : compiler::TNode<Number> tmp260;
1861 56 : compiler::TNode<JSReceiver> tmp261;
1862 56 : compiler::TNode<Number> tmp262;
1863 56 : compiler::TNode<Number> tmp263;
1864 56 : compiler::TNode<Number> tmp264;
1865 56 : ca_.Bind(&block30, &tmp250, &tmp251, &tmp252, &tmp253, &tmp254, &tmp255, &tmp256, &tmp257, &tmp258, &tmp259, &tmp260, &tmp261, &tmp262, &tmp263, &tmp264);
1866 56 : ca_.Goto(&block27, tmp250, tmp251, tmp252, tmp253, tmp254, tmp255, tmp256, tmp257, tmp258, tmp259, tmp260, tmp261, tmp262);
1867 : }
1868 :
1869 56 : if (block31.is_used()) {
1870 56 : compiler::TNode<Context> tmp265;
1871 56 : compiler::TNode<Object> tmp266;
1872 56 : compiler::TNode<JSReceiver> tmp267;
1873 56 : compiler::TNode<Number> tmp268;
1874 56 : compiler::TNode<Object> tmp269;
1875 56 : compiler::TNode<Number> tmp270;
1876 56 : compiler::TNode<Number> tmp271;
1877 56 : compiler::TNode<Object> tmp272;
1878 56 : compiler::TNode<Number> tmp273;
1879 56 : compiler::TNode<Number> tmp274;
1880 56 : compiler::TNode<Number> tmp275;
1881 56 : compiler::TNode<JSReceiver> tmp276;
1882 56 : compiler::TNode<Number> tmp277;
1883 56 : compiler::TNode<Number> tmp278;
1884 56 : compiler::TNode<Number> tmp279;
1885 56 : ca_.Bind(&block31, &tmp265, &tmp266, &tmp267, &tmp268, &tmp269, &tmp270, &tmp271, &tmp272, &tmp273, &tmp274, &tmp275, &tmp276, &tmp277, &tmp278, &tmp279);
1886 56 : ca_.Goto(&block28, tmp265, tmp266, tmp267, tmp268, tmp269, tmp270, tmp271, tmp272, tmp273, tmp274, tmp275, tmp276, tmp277);
1887 : }
1888 :
1889 56 : if (block27.is_used()) {
1890 56 : compiler::TNode<Context> tmp280;
1891 56 : compiler::TNode<Object> tmp281;
1892 56 : compiler::TNode<JSReceiver> tmp282;
1893 56 : compiler::TNode<Number> tmp283;
1894 56 : compiler::TNode<Object> tmp284;
1895 56 : compiler::TNode<Number> tmp285;
1896 56 : compiler::TNode<Number> tmp286;
1897 56 : compiler::TNode<Object> tmp287;
1898 56 : compiler::TNode<Number> tmp288;
1899 56 : compiler::TNode<Number> tmp289;
1900 56 : compiler::TNode<Number> tmp290;
1901 56 : compiler::TNode<JSReceiver> tmp291;
1902 56 : compiler::TNode<Number> tmp292;
1903 56 : ca_.Bind(&block27, &tmp280, &tmp281, &tmp282, &tmp283, &tmp284, &tmp285, &tmp286, &tmp287, &tmp288, &tmp289, &tmp290, &tmp291, &tmp292);
1904 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 185);
1905 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 188);
1906 56 : compiler::TNode<Oddball> tmp293;
1907 56 : tmp293 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp280, tmp282, tmp286));
1908 56 : USE(tmp293);
1909 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 191);
1910 56 : compiler::TNode<Oddball> tmp294;
1911 56 : USE(tmp294);
1912 56 : tmp294 = BaseBuiltinsFromDSLAssembler(state_).True();
1913 56 : compiler::TNode<BoolT> tmp295;
1914 56 : USE(tmp295);
1915 56 : tmp295 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp293}, compiler::TNode<HeapObject>{tmp294}));
1916 56 : ca_.Branch(tmp295, &block32, &block33, tmp280, tmp281, tmp282, tmp283, tmp284, tmp285, tmp286, tmp287, tmp288, tmp289, tmp290, tmp291, tmp292, tmp286, tmp293);
1917 : }
1918 :
1919 56 : if (block32.is_used()) {
1920 56 : compiler::TNode<Context> tmp296;
1921 56 : compiler::TNode<Object> tmp297;
1922 56 : compiler::TNode<JSReceiver> tmp298;
1923 56 : compiler::TNode<Number> tmp299;
1924 56 : compiler::TNode<Object> tmp300;
1925 56 : compiler::TNode<Number> tmp301;
1926 56 : compiler::TNode<Number> tmp302;
1927 56 : compiler::TNode<Object> tmp303;
1928 56 : compiler::TNode<Number> tmp304;
1929 56 : compiler::TNode<Number> tmp305;
1930 56 : compiler::TNode<Number> tmp306;
1931 56 : compiler::TNode<JSReceiver> tmp307;
1932 56 : compiler::TNode<Number> tmp308;
1933 56 : compiler::TNode<Number> tmp309;
1934 56 : compiler::TNode<Oddball> tmp310;
1935 56 : ca_.Bind(&block32, &tmp296, &tmp297, &tmp298, &tmp299, &tmp300, &tmp301, &tmp302, &tmp303, &tmp304, &tmp305, &tmp306, &tmp307, &tmp308, &tmp309, &tmp310);
1936 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 193);
1937 56 : compiler::TNode<Object> tmp311;
1938 56 : USE(tmp311);
1939 56 : tmp311 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp296}, compiler::TNode<Object>{tmp298}, compiler::TNode<Object>{tmp309}));
1940 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 196);
1941 56 : compiler::TNode<Object> tmp312;
1942 56 : tmp312 = CodeStubAssembler(state_).CallBuiltin(Builtins::kFastCreateDataProperty, tmp296, tmp307, tmp308, tmp311);
1943 56 : USE(tmp312);
1944 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 191);
1945 56 : ca_.Goto(&block33, tmp296, tmp297, tmp298, tmp299, tmp300, tmp301, tmp302, tmp303, tmp304, tmp305, tmp306, tmp307, tmp308, tmp309, tmp310);
1946 : }
1947 :
1948 56 : if (block33.is_used()) {
1949 56 : compiler::TNode<Context> tmp313;
1950 56 : compiler::TNode<Object> tmp314;
1951 56 : compiler::TNode<JSReceiver> tmp315;
1952 56 : compiler::TNode<Number> tmp316;
1953 56 : compiler::TNode<Object> tmp317;
1954 56 : compiler::TNode<Number> tmp318;
1955 56 : compiler::TNode<Number> tmp319;
1956 56 : compiler::TNode<Object> tmp320;
1957 56 : compiler::TNode<Number> tmp321;
1958 56 : compiler::TNode<Number> tmp322;
1959 56 : compiler::TNode<Number> tmp323;
1960 56 : compiler::TNode<JSReceiver> tmp324;
1961 56 : compiler::TNode<Number> tmp325;
1962 56 : compiler::TNode<Number> tmp326;
1963 56 : compiler::TNode<Oddball> tmp327;
1964 56 : ca_.Bind(&block33, &tmp313, &tmp314, &tmp315, &tmp316, &tmp317, &tmp318, &tmp319, &tmp320, &tmp321, &tmp322, &tmp323, &tmp324, &tmp325, &tmp326, &tmp327);
1965 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 200);
1966 56 : compiler::TNode<Number> tmp328;
1967 56 : USE(tmp328);
1968 56 : tmp328 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
1969 56 : compiler::TNode<Number> tmp329;
1970 56 : USE(tmp329);
1971 56 : tmp329 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp319}, compiler::TNode<Number>{tmp328}));
1972 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 203);
1973 56 : compiler::TNode<Number> tmp330;
1974 56 : USE(tmp330);
1975 56 : tmp330 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
1976 56 : compiler::TNode<Number> tmp331;
1977 56 : USE(tmp331);
1978 56 : tmp331 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp325}, compiler::TNode<Number>{tmp330}));
1979 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 183);
1980 56 : ca_.Goto(&block29, tmp313, tmp314, tmp315, tmp316, tmp317, tmp318, tmp329, tmp320, tmp321, tmp322, tmp323, tmp324, tmp331);
1981 : }
1982 :
1983 56 : if (block28.is_used()) {
1984 56 : compiler::TNode<Context> tmp332;
1985 56 : compiler::TNode<Object> tmp333;
1986 56 : compiler::TNode<JSReceiver> tmp334;
1987 56 : compiler::TNode<Number> tmp335;
1988 56 : compiler::TNode<Object> tmp336;
1989 56 : compiler::TNode<Number> tmp337;
1990 56 : compiler::TNode<Number> tmp338;
1991 56 : compiler::TNode<Object> tmp339;
1992 56 : compiler::TNode<Number> tmp340;
1993 56 : compiler::TNode<Number> tmp341;
1994 56 : compiler::TNode<Number> tmp342;
1995 56 : compiler::TNode<JSReceiver> tmp343;
1996 56 : compiler::TNode<Number> tmp344;
1997 56 : ca_.Bind(&block28, &tmp332, &tmp333, &tmp334, &tmp335, &tmp336, &tmp337, &tmp338, &tmp339, &tmp340, &tmp341, &tmp342, &tmp343, &tmp344);
1998 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 207);
1999 56 : compiler::TNode<String> tmp345;
2000 56 : USE(tmp345);
2001 56 : tmp345 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
2002 56 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp332, tmp343, tmp345, tmp344);
2003 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 210);
2004 56 : arguments->PopAndReturn(tmp343);
2005 : }
2006 56 : }
2007 :
2008 : } // namespace internal
2009 87414 : } // namespace v8
2010 :
|