| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/builtins/builtins-utils.h" | 5 #include "src/builtins/builtins-utils.h" |
| 6 #include "src/builtins/builtins.h" | 6 #include "src/builtins/builtins.h" |
| 7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" |
| 8 #include "src/code-stub-assembler.h" | 8 #include "src/code-stub-assembler.h" |
| 9 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 { | 337 { |
| 338 // Shared entry points. | 338 // Shared entry points. |
| 339 Label return_len(&assembler), | 339 Label return_len(&assembler), |
| 340 return_two53minus1(&assembler, Label::kDeferred), | 340 return_two53minus1(&assembler, Label::kDeferred), |
| 341 return_zero(&assembler, Label::kDeferred); | 341 return_zero(&assembler, Label::kDeferred); |
| 342 | 342 |
| 343 // Load the current {len} value. | 343 // Load the current {len} value. |
| 344 Node* len = var_len.value(); | 344 Node* len = var_len.value(); |
| 345 | 345 |
| 346 // Check if {len} is a positive Smi. | 346 // Check if {len} is a positive Smi. |
| 347 assembler.GotoIf(assembler.WordIsPositiveSmi(len), &return_len); | 347 assembler.GotoIf(assembler.TaggedIsPositiveSmi(len), &return_len); |
| 348 | 348 |
| 349 // Check if {len} is a (negative) Smi. | 349 // Check if {len} is a (negative) Smi. |
| 350 assembler.GotoIf(assembler.TaggedIsSmi(len), &return_zero); | 350 assembler.GotoIf(assembler.TaggedIsSmi(len), &return_zero); |
| 351 | 351 |
| 352 // Check if {len} is a HeapNumber. | 352 // Check if {len} is a HeapNumber. |
| 353 Label if_lenisheapnumber(&assembler), | 353 Label if_lenisheapnumber(&assembler), |
| 354 if_lenisnotheapnumber(&assembler, Label::kDeferred); | 354 if_lenisnotheapnumber(&assembler, Label::kDeferred); |
| 355 assembler.Branch(assembler.IsHeapNumberMap(assembler.LoadMap(len)), | 355 assembler.Branch(assembler.IsHeapNumberMap(assembler.LoadMap(len)), |
| 356 &if_lenisheapnumber, &if_lenisnotheapnumber); | 356 &if_lenisheapnumber, &if_lenisnotheapnumber); |
| 357 | 357 |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 482 CodeStubAssembler assembler(state); | 482 CodeStubAssembler assembler(state); |
| 483 | 483 |
| 484 Node* object = assembler.Parameter(Descriptor::kObject); | 484 Node* object = assembler.Parameter(Descriptor::kObject); |
| 485 Node* context = assembler.Parameter(Descriptor::kContext); | 485 Node* context = assembler.Parameter(Descriptor::kContext); |
| 486 | 486 |
| 487 assembler.Return(assembler.Typeof(object, context)); | 487 assembler.Return(assembler.Typeof(object, context)); |
| 488 } | 488 } |
| 489 | 489 |
| 490 } // namespace internal | 490 } // namespace internal |
| 491 } // namespace v8 | 491 } // namespace v8 |
| OLD | NEW |