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