Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/js-generator.h"
10 : #include "src/objects/js-promise.h"
11 : #include "src/objects/js-regexp-string-iterator.h"
12 : #include "src/objects/module.h"
13 : #include "src/objects/stack-frame-info.h"
14 : #include "src/builtins/builtins-array-gen.h"
15 : #include "src/builtins/builtins-collections-gen.h"
16 : #include "src/builtins/builtins-data-view-gen.h"
17 : #include "src/builtins/builtins-iterator-gen.h"
18 : #include "src/builtins/builtins-proxy-gen.h"
19 : #include "src/builtins/builtins-regexp-gen.h"
20 : #include "src/builtins/builtins-typed-array-gen.h"
21 : #include "src/builtins/builtins-constructor-gen.h"
22 : #include "src/builtins/builtins-typed-array-gen.h"
23 : #include "src/builtins/builtins-typed-array-gen.h"
24 : #include "src/builtins/builtins-typed-array-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-typed-array-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "torque-generated/builtins-base-from-dsl-gen.h"
31 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
32 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
33 : #include "torque-generated/builtins-array-from-dsl-gen.h"
34 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
35 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
36 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
37 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
48 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
49 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
50 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
51 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
52 : #include "torque-generated/builtins-object-from-dsl-gen.h"
53 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
54 : #include "torque-generated/builtins-string-from-dsl-gen.h"
55 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
56 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
57 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
58 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
59 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
60 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
61 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
62 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
63 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
69 : #include "torque-generated/builtins-test-from-dsl-gen.h"
70 :
71 : namespace v8 {
72 : namespace internal {
73 :
74 112 : compiler::TNode<Oddball> StringBuiltinsFromDSLAssembler::TryFastStringCompareSequence(compiler::TNode<String> p_string, compiler::TNode<String> p_searchStr, compiler::TNode<Number> p_start, compiler::TNode<Smi> p_searchLength, compiler::CodeAssemblerLabel* label_Slow) {
75 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
76 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
77 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
78 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
79 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, String> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
80 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
81 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Number, Smi> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
82 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
83 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
84 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, Oddball> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 224 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 224 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, Oddball> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 112 : ca_.Goto(&block0, p_string, p_searchStr, p_start, p_searchLength);
91 :
92 112 : if (block0.is_used()) {
93 112 : compiler::TNode<String> tmp0;
94 112 : compiler::TNode<String> tmp1;
95 112 : compiler::TNode<Number> tmp2;
96 112 : compiler::TNode<Smi> tmp3;
97 112 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
98 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 9);
99 112 : compiler::TNode<String> tmp4;
100 112 : USE(tmp4);
101 224 : compiler::CodeAssemblerLabel label0(&ca_);
102 112 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast14ATDirectString(compiler::TNode<HeapObject>{tmp0}, &label0);
103 112 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp0, tmp4);
104 112 : if (label0.is_used()) {
105 112 : ca_.Bind(&label0);
106 112 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp0);
107 : }
108 : }
109 :
110 112 : if (block4.is_used()) {
111 112 : compiler::TNode<String> tmp5;
112 112 : compiler::TNode<String> tmp6;
113 112 : compiler::TNode<Number> tmp7;
114 112 : compiler::TNode<Smi> tmp8;
115 112 : compiler::TNode<String> tmp9;
116 112 : ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
117 112 : ca_.Goto(&block1);
118 : }
119 :
120 112 : if (block3.is_used()) {
121 112 : compiler::TNode<String> tmp10;
122 112 : compiler::TNode<String> tmp11;
123 112 : compiler::TNode<Number> tmp12;
124 112 : compiler::TNode<Smi> tmp13;
125 112 : compiler::TNode<String> tmp14;
126 112 : compiler::TNode<String> tmp15;
127 112 : ca_.Bind(&block3, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
128 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 10);
129 112 : compiler::TNode<String> tmp16;
130 112 : USE(tmp16);
131 224 : compiler::CodeAssemblerLabel label0(&ca_);
132 112 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast14ATDirectString(compiler::TNode<HeapObject>{tmp11}, &label0);
133 112 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp15, tmp11, tmp16);
134 112 : if (label0.is_used()) {
135 112 : ca_.Bind(&label0);
136 112 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp15, tmp11);
137 : }
138 : }
139 :
140 112 : if (block6.is_used()) {
141 112 : compiler::TNode<String> tmp17;
142 112 : compiler::TNode<String> tmp18;
143 112 : compiler::TNode<Number> tmp19;
144 112 : compiler::TNode<Smi> tmp20;
145 112 : compiler::TNode<String> tmp21;
146 112 : compiler::TNode<String> tmp22;
147 112 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22);
148 112 : ca_.Goto(&block1);
149 : }
150 :
151 112 : if (block5.is_used()) {
152 112 : compiler::TNode<String> tmp23;
153 112 : compiler::TNode<String> tmp24;
154 112 : compiler::TNode<Number> tmp25;
155 112 : compiler::TNode<Smi> tmp26;
156 112 : compiler::TNode<String> tmp27;
157 112 : compiler::TNode<String> tmp28;
158 112 : compiler::TNode<String> tmp29;
159 112 : ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
160 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 11);
161 112 : compiler::TNode<Smi> tmp30;
162 112 : USE(tmp30);
163 224 : compiler::CodeAssemblerLabel label0(&ca_);
164 112 : tmp30 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp25}, &label0);
165 112 : ca_.Goto(&block7, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp25, tmp30);
166 112 : if (label0.is_used()) {
167 112 : ca_.Bind(&label0);
168 112 : ca_.Goto(&block8, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp25);
169 : }
170 : }
171 :
172 112 : if (block8.is_used()) {
173 112 : compiler::TNode<String> tmp31;
174 112 : compiler::TNode<String> tmp32;
175 112 : compiler::TNode<Number> tmp33;
176 112 : compiler::TNode<Smi> tmp34;
177 112 : compiler::TNode<String> tmp35;
178 112 : compiler::TNode<String> tmp36;
179 112 : compiler::TNode<Number> tmp37;
180 112 : ca_.Bind(&block8, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37);
181 112 : ca_.Goto(&block1);
182 : }
183 :
184 112 : if (block7.is_used()) {
185 112 : compiler::TNode<String> tmp38;
186 112 : compiler::TNode<String> tmp39;
187 112 : compiler::TNode<Number> tmp40;
188 112 : compiler::TNode<Smi> tmp41;
189 112 : compiler::TNode<String> tmp42;
190 112 : compiler::TNode<String> tmp43;
191 112 : compiler::TNode<Number> tmp44;
192 112 : compiler::TNode<Smi> tmp45;
193 112 : ca_.Bind(&block7, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
194 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 13);
195 112 : compiler::TNode<IntPtrT> tmp46;
196 112 : USE(tmp46);
197 112 : tmp46 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
198 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 14);
199 112 : compiler::TNode<IntPtrT> tmp47;
200 112 : USE(tmp47);
201 112 : tmp47 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp45}));
202 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 15);
203 112 : compiler::TNode<IntPtrT> tmp48;
204 112 : USE(tmp48);
205 112 : tmp48 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp41}));
206 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 17);
207 112 : ca_.Goto(&block11, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp45, tmp46, tmp47, tmp48);
208 : }
209 :
210 112 : if (block11.is_used()) {
211 112 : compiler::TNode<String> tmp49;
212 112 : compiler::TNode<String> tmp50;
213 112 : compiler::TNode<Number> tmp51;
214 112 : compiler::TNode<Smi> tmp52;
215 112 : compiler::TNode<String> tmp53;
216 112 : compiler::TNode<String> tmp54;
217 112 : compiler::TNode<Smi> tmp55;
218 112 : compiler::TNode<IntPtrT> tmp56;
219 112 : compiler::TNode<IntPtrT> tmp57;
220 112 : compiler::TNode<IntPtrT> tmp58;
221 112 : ca_.Bind(&block11, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
222 112 : compiler::TNode<BoolT> tmp59;
223 112 : USE(tmp59);
224 112 : tmp59 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IntPtrLessThan(compiler::TNode<IntPtrT>{tmp56}, compiler::TNode<IntPtrT>{tmp58}));
225 112 : ca_.Branch(tmp59, &block9, &block10, tmp49, tmp50, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58);
226 : }
227 :
228 112 : if (block9.is_used()) {
229 112 : compiler::TNode<String> tmp60;
230 112 : compiler::TNode<String> tmp61;
231 112 : compiler::TNode<Number> tmp62;
232 112 : compiler::TNode<Smi> tmp63;
233 112 : compiler::TNode<String> tmp64;
234 112 : compiler::TNode<String> tmp65;
235 112 : compiler::TNode<Smi> tmp66;
236 112 : compiler::TNode<IntPtrT> tmp67;
237 112 : compiler::TNode<IntPtrT> tmp68;
238 112 : compiler::TNode<IntPtrT> tmp69;
239 112 : ca_.Bind(&block9, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69);
240 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 18);
241 112 : compiler::TNode<Int32T> tmp70;
242 112 : USE(tmp70);
243 112 : tmp70 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).StringCharCodeAt(compiler::TNode<String>{tmp65}, compiler::TNode<IntPtrT>{tmp67}));
244 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 19);
245 112 : compiler::TNode<Int32T> tmp71;
246 112 : USE(tmp71);
247 112 : tmp71 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).StringCharCodeAt(compiler::TNode<String>{tmp64}, compiler::TNode<IntPtrT>{tmp68}));
248 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 18);
249 112 : compiler::TNode<BoolT> tmp72;
250 112 : USE(tmp72);
251 112 : tmp72 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32NotEqual(compiler::TNode<Int32T>{tmp70}, compiler::TNode<Int32T>{tmp71}));
252 112 : ca_.Branch(tmp72, &block12, &block13, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68, tmp69);
253 : }
254 :
255 112 : if (block12.is_used()) {
256 112 : compiler::TNode<String> tmp73;
257 112 : compiler::TNode<String> tmp74;
258 112 : compiler::TNode<Number> tmp75;
259 112 : compiler::TNode<Smi> tmp76;
260 112 : compiler::TNode<String> tmp77;
261 112 : compiler::TNode<String> tmp78;
262 112 : compiler::TNode<Smi> tmp79;
263 112 : compiler::TNode<IntPtrT> tmp80;
264 112 : compiler::TNode<IntPtrT> tmp81;
265 112 : compiler::TNode<IntPtrT> tmp82;
266 112 : ca_.Bind(&block12, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82);
267 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 20);
268 112 : compiler::TNode<Oddball> tmp83;
269 112 : USE(tmp83);
270 112 : tmp83 = BaseBuiltinsFromDSLAssembler(state_).False();
271 112 : ca_.Goto(&block2, tmp73, tmp74, tmp75, tmp76, tmp83);
272 : }
273 :
274 112 : if (block13.is_used()) {
275 112 : compiler::TNode<String> tmp84;
276 112 : compiler::TNode<String> tmp85;
277 112 : compiler::TNode<Number> tmp86;
278 112 : compiler::TNode<Smi> tmp87;
279 112 : compiler::TNode<String> tmp88;
280 112 : compiler::TNode<String> tmp89;
281 112 : compiler::TNode<Smi> tmp90;
282 112 : compiler::TNode<IntPtrT> tmp91;
283 112 : compiler::TNode<IntPtrT> tmp92;
284 112 : compiler::TNode<IntPtrT> tmp93;
285 112 : ca_.Bind(&block13, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93);
286 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 23);
287 112 : compiler::TNode<IntPtrT> tmp94;
288 112 : USE(tmp94);
289 112 : tmp94 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
290 112 : compiler::TNode<IntPtrT> tmp95;
291 112 : USE(tmp95);
292 112 : tmp95 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).IntPtrAdd(compiler::TNode<IntPtrT>{tmp91}, compiler::TNode<IntPtrT>{tmp94}));
293 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 24);
294 112 : compiler::TNode<IntPtrT> tmp96;
295 112 : USE(tmp96);
296 112 : tmp96 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
297 112 : compiler::TNode<IntPtrT> tmp97;
298 112 : USE(tmp97);
299 112 : tmp97 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).IntPtrAdd(compiler::TNode<IntPtrT>{tmp92}, compiler::TNode<IntPtrT>{tmp96}));
300 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 17);
301 112 : ca_.Goto(&block11, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp95, tmp97, tmp93);
302 : }
303 :
304 112 : if (block10.is_used()) {
305 112 : compiler::TNode<String> tmp98;
306 112 : compiler::TNode<String> tmp99;
307 112 : compiler::TNode<Number> tmp100;
308 112 : compiler::TNode<Smi> tmp101;
309 112 : compiler::TNode<String> tmp102;
310 112 : compiler::TNode<String> tmp103;
311 112 : compiler::TNode<Smi> tmp104;
312 112 : compiler::TNode<IntPtrT> tmp105;
313 112 : compiler::TNode<IntPtrT> tmp106;
314 112 : compiler::TNode<IntPtrT> tmp107;
315 112 : ca_.Bind(&block10, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107);
316 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 26);
317 112 : compiler::TNode<Oddball> tmp108;
318 112 : USE(tmp108);
319 112 : tmp108 = BaseBuiltinsFromDSLAssembler(state_).True();
320 112 : ca_.Goto(&block2, tmp98, tmp99, tmp100, tmp101, tmp108);
321 : }
322 :
323 112 : if (block2.is_used()) {
324 112 : compiler::TNode<String> tmp109;
325 112 : compiler::TNode<String> tmp110;
326 112 : compiler::TNode<Number> tmp111;
327 112 : compiler::TNode<Smi> tmp112;
328 112 : compiler::TNode<Oddball> tmp113;
329 112 : ca_.Bind(&block2, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113);
330 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 6);
331 112 : ca_.Goto(&block14, tmp109, tmp110, tmp111, tmp112, tmp113);
332 : }
333 :
334 112 : if (block1.is_used()) {
335 112 : ca_.Bind(&block1);
336 112 : ca_.Goto(label_Slow);
337 : }
338 :
339 112 : compiler::TNode<String> tmp114;
340 112 : compiler::TNode<String> tmp115;
341 112 : compiler::TNode<Number> tmp116;
342 112 : compiler::TNode<Smi> tmp117;
343 112 : compiler::TNode<Oddball> tmp118;
344 112 : ca_.Bind(&block14, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118);
345 224 : return compiler::TNode<Oddball>{tmp118};
346 : }
347 :
348 336 : TF_BUILTIN(StringPrototypeEndsWith, CodeStubAssembler) {
349 112 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
350 56 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
351 56 : USE(parameter0);
352 56 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
353 56 : CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
354 56 : TNode<Object> parameter1 = arguments_impl.GetReceiver();
355 56 : auto arguments = &arguments_impl;
356 56 : USE(arguments);
357 56 : USE(parameter1);
358 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
359 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
360 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
361 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
362 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
363 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
364 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
365 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
366 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
367 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
368 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
369 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, String, String, Number, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
370 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, String, String, Number, Smi, Oddball> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
371 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
372 56 : ca_.Goto(&block0, parameter0, parameter1);
373 :
374 56 : if (block0.is_used()) {
375 56 : compiler::TNode<Context> tmp0;
376 56 : compiler::TNode<Object> tmp1;
377 56 : ca_.Bind(&block0, &tmp0, &tmp1);
378 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 32);
379 56 : compiler::TNode<IntPtrT> tmp2;
380 56 : USE(tmp2);
381 56 : tmp2 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
382 56 : compiler::TNode<Object> tmp3;
383 56 : USE(tmp3);
384 56 : tmp3 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp2}));
385 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 33);
386 56 : compiler::TNode<IntPtrT> tmp4;
387 56 : USE(tmp4);
388 56 : tmp4 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
389 56 : compiler::TNode<Object> tmp5;
390 56 : USE(tmp5);
391 56 : tmp5 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp4}));
392 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 36);
393 56 : compiler::TNode<Object> tmp6;
394 56 : USE(tmp6);
395 56 : tmp6 = ca_.UncheckedCast<Object>(StringBuiltinsFromDSLAssembler(state_).RequireObjectCoercible(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
396 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 39);
397 56 : compiler::TNode<String> tmp7;
398 56 : USE(tmp7);
399 56 : tmp7 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp6}));
400 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 43);
401 56 : compiler::TNode<BoolT> tmp8;
402 56 : USE(tmp8);
403 56 : tmp8 = ca_.UncheckedCast<BoolT>(RegExpBuiltinsAssembler(state_).IsRegExp(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp3}));
404 56 : ca_.Branch(tmp8, &block1, &block2, tmp0, tmp1, tmp3, tmp5, tmp6, tmp7);
405 : }
406 :
407 56 : if (block1.is_used()) {
408 56 : compiler::TNode<Context> tmp9;
409 56 : compiler::TNode<Object> tmp10;
410 56 : compiler::TNode<Object> tmp11;
411 56 : compiler::TNode<Object> tmp12;
412 56 : compiler::TNode<Object> tmp13;
413 56 : compiler::TNode<String> tmp14;
414 56 : ca_.Bind(&block1, &tmp9, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14);
415 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 44);
416 56 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp9}, MessageTemplate::kFirstArgumentNotRegExp, "String.prototype.endsWith");
417 : }
418 :
419 56 : if (block2.is_used()) {
420 56 : compiler::TNode<Context> tmp15;
421 56 : compiler::TNode<Object> tmp16;
422 56 : compiler::TNode<Object> tmp17;
423 56 : compiler::TNode<Object> tmp18;
424 56 : compiler::TNode<Object> tmp19;
425 56 : compiler::TNode<String> tmp20;
426 56 : ca_.Bind(&block2, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
427 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 48);
428 56 : compiler::TNode<String> tmp21;
429 56 : USE(tmp21);
430 56 : tmp21 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp15}, compiler::TNode<Object>{tmp17}));
431 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 51);
432 56 : compiler::TNode<Smi> tmp22;
433 56 : USE(tmp22);
434 56 : tmp22 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp20}));
435 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
436 56 : compiler::TNode<Oddball> tmp23;
437 56 : USE(tmp23);
438 56 : tmp23 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
439 56 : compiler::TNode<BoolT> tmp24;
440 56 : USE(tmp24);
441 56 : tmp24 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp18}, compiler::TNode<HeapObject>{tmp23}));
442 56 : ca_.Branch(tmp24, &block3, &block4, tmp15, tmp16, tmp17, tmp18, tmp19, tmp20, tmp21, tmp22);
443 : }
444 :
445 56 : if (block3.is_used()) {
446 56 : compiler::TNode<Context> tmp25;
447 56 : compiler::TNode<Object> tmp26;
448 56 : compiler::TNode<Object> tmp27;
449 56 : compiler::TNode<Object> tmp28;
450 56 : compiler::TNode<Object> tmp29;
451 56 : compiler::TNode<String> tmp30;
452 56 : compiler::TNode<String> tmp31;
453 56 : compiler::TNode<Number> tmp32;
454 56 : ca_.Bind(&block3, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32);
455 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 56);
456 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
457 56 : ca_.Goto(&block6, tmp25, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31, tmp32, tmp32);
458 : }
459 :
460 56 : if (block4.is_used()) {
461 56 : compiler::TNode<Context> tmp33;
462 56 : compiler::TNode<Object> tmp34;
463 56 : compiler::TNode<Object> tmp35;
464 56 : compiler::TNode<Object> tmp36;
465 56 : compiler::TNode<Object> tmp37;
466 56 : compiler::TNode<String> tmp38;
467 56 : compiler::TNode<String> tmp39;
468 56 : compiler::TNode<Number> tmp40;
469 56 : ca_.Bind(&block4, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40);
470 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 57);
471 56 : compiler::TNode<Number> tmp41;
472 56 : USE(tmp41);
473 56 : tmp41 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp33}, compiler::TNode<Object>{tmp36}));
474 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
475 56 : ca_.Goto(&block5, tmp33, tmp34, tmp35, tmp36, tmp37, tmp38, tmp39, tmp40, tmp41);
476 : }
477 :
478 56 : if (block6.is_used()) {
479 56 : compiler::TNode<Context> tmp42;
480 56 : compiler::TNode<Object> tmp43;
481 56 : compiler::TNode<Object> tmp44;
482 56 : compiler::TNode<Object> tmp45;
483 56 : compiler::TNode<Object> tmp46;
484 56 : compiler::TNode<String> tmp47;
485 56 : compiler::TNode<String> tmp48;
486 56 : compiler::TNode<Number> tmp49;
487 56 : compiler::TNode<Number> tmp50;
488 56 : ca_.Bind(&block6, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50);
489 56 : ca_.Goto(&block5, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50);
490 : }
491 :
492 56 : if (block5.is_used()) {
493 56 : compiler::TNode<Context> tmp51;
494 56 : compiler::TNode<Object> tmp52;
495 56 : compiler::TNode<Object> tmp53;
496 56 : compiler::TNode<Object> tmp54;
497 56 : compiler::TNode<Object> tmp55;
498 56 : compiler::TNode<String> tmp56;
499 56 : compiler::TNode<String> tmp57;
500 56 : compiler::TNode<Number> tmp58;
501 56 : compiler::TNode<Number> tmp59;
502 56 : ca_.Bind(&block5, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59);
503 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 60);
504 56 : compiler::TNode<Number> tmp60;
505 56 : USE(tmp60);
506 56 : tmp60 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
507 56 : compiler::TNode<Number> tmp61;
508 56 : USE(tmp61);
509 56 : tmp61 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMax(compiler::TNode<Number>{tmp59}, compiler::TNode<Number>{tmp60}));
510 56 : compiler::TNode<Number> tmp62;
511 56 : USE(tmp62);
512 56 : tmp62 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMin(compiler::TNode<Number>{tmp61}, compiler::TNode<Number>{tmp58}));
513 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 63);
514 56 : compiler::TNode<Smi> tmp63;
515 56 : USE(tmp63);
516 56 : tmp63 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp57}));
517 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 66);
518 56 : compiler::TNode<Number> tmp64;
519 56 : USE(tmp64);
520 56 : tmp64 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp62}, compiler::TNode<Number>{tmp63}));
521 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 69);
522 56 : compiler::TNode<Number> tmp65;
523 56 : USE(tmp65);
524 56 : tmp65 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
525 112 : compiler::CodeAssemblerLabel label0(&ca_);
526 112 : compiler::CodeAssemblerLabel label1(&ca_);
527 56 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp64}, compiler::TNode<Number>{tmp65}, &label0, &label1);
528 56 : if (label0.is_used()) {
529 56 : ca_.Bind(&label0);
530 56 : ca_.Goto(&block9, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp62, tmp63, tmp64, tmp64);
531 : }
532 56 : if (label1.is_used()) {
533 56 : ca_.Bind(&label1);
534 56 : ca_.Goto(&block10, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp62, tmp63, tmp64, tmp64);
535 : }
536 : }
537 :
538 56 : if (block9.is_used()) {
539 56 : compiler::TNode<Context> tmp66;
540 56 : compiler::TNode<Object> tmp67;
541 56 : compiler::TNode<Object> tmp68;
542 56 : compiler::TNode<Object> tmp69;
543 56 : compiler::TNode<Object> tmp70;
544 56 : compiler::TNode<String> tmp71;
545 56 : compiler::TNode<String> tmp72;
546 56 : compiler::TNode<Number> tmp73;
547 56 : compiler::TNode<Number> tmp74;
548 56 : compiler::TNode<Number> tmp75;
549 56 : compiler::TNode<Smi> tmp76;
550 56 : compiler::TNode<Number> tmp77;
551 56 : compiler::TNode<Number> tmp78;
552 56 : ca_.Bind(&block9, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78);
553 56 : ca_.Goto(&block7, tmp66, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77);
554 : }
555 :
556 56 : if (block10.is_used()) {
557 56 : compiler::TNode<Context> tmp79;
558 56 : compiler::TNode<Object> tmp80;
559 56 : compiler::TNode<Object> tmp81;
560 56 : compiler::TNode<Object> tmp82;
561 56 : compiler::TNode<Object> tmp83;
562 56 : compiler::TNode<String> tmp84;
563 56 : compiler::TNode<String> tmp85;
564 56 : compiler::TNode<Number> tmp86;
565 56 : compiler::TNode<Number> tmp87;
566 56 : compiler::TNode<Number> tmp88;
567 56 : compiler::TNode<Smi> tmp89;
568 56 : compiler::TNode<Number> tmp90;
569 56 : compiler::TNode<Number> tmp91;
570 56 : ca_.Bind(&block10, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91);
571 56 : ca_.Goto(&block8, tmp79, tmp80, tmp81, tmp82, tmp83, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90);
572 : }
573 :
574 56 : if (block7.is_used()) {
575 56 : compiler::TNode<Context> tmp92;
576 56 : compiler::TNode<Object> tmp93;
577 56 : compiler::TNode<Object> tmp94;
578 56 : compiler::TNode<Object> tmp95;
579 56 : compiler::TNode<Object> tmp96;
580 56 : compiler::TNode<String> tmp97;
581 56 : compiler::TNode<String> tmp98;
582 56 : compiler::TNode<Number> tmp99;
583 56 : compiler::TNode<Number> tmp100;
584 56 : compiler::TNode<Number> tmp101;
585 56 : compiler::TNode<Smi> tmp102;
586 56 : compiler::TNode<Number> tmp103;
587 56 : ca_.Bind(&block7, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103);
588 56 : compiler::TNode<Oddball> tmp104;
589 56 : USE(tmp104);
590 56 : tmp104 = BaseBuiltinsFromDSLAssembler(state_).False();
591 56 : arguments->PopAndReturn(tmp104);
592 : }
593 :
594 56 : if (block8.is_used()) {
595 56 : compiler::TNode<Context> tmp105;
596 56 : compiler::TNode<Object> tmp106;
597 56 : compiler::TNode<Object> tmp107;
598 56 : compiler::TNode<Object> tmp108;
599 56 : compiler::TNode<Object> tmp109;
600 56 : compiler::TNode<String> tmp110;
601 56 : compiler::TNode<String> tmp111;
602 56 : compiler::TNode<Number> tmp112;
603 56 : compiler::TNode<Number> tmp113;
604 56 : compiler::TNode<Number> tmp114;
605 56 : compiler::TNode<Smi> tmp115;
606 56 : compiler::TNode<Number> tmp116;
607 56 : ca_.Bind(&block8, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116);
608 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 78);
609 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 77);
610 56 : compiler::TNode<Oddball> tmp117;
611 56 : USE(tmp117);
612 112 : compiler::CodeAssemblerLabel label0(&ca_);
613 56 : tmp117 = StringBuiltinsFromDSLAssembler(state_).TryFastStringCompareSequence(compiler::TNode<String>{tmp110}, compiler::TNode<String>{tmp111}, compiler::TNode<Number>{tmp116}, compiler::TNode<Smi>{tmp115}, &label0);
614 56 : ca_.Goto(&block13, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp110, tmp111, tmp116, tmp115, tmp117);
615 56 : if (label0.is_used()) {
616 56 : ca_.Bind(&label0);
617 56 : ca_.Goto(&block14, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp110, tmp111, tmp116, tmp115);
618 : }
619 : }
620 :
621 56 : if (block14.is_used()) {
622 56 : compiler::TNode<Context> tmp118;
623 56 : compiler::TNode<Object> tmp119;
624 56 : compiler::TNode<Object> tmp120;
625 56 : compiler::TNode<Object> tmp121;
626 56 : compiler::TNode<Object> tmp122;
627 56 : compiler::TNode<String> tmp123;
628 56 : compiler::TNode<String> tmp124;
629 56 : compiler::TNode<Number> tmp125;
630 56 : compiler::TNode<Number> tmp126;
631 56 : compiler::TNode<Number> tmp127;
632 56 : compiler::TNode<Smi> tmp128;
633 56 : compiler::TNode<Number> tmp129;
634 56 : compiler::TNode<String> tmp130;
635 56 : compiler::TNode<String> tmp131;
636 56 : compiler::TNode<Number> tmp132;
637 56 : compiler::TNode<Smi> tmp133;
638 56 : ca_.Bind(&block14, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133);
639 56 : ca_.Goto(&block12, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124, tmp125, tmp126, tmp127, tmp128, tmp129);
640 : }
641 :
642 56 : if (block13.is_used()) {
643 56 : compiler::TNode<Context> tmp134;
644 56 : compiler::TNode<Object> tmp135;
645 56 : compiler::TNode<Object> tmp136;
646 56 : compiler::TNode<Object> tmp137;
647 56 : compiler::TNode<Object> tmp138;
648 56 : compiler::TNode<String> tmp139;
649 56 : compiler::TNode<String> tmp140;
650 56 : compiler::TNode<Number> tmp141;
651 56 : compiler::TNode<Number> tmp142;
652 56 : compiler::TNode<Number> tmp143;
653 56 : compiler::TNode<Smi> tmp144;
654 56 : compiler::TNode<Number> tmp145;
655 56 : compiler::TNode<String> tmp146;
656 56 : compiler::TNode<String> tmp147;
657 56 : compiler::TNode<Number> tmp148;
658 56 : compiler::TNode<Smi> tmp149;
659 56 : compiler::TNode<Oddball> tmp150;
660 56 : ca_.Bind(&block13, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150);
661 56 : arguments->PopAndReturn(tmp150);
662 : }
663 :
664 56 : if (block12.is_used()) {
665 56 : compiler::TNode<Context> tmp151;
666 56 : compiler::TNode<Object> tmp152;
667 56 : compiler::TNode<Object> tmp153;
668 56 : compiler::TNode<Object> tmp154;
669 56 : compiler::TNode<Object> tmp155;
670 56 : compiler::TNode<String> tmp156;
671 56 : compiler::TNode<String> tmp157;
672 56 : compiler::TNode<Number> tmp158;
673 56 : compiler::TNode<Number> tmp159;
674 56 : compiler::TNode<Number> tmp160;
675 56 : compiler::TNode<Smi> tmp161;
676 56 : compiler::TNode<Number> tmp162;
677 56 : ca_.Bind(&block12, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162);
678 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 82);
679 56 : compiler::TNode<Oddball> tmp163;
680 56 : tmp163 = TORQUE_CAST(CodeStubAssembler(state_).CallRuntime(Runtime::kStringCompareSequence, tmp151, tmp156, tmp157, tmp162));
681 56 : USE(tmp163);
682 56 : arguments->PopAndReturn(tmp163);
683 : }
684 56 : }
685 :
686 112 : compiler::TNode<Object> StringBuiltinsFromDSLAssembler::RequireObjectCoercible(compiler::TNode<Context> p_context, compiler::TNode<Object> p_argument) {
687 224 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
688 224 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
689 224 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
690 224 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
691 224 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
692 112 : ca_.Goto(&block0, p_context, p_argument);
693 :
694 112 : if (block0.is_used()) {
695 112 : compiler::TNode<Context> tmp0;
696 112 : compiler::TNode<Object> tmp1;
697 112 : ca_.Bind(&block0, &tmp0, &tmp1);
698 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 14);
699 112 : compiler::TNode<BoolT> tmp2;
700 112 : USE(tmp2);
701 112 : tmp2 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsNullOrUndefined(compiler::TNode<Object>{tmp1}));
702 112 : ca_.Branch(tmp2, &block2, &block3, tmp0, tmp1);
703 : }
704 :
705 112 : if (block2.is_used()) {
706 112 : compiler::TNode<Context> tmp3;
707 112 : compiler::TNode<Object> tmp4;
708 112 : ca_.Bind(&block2, &tmp3, &tmp4);
709 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 15);
710 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp3}, MessageTemplate::kCalledOnNullOrUndefined, "String.prototype.startsWith");
711 : }
712 :
713 112 : if (block3.is_used()) {
714 112 : compiler::TNode<Context> tmp5;
715 112 : compiler::TNode<Object> tmp6;
716 112 : ca_.Bind(&block3, &tmp5, &tmp6);
717 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 17);
718 112 : ca_.Goto(&block1, tmp5, tmp6, tmp6);
719 : }
720 :
721 112 : if (block1.is_used()) {
722 112 : compiler::TNode<Context> tmp7;
723 112 : compiler::TNode<Object> tmp8;
724 112 : compiler::TNode<Object> tmp9;
725 112 : ca_.Bind(&block1, &tmp7, &tmp8, &tmp9);
726 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 12);
727 112 : ca_.Goto(&block4, tmp7, tmp8, tmp9);
728 : }
729 :
730 112 : compiler::TNode<Context> tmp10;
731 112 : compiler::TNode<Object> tmp11;
732 112 : compiler::TNode<Object> tmp12;
733 112 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12);
734 224 : return compiler::TNode<Object>{tmp12};
735 : }
736 :
737 336 : TF_BUILTIN(StringPrototypeStartsWith, CodeStubAssembler) {
738 112 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
739 56 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
740 56 : USE(parameter0);
741 56 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
742 56 : CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
743 56 : TNode<Object> parameter1 = arguments_impl.GetReceiver();
744 56 : auto arguments = &arguments_impl;
745 56 : USE(arguments);
746 56 : USE(parameter1);
747 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
748 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
749 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
750 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
751 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
752 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
753 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
754 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, String, String, Number, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
755 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi, String, String, Number, Smi, Oddball> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
756 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, Object, Object, String, String, Number, Number, Number, Smi> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
757 56 : ca_.Goto(&block0, parameter0, parameter1);
758 :
759 56 : if (block0.is_used()) {
760 56 : compiler::TNode<Context> tmp0;
761 56 : compiler::TNode<Object> tmp1;
762 56 : ca_.Bind(&block0, &tmp0, &tmp1);
763 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 23);
764 56 : compiler::TNode<IntPtrT> tmp2;
765 56 : USE(tmp2);
766 56 : tmp2 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
767 56 : compiler::TNode<Object> tmp3;
768 56 : USE(tmp3);
769 56 : tmp3 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp2}));
770 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 24);
771 56 : compiler::TNode<IntPtrT> tmp4;
772 56 : USE(tmp4);
773 56 : tmp4 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
774 56 : compiler::TNode<Object> tmp5;
775 56 : USE(tmp5);
776 56 : tmp5 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(arguments, compiler::TNode<IntPtrT>{tmp4}));
777 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 27);
778 56 : compiler::TNode<Object> tmp6;
779 56 : USE(tmp6);
780 56 : tmp6 = ca_.UncheckedCast<Object>(StringBuiltinsFromDSLAssembler(state_).RequireObjectCoercible(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
781 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 30);
782 56 : compiler::TNode<String> tmp7;
783 56 : USE(tmp7);
784 56 : tmp7 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp6}));
785 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 34);
786 56 : compiler::TNode<BoolT> tmp8;
787 56 : USE(tmp8);
788 56 : tmp8 = ca_.UncheckedCast<BoolT>(RegExpBuiltinsAssembler(state_).IsRegExp(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp3}));
789 56 : ca_.Branch(tmp8, &block1, &block2, tmp0, tmp1, tmp3, tmp5, tmp6, tmp7);
790 : }
791 :
792 56 : if (block1.is_used()) {
793 56 : compiler::TNode<Context> tmp9;
794 56 : compiler::TNode<Object> tmp10;
795 56 : compiler::TNode<Object> tmp11;
796 56 : compiler::TNode<Object> tmp12;
797 56 : compiler::TNode<Object> tmp13;
798 56 : compiler::TNode<String> tmp14;
799 56 : ca_.Bind(&block1, &tmp9, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14);
800 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 35);
801 56 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp9}, MessageTemplate::kFirstArgumentNotRegExp, "String.prototype.startsWith");
802 : }
803 :
804 56 : if (block2.is_used()) {
805 56 : compiler::TNode<Context> tmp15;
806 56 : compiler::TNode<Object> tmp16;
807 56 : compiler::TNode<Object> tmp17;
808 56 : compiler::TNode<Object> tmp18;
809 56 : compiler::TNode<Object> tmp19;
810 56 : compiler::TNode<String> tmp20;
811 56 : ca_.Bind(&block2, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
812 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 39);
813 56 : compiler::TNode<String> tmp21;
814 56 : USE(tmp21);
815 56 : tmp21 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp15}, compiler::TNode<Object>{tmp17}));
816 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 42);
817 56 : compiler::TNode<Number> tmp22;
818 56 : USE(tmp22);
819 56 : tmp22 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp15}, compiler::TNode<Object>{tmp18}));
820 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 46);
821 56 : compiler::TNode<Smi> tmp23;
822 56 : USE(tmp23);
823 56 : tmp23 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp20}));
824 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 49);
825 56 : compiler::TNode<Number> tmp24;
826 56 : USE(tmp24);
827 56 : tmp24 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
828 56 : compiler::TNode<Number> tmp25;
829 56 : USE(tmp25);
830 56 : tmp25 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMax(compiler::TNode<Number>{tmp22}, compiler::TNode<Number>{tmp24}));
831 56 : compiler::TNode<Number> tmp26;
832 56 : USE(tmp26);
833 56 : tmp26 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMin(compiler::TNode<Number>{tmp25}, compiler::TNode<Number>{tmp23}));
834 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 52);
835 56 : compiler::TNode<Smi> tmp27;
836 56 : USE(tmp27);
837 56 : tmp27 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp21}));
838 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 55);
839 56 : compiler::TNode<Number> tmp28;
840 56 : USE(tmp28);
841 56 : tmp28 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp27}, compiler::TNode<Number>{tmp26}));
842 112 : compiler::CodeAssemblerLabel label0(&ca_);
843 112 : compiler::CodeAssemblerLabel label1(&ca_);
844 56 : CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp28}, compiler::TNode<Number>{tmp23}, &label0, &label1);
845 56 : if (label0.is_used()) {
846 56 : ca_.Bind(&label0);
847 56 : ca_.Goto(&block5, tmp15, tmp16, tmp17, tmp18, tmp19, tmp20, tmp21, tmp22, tmp23, tmp26, tmp27, tmp28, tmp23);
848 : }
849 56 : if (label1.is_used()) {
850 56 : ca_.Bind(&label1);
851 56 : ca_.Goto(&block6, tmp15, tmp16, tmp17, tmp18, tmp19, tmp20, tmp21, tmp22, tmp23, tmp26, tmp27, tmp28, tmp23);
852 : }
853 : }
854 :
855 56 : if (block5.is_used()) {
856 56 : compiler::TNode<Context> tmp29;
857 56 : compiler::TNode<Object> tmp30;
858 56 : compiler::TNode<Object> tmp31;
859 56 : compiler::TNode<Object> tmp32;
860 56 : compiler::TNode<Object> tmp33;
861 56 : compiler::TNode<String> tmp34;
862 56 : compiler::TNode<String> tmp35;
863 56 : compiler::TNode<Number> tmp36;
864 56 : compiler::TNode<Number> tmp37;
865 56 : compiler::TNode<Number> tmp38;
866 56 : compiler::TNode<Smi> tmp39;
867 56 : compiler::TNode<Number> tmp40;
868 56 : compiler::TNode<Number> tmp41;
869 56 : ca_.Bind(&block5, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41);
870 56 : ca_.Goto(&block3, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37, tmp38, tmp39);
871 : }
872 :
873 56 : if (block6.is_used()) {
874 56 : compiler::TNode<Context> tmp42;
875 56 : compiler::TNode<Object> tmp43;
876 56 : compiler::TNode<Object> tmp44;
877 56 : compiler::TNode<Object> tmp45;
878 56 : compiler::TNode<Object> tmp46;
879 56 : compiler::TNode<String> tmp47;
880 56 : compiler::TNode<String> tmp48;
881 56 : compiler::TNode<Number> tmp49;
882 56 : compiler::TNode<Number> tmp50;
883 56 : compiler::TNode<Number> tmp51;
884 56 : compiler::TNode<Smi> tmp52;
885 56 : compiler::TNode<Number> tmp53;
886 56 : compiler::TNode<Number> tmp54;
887 56 : ca_.Bind(&block6, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54);
888 56 : ca_.Goto(&block4, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51, tmp52);
889 : }
890 :
891 56 : if (block3.is_used()) {
892 56 : compiler::TNode<Context> tmp55;
893 56 : compiler::TNode<Object> tmp56;
894 56 : compiler::TNode<Object> tmp57;
895 56 : compiler::TNode<Object> tmp58;
896 56 : compiler::TNode<Object> tmp59;
897 56 : compiler::TNode<String> tmp60;
898 56 : compiler::TNode<String> tmp61;
899 56 : compiler::TNode<Number> tmp62;
900 56 : compiler::TNode<Number> tmp63;
901 56 : compiler::TNode<Number> tmp64;
902 56 : compiler::TNode<Smi> tmp65;
903 56 : ca_.Bind(&block3, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65);
904 56 : compiler::TNode<Oddball> tmp66;
905 56 : USE(tmp66);
906 56 : tmp66 = BaseBuiltinsFromDSLAssembler(state_).False();
907 56 : arguments->PopAndReturn(tmp66);
908 : }
909 :
910 56 : if (block4.is_used()) {
911 56 : compiler::TNode<Context> tmp67;
912 56 : compiler::TNode<Object> tmp68;
913 56 : compiler::TNode<Object> tmp69;
914 56 : compiler::TNode<Object> tmp70;
915 56 : compiler::TNode<Object> tmp71;
916 56 : compiler::TNode<String> tmp72;
917 56 : compiler::TNode<String> tmp73;
918 56 : compiler::TNode<Number> tmp74;
919 56 : compiler::TNode<Number> tmp75;
920 56 : compiler::TNode<Number> tmp76;
921 56 : compiler::TNode<Smi> tmp77;
922 56 : ca_.Bind(&block4, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77);
923 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 64);
924 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 63);
925 56 : compiler::TNode<Oddball> tmp78;
926 56 : USE(tmp78);
927 112 : compiler::CodeAssemblerLabel label0(&ca_);
928 56 : tmp78 = StringBuiltinsFromDSLAssembler(state_).TryFastStringCompareSequence(compiler::TNode<String>{tmp72}, compiler::TNode<String>{tmp73}, compiler::TNode<Number>{tmp76}, compiler::TNode<Smi>{tmp77}, &label0);
929 56 : ca_.Goto(&block9, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp72, tmp73, tmp76, tmp77, tmp78);
930 56 : if (label0.is_used()) {
931 56 : ca_.Bind(&label0);
932 56 : ca_.Goto(&block10, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp72, tmp73, tmp76, tmp77);
933 : }
934 : }
935 :
936 56 : if (block10.is_used()) {
937 56 : compiler::TNode<Context> tmp79;
938 56 : compiler::TNode<Object> tmp80;
939 56 : compiler::TNode<Object> tmp81;
940 56 : compiler::TNode<Object> tmp82;
941 56 : compiler::TNode<Object> tmp83;
942 56 : compiler::TNode<String> tmp84;
943 56 : compiler::TNode<String> tmp85;
944 56 : compiler::TNode<Number> tmp86;
945 56 : compiler::TNode<Number> tmp87;
946 56 : compiler::TNode<Number> tmp88;
947 56 : compiler::TNode<Smi> tmp89;
948 56 : compiler::TNode<String> tmp90;
949 56 : compiler::TNode<String> tmp91;
950 56 : compiler::TNode<Number> tmp92;
951 56 : compiler::TNode<Smi> tmp93;
952 56 : ca_.Bind(&block10, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93);
953 56 : ca_.Goto(&block8, tmp79, tmp80, tmp81, tmp82, tmp83, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89);
954 : }
955 :
956 56 : if (block9.is_used()) {
957 56 : compiler::TNode<Context> tmp94;
958 56 : compiler::TNode<Object> tmp95;
959 56 : compiler::TNode<Object> tmp96;
960 56 : compiler::TNode<Object> tmp97;
961 56 : compiler::TNode<Object> tmp98;
962 56 : compiler::TNode<String> tmp99;
963 56 : compiler::TNode<String> tmp100;
964 56 : compiler::TNode<Number> tmp101;
965 56 : compiler::TNode<Number> tmp102;
966 56 : compiler::TNode<Number> tmp103;
967 56 : compiler::TNode<Smi> tmp104;
968 56 : compiler::TNode<String> tmp105;
969 56 : compiler::TNode<String> tmp106;
970 56 : compiler::TNode<Number> tmp107;
971 56 : compiler::TNode<Smi> tmp108;
972 56 : compiler::TNode<Oddball> tmp109;
973 56 : ca_.Bind(&block9, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109);
974 56 : arguments->PopAndReturn(tmp109);
975 : }
976 :
977 56 : if (block8.is_used()) {
978 56 : compiler::TNode<Context> tmp110;
979 56 : compiler::TNode<Object> tmp111;
980 56 : compiler::TNode<Object> tmp112;
981 56 : compiler::TNode<Object> tmp113;
982 56 : compiler::TNode<Object> tmp114;
983 56 : compiler::TNode<String> tmp115;
984 56 : compiler::TNode<String> tmp116;
985 56 : compiler::TNode<Number> tmp117;
986 56 : compiler::TNode<Number> tmp118;
987 56 : compiler::TNode<Number> tmp119;
988 56 : compiler::TNode<Smi> tmp120;
989 56 : ca_.Bind(&block8, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120);
990 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 68);
991 56 : compiler::TNode<Oddball> tmp121;
992 56 : tmp121 = TORQUE_CAST(CodeStubAssembler(state_).CallRuntime(Runtime::kStringCompareSequence, tmp110, tmp115, tmp116, tmp119));
993 56 : USE(tmp121);
994 56 : arguments->PopAndReturn(tmp121);
995 : }
996 56 : }
997 :
998 : } // namespace internal
999 87414 : } // namespace v8
1000 :
|