16  auto context = Parameter<Context>(Descriptor::kContext);
 
   18  Label return_true(
this), return_false(
this);
 
   22  Label loop(
this, &var_num);
 
   23  var_num = Parameter<Object>(Descriptor::kNumber);
 
   30    GotoIf(TaggedIsSmi(num), &return_true);
 
   34    Label if_numisheapnumber(
this),
 
   35        if_numisnotheapnumber(
this, Label::kDeferred);
 
   36    Branch(IsHeapNumber(num_heap_object), &if_numisheapnumber,
 
   37           &if_numisnotheapnumber);
 
   39    BIND(&if_numisheapnumber);
 
   43      BranchIfFloat64IsNaN(Float64Sub(num_value, num_value), &return_false,
 
   47    BIND(&if_numisnotheapnumber);
 
   51          CallBuiltin(Builtin::kNonNumberToNumber, context, num_heap_object);
 
   57  Return(TrueConstant());
 
   60  Return(FalseConstant());
 
 
   65  auto context = Parameter<Context>(Descriptor::kContext);
 
   67  Label return_true(
this), return_false(
this);
 
   71  Label loop(
this, &var_num);
 
   72  var_num = Parameter<Object>(Descriptor::kNumber);
 
   79    GotoIf(TaggedIsSmi(num), &return_false);
 
   83    Label if_numisheapnumber(
this),
 
   84        if_numisnotheapnumber(
this, Label::kDeferred);
 
   85    Branch(IsHeapNumber(num_heap_object), &if_numisheapnumber,
 
   86           &if_numisnotheapnumber);
 
   88    BIND(&if_numisheapnumber);
 
   92      BranchIfFloat64IsNaN(num_value, &return_true, &return_false);
 
   95    BIND(&if_numisnotheapnumber);
 
   99          CallBuiltin(Builtin::kNonNumberToNumber, context, num_heap_object);
 
  105  Return(TrueConstant());
 
  108  Return(FalseConstant());