LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-string-from-dsl-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 824 824 100.0 %
Date: 2019-03-21 Functions: 14 14 100.0 %

          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             : 

Generated by: LCOV version 1.10