LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-array-unshift-from-dsl-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 491 491 100.0 %
Date: 2019-02-19 Functions: 9 9 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/builtins/builtins-array-gen.h"
      10             : #include "src/builtins/builtins-collections-gen.h"
      11             : #include "src/builtins/builtins-data-view-gen.h"
      12             : #include "src/builtins/builtins-iterator-gen.h"
      13             : #include "src/builtins/builtins-regexp-gen.h"
      14             : #include "src/builtins/builtins-typed-array-gen.h"
      15             : #include "src/builtins/builtins-constructor-gen.h"
      16             : #include "torque-generated/builtins-base-from-dsl-gen.h"
      17             : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
      18             : #include "torque-generated/builtins-array-from-dsl-gen.h"
      19             : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
      20             : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
      21             : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
      22             : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
      23             : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
      24             : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
      25             : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
      26             : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
      27             : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
      28             : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
      29             : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
      30             : #include "torque-generated/builtins-collections-from-dsl-gen.h"
      31             : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
      32             : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
      33             : #include "torque-generated/builtins-object-from-dsl-gen.h"
      34             : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
      35             : #include "torque-generated/builtins-string-from-dsl-gen.h"
      36             : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
      37             : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
      38             : #include "torque-generated/builtins-test-from-dsl-gen.h"
      39             : 
      40             : namespace v8 {
      41             : namespace internal {
      42             : 
      43          56 : void ArrayUnshiftBuiltinsFromDSLAssembler::TryFastArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, CodeStubArguments* p_arguments, compiler::CodeAssemblerLabel* label_Slow) {
      44          56 :   compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      45         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      46         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      47         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Map> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      48         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Map> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      49         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Map, Map> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      50         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Map, Map> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      51         112 :   compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      52          56 :     ca_.Goto(&block0, p_context, p_receiver);
      53             : 
      54          56 :   if (block0.is_used()) {
      55          56 :     compiler::TNode<Context> tmp0;
      56          56 :     compiler::TNode<Object> tmp1;
      57          56 :     ca_.Bind(&block0, &tmp0, &tmp1);
      58          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 11);
      59          56 :     compiler::TNode<JSArray> tmp2;
      60          56 :     USE(tmp2);
      61          56 :     compiler::CodeAssemblerLabel label0(&ca_);
      62          56 :     tmp2 = BaseBuiltinsFromDSLAssembler(state_).Cast13ATFastJSArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
      63          56 :     ca_.Goto(&block2, tmp0, tmp1, tmp1, tmp2);
      64          56 :     if (label0.is_used()) {
      65          56 :       ca_.Bind(&label0);
      66          56 :       ca_.Goto(&block3, tmp0, tmp1, tmp1);
      67          56 :     }
      68             :   }
      69             : 
      70          56 :   if (block3.is_used()) {
      71          56 :     compiler::TNode<Context> tmp3;
      72          56 :     compiler::TNode<Object> tmp4;
      73          56 :     compiler::TNode<Object> tmp5;
      74          56 :     ca_.Bind(&block3, &tmp3, &tmp4, &tmp5);
      75          56 :     ca_.Goto(&block1);
      76             :   }
      77             : 
      78          56 :   if (block2.is_used()) {
      79          56 :     compiler::TNode<Context> tmp6;
      80          56 :     compiler::TNode<Object> tmp7;
      81          56 :     compiler::TNode<Object> tmp8;
      82          56 :     compiler::TNode<JSArray> tmp9;
      83          56 :     ca_.Bind(&block2, &tmp6, &tmp7, &tmp8, &tmp9);
      84          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 12);
      85          56 :     ArrayBuiltinsFromDSLAssembler(state_).EnsureWriteableFastElements(compiler::TNode<Context>{tmp6}, compiler::TNode<JSArray>{tmp9});
      86          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 14);
      87          56 :     compiler::TNode<Map> tmp10;
      88          56 :     USE(tmp10);
      89          56 :     tmp10 = ca_.UncheckedCast<Map>(BaseBuiltinsFromDSLAssembler(state_).LoadHeapObjectMap(compiler::TNode<HeapObject>{tmp9}));
      90          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 15);
      91          56 :     compiler::TNode<BoolT> tmp11;
      92          56 :     USE(tmp11);
      93          56 :     tmp11 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsExtensibleMap(compiler::TNode<Map>{tmp10}));
      94          56 :     compiler::TNode<BoolT> tmp12;
      95          56 :     USE(tmp12);
      96          56 :     tmp12 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32BinaryNot(compiler::TNode<BoolT>{tmp11}));
      97          56 :     ca_.Branch(tmp12, &block4, &block5, tmp6, tmp7, tmp9, tmp10);
      98             :   }
      99             : 
     100          56 :   if (block4.is_used()) {
     101          56 :     compiler::TNode<Context> tmp13;
     102          56 :     compiler::TNode<Object> tmp14;
     103          56 :     compiler::TNode<JSArray> tmp15;
     104          56 :     compiler::TNode<Map> tmp16;
     105          56 :     ca_.Bind(&block4, &tmp13, &tmp14, &tmp15, &tmp16);
     106          56 :     ca_.Goto(&block1);
     107             :   }
     108             : 
     109          56 :   if (block5.is_used()) {
     110          56 :     compiler::TNode<Context> tmp17;
     111          56 :     compiler::TNode<Object> tmp18;
     112          56 :     compiler::TNode<JSArray> tmp19;
     113          56 :     compiler::TNode<Map> tmp20;
     114          56 :     ca_.Bind(&block5, &tmp17, &tmp18, &tmp19, &tmp20);
     115          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 16);
     116          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     117          56 :     CodeStubAssembler(state_).EnsureArrayLengthWritable(compiler::TNode<Map>{tmp20}, &label0);
     118          56 :     ca_.Goto(&block6, tmp17, tmp18, tmp19, tmp20, tmp20);
     119          56 :     if (label0.is_used()) {
     120          56 :       ca_.Bind(&label0);
     121          56 :       ca_.Goto(&block7, tmp17, tmp18, tmp19, tmp20, tmp20);
     122          56 :     }
     123             :   }
     124             : 
     125          56 :   if (block7.is_used()) {
     126          56 :     compiler::TNode<Context> tmp21;
     127          56 :     compiler::TNode<Object> tmp22;
     128          56 :     compiler::TNode<JSArray> tmp23;
     129          56 :     compiler::TNode<Map> tmp24;
     130          56 :     compiler::TNode<Map> tmp25;
     131          56 :     ca_.Bind(&block7, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25);
     132          56 :     ca_.Goto(&block1);
     133             :   }
     134             : 
     135          56 :   if (block6.is_used()) {
     136          56 :     compiler::TNode<Context> tmp26;
     137          56 :     compiler::TNode<Object> tmp27;
     138          56 :     compiler::TNode<JSArray> tmp28;
     139          56 :     compiler::TNode<Map> tmp29;
     140          56 :     compiler::TNode<Map> tmp30;
     141          56 :     ca_.Bind(&block6, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30);
     142          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 19);
     143          56 :     compiler::TNode<JSFunction> tmp31;
     144          56 :     USE(tmp31);
     145          56 :     tmp31 = ca_.UncheckedCast<JSFunction>(BaseBuiltinsFromDSLAssembler(state_).LoadTargetFromFrame());
     146          56 :     compiler::TNode<Oddball> tmp32;
     147          56 :     USE(tmp32);
     148          56 :     tmp32 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
     149          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 20);
     150          56 :     compiler::TNode<IntPtrT> tmp33;
     151          56 :     USE(tmp33);
     152          56 :     tmp33 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).GetArgumentsLength(p_arguments));
     153          56 :     compiler::TNode<Int32T> tmp34;
     154          56 :     USE(tmp34);
     155          56 :     tmp34 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).Convert7ATint328ATintptr(compiler::TNode<IntPtrT>{tmp33}));
     156          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 18);
     157          56 :    CodeStubAssembler(state_).TailCallBuiltin(Builtins::kArrayUnshift, tmp26, tmp31, tmp32, tmp34);
     158             :   }
     159             : 
     160          56 :   if (block1.is_used()) {
     161          56 :     ca_.Bind(&block1);
     162          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 8);
     163          56 :     ca_.Goto(label_Slow);
     164          56 :   }
     165          56 : }
     166             : 
     167          56 : compiler::TNode<Number> ArrayUnshiftBuiltinsFromDSLAssembler::GenericArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, CodeStubArguments* p_arguments) {
     168          56 :   compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     169         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     170         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     171         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     172         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     173         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     174         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     175         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Number> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     176         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     177         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     178         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     179         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     180         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     181         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     182         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Smi> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     183         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Smi> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     184         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi, Number, Smi> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     185         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     186         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Number> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     187         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Number> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     188          56 :     ca_.Goto(&block0, p_context, p_receiver);
     189             : 
     190          56 :   if (block0.is_used()) {
     191          56 :     compiler::TNode<Context> tmp0;
     192          56 :     compiler::TNode<Object> tmp1;
     193          56 :     ca_.Bind(&block0, &tmp0, &tmp1);
     194          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 27);
     195          56 :     compiler::TNode<JSReceiver> tmp2;
     196          56 :     USE(tmp2);
     197          56 :     tmp2 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
     198          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 30);
     199          56 :     compiler::TNode<Number> tmp3;
     200          56 :     USE(tmp3);
     201          56 :     tmp3 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}));
     202          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 33);
     203          56 :     compiler::TNode<IntPtrT> tmp4;
     204          56 :     USE(tmp4);
     205          56 :     tmp4 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).GetArgumentsLength(p_arguments));
     206          56 :     compiler::TNode<Smi> tmp5;
     207          56 :     USE(tmp5);
     208          56 :     tmp5 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).Convert5ATSmi8ATintptr(compiler::TNode<IntPtrT>{tmp4}));
     209          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 36);
     210          56 :     compiler::TNode<Smi> tmp6;
     211          56 :     USE(tmp6);
     212          56 :     tmp6 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     213          56 :     compiler::TNode<BoolT> tmp7;
     214          56 :     USE(tmp7);
     215          56 :     tmp7 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThan(compiler::TNode<Smi>{tmp5}, compiler::TNode<Smi>{tmp6}));
     216          56 :     ca_.Branch(tmp7, &block2, &block3, tmp0, tmp1, tmp2, tmp3, tmp5);
     217             :   }
     218             : 
     219          56 :   if (block2.is_used()) {
     220          56 :     compiler::TNode<Context> tmp8;
     221          56 :     compiler::TNode<Object> tmp9;
     222          56 :     compiler::TNode<JSReceiver> tmp10;
     223          56 :     compiler::TNode<Number> tmp11;
     224          56 :     compiler::TNode<Smi> tmp12;
     225          56 :     ca_.Bind(&block2, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
     226          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 38);
     227          56 :     compiler::TNode<Number> tmp13;
     228          56 :     USE(tmp13);
     229          56 :     tmp13 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp11}, compiler::TNode<Number>{tmp12}));
     230          56 :     compiler::TNode<Number> tmp14;
     231          56 :     USE(tmp14);
     232          56 :     tmp14 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi19ATconstexpr_float64(kMaxSafeInteger));
     233          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     234         112 :     compiler::CodeAssemblerLabel label1(&ca_);
     235          56 :     CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp13}, compiler::TNode<Number>{tmp14}, &label0, &label1);
     236          56 :     if (label0.is_used()) {
     237          56 :       ca_.Bind(&label0);
     238          56 :       ca_.Goto(&block6, tmp8, tmp9, tmp10, tmp11, tmp12, tmp13);
     239             :     }
     240          56 :     if (label1.is_used()) {
     241          56 :       ca_.Bind(&label1);
     242          56 :       ca_.Goto(&block7, tmp8, tmp9, tmp10, tmp11, tmp12, tmp13);
     243          56 :     }
     244             :   }
     245             : 
     246          56 :   if (block6.is_used()) {
     247          56 :     compiler::TNode<Context> tmp15;
     248          56 :     compiler::TNode<Object> tmp16;
     249          56 :     compiler::TNode<JSReceiver> tmp17;
     250          56 :     compiler::TNode<Number> tmp18;
     251          56 :     compiler::TNode<Smi> tmp19;
     252          56 :     compiler::TNode<Number> tmp20;
     253          56 :     ca_.Bind(&block6, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
     254          56 :     ca_.Goto(&block4, tmp15, tmp16, tmp17, tmp18, tmp19);
     255             :   }
     256             : 
     257          56 :   if (block7.is_used()) {
     258          56 :     compiler::TNode<Context> tmp21;
     259          56 :     compiler::TNode<Object> tmp22;
     260          56 :     compiler::TNode<JSReceiver> tmp23;
     261          56 :     compiler::TNode<Number> tmp24;
     262          56 :     compiler::TNode<Smi> tmp25;
     263          56 :     compiler::TNode<Number> tmp26;
     264          56 :     ca_.Bind(&block7, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
     265          56 :     ca_.Goto(&block5, tmp21, tmp22, tmp23, tmp24, tmp25);
     266             :   }
     267             : 
     268          56 :   if (block4.is_used()) {
     269          56 :     compiler::TNode<Context> tmp27;
     270          56 :     compiler::TNode<Object> tmp28;
     271          56 :     compiler::TNode<JSReceiver> tmp29;
     272          56 :     compiler::TNode<Number> tmp30;
     273          56 :     compiler::TNode<Smi> tmp31;
     274          56 :     ca_.Bind(&block4, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31);
     275          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 39);
     276          56 :     CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp27}, MessageTemplate::kInvalidArrayLength);
     277             :   }
     278             : 
     279          56 :   if (block5.is_used()) {
     280          56 :     compiler::TNode<Context> tmp32;
     281          56 :     compiler::TNode<Object> tmp33;
     282          56 :     compiler::TNode<JSReceiver> tmp34;
     283          56 :     compiler::TNode<Number> tmp35;
     284          56 :     compiler::TNode<Smi> tmp36;
     285          56 :     ca_.Bind(&block5, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36);
     286          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 43);
     287          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 46);
     288          56 :     ca_.Goto(&block10, tmp32, tmp33, tmp34, tmp35, tmp36, tmp35);
     289             :   }
     290             : 
     291          56 :   if (block10.is_used()) {
     292          56 :     compiler::TNode<Context> tmp37;
     293          56 :     compiler::TNode<Object> tmp38;
     294          56 :     compiler::TNode<JSReceiver> tmp39;
     295          56 :     compiler::TNode<Number> tmp40;
     296          56 :     compiler::TNode<Smi> tmp41;
     297          56 :     compiler::TNode<Number> tmp42;
     298          56 :     ca_.Bind(&block10, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42);
     299          56 :     compiler::TNode<Number> tmp43;
     300          56 :     USE(tmp43);
     301          56 :     tmp43 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(0));
     302          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     303         112 :     compiler::CodeAssemblerLabel label1(&ca_);
     304          56 :     CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp42}, compiler::TNode<Number>{tmp43}, &label0, &label1);
     305          56 :     if (label0.is_used()) {
     306          56 :       ca_.Bind(&label0);
     307          56 :       ca_.Goto(&block11, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42, tmp42);
     308             :     }
     309          56 :     if (label1.is_used()) {
     310          56 :       ca_.Bind(&label1);
     311          56 :       ca_.Goto(&block12, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42, tmp42);
     312          56 :     }
     313             :   }
     314             : 
     315          56 :   if (block11.is_used()) {
     316          56 :     compiler::TNode<Context> tmp44;
     317          56 :     compiler::TNode<Object> tmp45;
     318          56 :     compiler::TNode<JSReceiver> tmp46;
     319          56 :     compiler::TNode<Number> tmp47;
     320          56 :     compiler::TNode<Smi> tmp48;
     321          56 :     compiler::TNode<Number> tmp49;
     322          56 :     compiler::TNode<Number> tmp50;
     323          56 :     ca_.Bind(&block11, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50);
     324          56 :     ca_.Goto(&block8, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49);
     325             :   }
     326             : 
     327          56 :   if (block12.is_used()) {
     328          56 :     compiler::TNode<Context> tmp51;
     329          56 :     compiler::TNode<Object> tmp52;
     330          56 :     compiler::TNode<JSReceiver> tmp53;
     331          56 :     compiler::TNode<Number> tmp54;
     332          56 :     compiler::TNode<Smi> tmp55;
     333          56 :     compiler::TNode<Number> tmp56;
     334          56 :     compiler::TNode<Number> tmp57;
     335          56 :     ca_.Bind(&block12, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57);
     336          56 :     ca_.Goto(&block9, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56);
     337             :   }
     338             : 
     339          56 :   if (block8.is_used()) {
     340          56 :     compiler::TNode<Context> tmp58;
     341          56 :     compiler::TNode<Object> tmp59;
     342          56 :     compiler::TNode<JSReceiver> tmp60;
     343          56 :     compiler::TNode<Number> tmp61;
     344          56 :     compiler::TNode<Smi> tmp62;
     345          56 :     compiler::TNode<Number> tmp63;
     346          56 :     ca_.Bind(&block8, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63);
     347          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 48);
     348          56 :     compiler::TNode<Number> tmp64;
     349          56 :     USE(tmp64);
     350          56 :     tmp64 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     351          56 :     compiler::TNode<Number> tmp65;
     352          56 :     USE(tmp65);
     353          56 :     tmp65 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp63}, compiler::TNode<Number>{tmp64}));
     354          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 51);
     355          56 :     compiler::TNode<Number> tmp66;
     356          56 :     USE(tmp66);
     357          56 :     tmp66 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp63}, compiler::TNode<Number>{tmp62}));
     358          56 :     compiler::TNode<Number> tmp67;
     359          56 :     USE(tmp67);
     360          56 :     tmp67 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     361          56 :     compiler::TNode<Number> tmp68;
     362          56 :     USE(tmp68);
     363          56 :     tmp68 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp66}, compiler::TNode<Number>{tmp67}));
     364          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 54);
     365          56 :     compiler::TNode<Oddball> tmp69;
     366          56 :     tmp69 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp58, tmp60, tmp65));
     367          56 :     USE(tmp69);
     368          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 57);
     369          56 :     compiler::TNode<Oddball> tmp70;
     370          56 :     USE(tmp70);
     371          56 :     tmp70 = BaseBuiltinsFromDSLAssembler(state_).True();
     372          56 :     compiler::TNode<BoolT> tmp71;
     373          56 :     USE(tmp71);
     374          56 :     tmp71 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp69}, compiler::TNode<HeapObject>{tmp70}));
     375          56 :     ca_.Branch(tmp71, &block13, &block14, tmp58, tmp59, tmp60, tmp61, tmp62, tmp63, tmp65, tmp68, tmp69);
     376             :   }
     377             : 
     378          56 :   if (block13.is_used()) {
     379          56 :     compiler::TNode<Context> tmp72;
     380          56 :     compiler::TNode<Object> tmp73;
     381          56 :     compiler::TNode<JSReceiver> tmp74;
     382          56 :     compiler::TNode<Number> tmp75;
     383          56 :     compiler::TNode<Smi> tmp76;
     384          56 :     compiler::TNode<Number> tmp77;
     385          56 :     compiler::TNode<Number> tmp78;
     386          56 :     compiler::TNode<Number> tmp79;
     387          56 :     compiler::TNode<Oddball> tmp80;
     388          56 :     ca_.Bind(&block13, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80);
     389          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 59);
     390          56 :     compiler::TNode<Object> tmp81;
     391          56 :     USE(tmp81);
     392          56 :     tmp81 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp72}, compiler::TNode<Object>{tmp74}, compiler::TNode<Object>{tmp78}));
     393          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 62);
     394          56 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp72, tmp74, tmp79, tmp81);
     395          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 57);
     396          56 :     ca_.Goto(&block15, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80);
     397             :   }
     398             : 
     399          56 :   if (block14.is_used()) {
     400          56 :     compiler::TNode<Context> tmp83;
     401          56 :     compiler::TNode<Object> tmp84;
     402          56 :     compiler::TNode<JSReceiver> tmp85;
     403          56 :     compiler::TNode<Number> tmp86;
     404          56 :     compiler::TNode<Smi> tmp87;
     405          56 :     compiler::TNode<Number> tmp88;
     406          56 :     compiler::TNode<Number> tmp89;
     407          56 :     compiler::TNode<Number> tmp90;
     408          56 :     compiler::TNode<Oddball> tmp91;
     409          56 :     ca_.Bind(&block14, &tmp83, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91);
     410          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 65);
     411          56 :     compiler::TNode<Smi> tmp92;
     412          56 :     USE(tmp92);
     413          56 :     tmp92 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
     414          56 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp83, tmp85, tmp90, tmp92);
     415          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 57);
     416          56 :     ca_.Goto(&block15, tmp83, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91);
     417             :   }
     418             : 
     419          56 :   if (block15.is_used()) {
     420          56 :     compiler::TNode<Context> tmp94;
     421          56 :     compiler::TNode<Object> tmp95;
     422          56 :     compiler::TNode<JSReceiver> tmp96;
     423          56 :     compiler::TNode<Number> tmp97;
     424          56 :     compiler::TNode<Smi> tmp98;
     425          56 :     compiler::TNode<Number> tmp99;
     426          56 :     compiler::TNode<Number> tmp100;
     427          56 :     compiler::TNode<Number> tmp101;
     428          56 :     compiler::TNode<Oddball> tmp102;
     429          56 :     ca_.Bind(&block15, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102);
     430          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 69);
     431          56 :     compiler::TNode<Number> tmp103;
     432          56 :     USE(tmp103);
     433          56 :     tmp103 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr22UT12ATHeapNumber5ATSmi17ATconstexpr_int31(1));
     434          56 :     compiler::TNode<Number> tmp104;
     435          56 :     USE(tmp104);
     436          56 :     tmp104 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp99}, compiler::TNode<Number>{tmp103}));
     437          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 46);
     438          56 :     ca_.Goto(&block10, tmp94, tmp95, tmp96, tmp97, tmp98, tmp104);
     439             :   }
     440             : 
     441          56 :   if (block9.is_used()) {
     442          56 :     compiler::TNode<Context> tmp105;
     443          56 :     compiler::TNode<Object> tmp106;
     444          56 :     compiler::TNode<JSReceiver> tmp107;
     445          56 :     compiler::TNode<Number> tmp108;
     446          56 :     compiler::TNode<Smi> tmp109;
     447          56 :     compiler::TNode<Number> tmp110;
     448          56 :     ca_.Bind(&block9, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110);
     449          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 73);
     450          56 :     compiler::TNode<Smi> tmp111;
     451          56 :     USE(tmp111);
     452          56 :     tmp111 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     453          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 78);
     454          56 :     ca_.Goto(&block18, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111);
     455             :   }
     456             : 
     457          56 :   if (block18.is_used()) {
     458          56 :     compiler::TNode<Context> tmp112;
     459          56 :     compiler::TNode<Object> tmp113;
     460          56 :     compiler::TNode<JSReceiver> tmp114;
     461          56 :     compiler::TNode<Number> tmp115;
     462          56 :     compiler::TNode<Smi> tmp116;
     463          56 :     compiler::TNode<Number> tmp117;
     464          56 :     compiler::TNode<Smi> tmp118;
     465          56 :     ca_.Bind(&block18, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118);
     466          56 :     compiler::TNode<BoolT> tmp119;
     467          56 :     USE(tmp119);
     468          56 :     tmp119 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp118}, compiler::TNode<Smi>{tmp116}));
     469          56 :     ca_.Branch(tmp119, &block16, &block17, tmp112, tmp113, tmp114, tmp115, tmp116, tmp117, tmp118);
     470             :   }
     471             : 
     472          56 :   if (block16.is_used()) {
     473          56 :     compiler::TNode<Context> tmp120;
     474          56 :     compiler::TNode<Object> tmp121;
     475          56 :     compiler::TNode<JSReceiver> tmp122;
     476          56 :     compiler::TNode<Number> tmp123;
     477          56 :     compiler::TNode<Smi> tmp124;
     478          56 :     compiler::TNode<Number> tmp125;
     479          56 :     compiler::TNode<Smi> tmp126;
     480          56 :     ca_.Bind(&block16, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126);
     481          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 80);
     482          56 :     compiler::TNode<IntPtrT> tmp127;
     483          56 :     USE(tmp127);
     484          56 :     tmp127 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp126}));
     485          56 :     compiler::TNode<Object> tmp128;
     486          56 :     USE(tmp128);
     487          56 :     tmp128 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(p_arguments, compiler::TNode<IntPtrT>{tmp127}));
     488          56 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp120, tmp122, tmp126, tmp128);
     489          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 83);
     490          56 :     compiler::TNode<Smi> tmp130;
     491          56 :     USE(tmp130);
     492          56 :     tmp130 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
     493          56 :     compiler::TNode<Smi> tmp131;
     494          56 :     USE(tmp131);
     495          56 :     tmp131 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp126}, compiler::TNode<Smi>{tmp130}));
     496          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 78);
     497          56 :     ca_.Goto(&block18, tmp120, tmp121, tmp122, tmp123, tmp124, tmp125, tmp131);
     498             :   }
     499             : 
     500          56 :   if (block17.is_used()) {
     501          56 :     compiler::TNode<Context> tmp132;
     502          56 :     compiler::TNode<Object> tmp133;
     503          56 :     compiler::TNode<JSReceiver> tmp134;
     504          56 :     compiler::TNode<Number> tmp135;
     505          56 :     compiler::TNode<Smi> tmp136;
     506          56 :     compiler::TNode<Number> tmp137;
     507          56 :     compiler::TNode<Smi> tmp138;
     508          56 :     ca_.Bind(&block17, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138);
     509          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 36);
     510          56 :     ca_.Goto(&block3, tmp132, tmp133, tmp134, tmp135, tmp136);
     511             :   }
     512             : 
     513          56 :   if (block3.is_used()) {
     514          56 :     compiler::TNode<Context> tmp139;
     515          56 :     compiler::TNode<Object> tmp140;
     516          56 :     compiler::TNode<JSReceiver> tmp141;
     517          56 :     compiler::TNode<Number> tmp142;
     518          56 :     compiler::TNode<Smi> tmp143;
     519          56 :     ca_.Bind(&block3, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143);
     520          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 88);
     521          56 :     compiler::TNode<Number> tmp144;
     522          56 :     USE(tmp144);
     523          56 :     tmp144 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp142}, compiler::TNode<Number>{tmp143}));
     524          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 89);
     525          56 :     compiler::TNode<String> tmp145;
     526          56 :     USE(tmp145);
     527          56 :     tmp145 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
     528          56 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp139, tmp141, tmp145, tmp144);
     529          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 92);
     530          56 :     ca_.Goto(&block1, tmp139, tmp140, tmp144);
     531             :   }
     532             : 
     533          56 :   if (block1.is_used()) {
     534          56 :     compiler::TNode<Context> tmp147;
     535          56 :     compiler::TNode<Object> tmp148;
     536          56 :     compiler::TNode<Number> tmp149;
     537          56 :     ca_.Bind(&block1, &tmp147, &tmp148, &tmp149);
     538          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 23);
     539          56 :     ca_.Goto(&block19, tmp147, tmp148, tmp149);
     540             :   }
     541             : 
     542          56 :     compiler::TNode<Context> tmp150;
     543          56 :     compiler::TNode<Object> tmp151;
     544          56 :     compiler::TNode<Number> tmp152;
     545          56 :     ca_.Bind(&block19, &tmp150, &tmp151, &tmp152);
     546         112 :   return compiler::TNode<Number>{tmp152};
     547             : }
     548             : 
     549         336 : TF_BUILTIN(ArrayPrototypeUnshift, CodeStubAssembler) {
     550          56 :   compiler::CodeAssemblerState* state_ = state();  compiler::CodeAssembler ca_(state());
     551          56 :   TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
     552          56 :   USE(parameter0);
     553          56 :   Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
     554          56 :   CodeStubArguments arguments_impl(this, ChangeInt32ToIntPtr(argc));
     555          56 :   TNode<Object> parameter1 = arguments_impl.GetReceiver();
     556          56 : auto arguments = &arguments_impl;
     557          56 : USE(arguments);
     558          56 : USE(parameter1);
     559         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     560         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Context, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     561         112 :   compiler::CodeAssemblerParameterizedLabel<Context, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     562          56 :     ca_.Goto(&block0, parameter0, parameter1);
     563             : 
     564          56 :   if (block0.is_used()) {
     565          56 :     compiler::TNode<Context> tmp0;
     566          56 :     compiler::TNode<Object> tmp1;
     567          56 :     ca_.Bind(&block0, &tmp0, &tmp1);
     568          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 99);
     569          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     570          56 :     ArrayUnshiftBuiltinsFromDSLAssembler(state_).TryFastArrayUnshift(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, arguments, &label0);
     571          56 :     if (label0.is_used()) {
     572          56 :       ca_.Bind(&label0);
     573          56 :       ca_.Goto(&block3, tmp0, tmp1, tmp0, tmp1);
     574          56 :     }
     575             :   }
     576             : 
     577          56 :   if (block3.is_used()) {
     578          56 :     compiler::TNode<Context> tmp2;
     579          56 :     compiler::TNode<Object> tmp3;
     580          56 :     compiler::TNode<Context> tmp4;
     581          56 :     compiler::TNode<Object> tmp5;
     582          56 :     ca_.Bind(&block3, &tmp2, &tmp3, &tmp4, &tmp5);
     583          56 :     ca_.Goto(&block2, tmp2, tmp3);
     584             :   }
     585             : 
     586          56 :   if (block2.is_used()) {
     587          56 :     compiler::TNode<Context> tmp6;
     588          56 :     compiler::TNode<Object> tmp7;
     589          56 :     ca_.Bind(&block2, &tmp6, &tmp7);
     590          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 102);
     591          56 :     compiler::TNode<Number> tmp8;
     592          56 :     USE(tmp8);
     593          56 :     tmp8 = ca_.UncheckedCast<Number>(ArrayUnshiftBuiltinsFromDSLAssembler(state_).GenericArrayUnshift(compiler::TNode<Context>{tmp6}, compiler::TNode<Object>{tmp7}, arguments));
     594          56 :     arguments->PopAndReturn(tmp8);
     595          56 :   }
     596          56 : }
     597             : 
     598             : }  // namespace internal
     599       86739 : }  // namespace v8
     600             : 

Generated by: LCOV version 1.10