OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
| 8 #include "src/bootstrapper.h" |
8 #include "src/codegen.h" | 9 #include "src/codegen.h" |
9 #include "src/misc-intrinsics.h" | 10 #include "src/misc-intrinsics.h" |
10 #include "src/runtime/runtime.h" | 11 #include "src/runtime/runtime.h" |
11 #include "src/runtime/runtime-utils.h" | 12 #include "src/runtime/runtime-utils.h" |
12 | 13 |
13 | 14 |
14 #ifndef _STLP_VENDOR_CSTD | 15 #ifndef _STLP_VENDOR_CSTD |
15 // STLPort doesn't import fpclassify and isless into the std namespace. | 16 // STLPort doesn't import fpclassify and isless into the std namespace. |
16 using std::fpclassify; | 17 using std::fpclassify; |
17 using std::isless; | 18 using std::isless; |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 x_scaled /= 10; | 551 x_scaled /= 10; |
551 tie = GREATER; | 552 tie = GREATER; |
552 } | 553 } |
553 | 554 |
554 if (x_scaled < y_scaled) return Smi::FromInt(LESS); | 555 if (x_scaled < y_scaled) return Smi::FromInt(LESS); |
555 if (x_scaled > y_scaled) return Smi::FromInt(GREATER); | 556 if (x_scaled > y_scaled) return Smi::FromInt(GREATER); |
556 return Smi::FromInt(tie); | 557 return Smi::FromInt(tie); |
557 } | 558 } |
558 | 559 |
559 | 560 |
| 561 RUNTIME_FUNCTION(Runtime_GetRootNaN) { |
| 562 SealHandleScope shs(isolate); |
| 563 DCHECK(args.length() == 0); |
| 564 RUNTIME_ASSERT(isolate->bootstrapper()->IsActive()); |
| 565 return isolate->heap()->nan_value(); |
| 566 } |
| 567 |
| 568 |
| 569 RUNTIME_FUNCTION(Runtime_MaxSmi) { |
| 570 SealHandleScope shs(isolate); |
| 571 DCHECK(args.length() == 0); |
| 572 return Smi::FromInt(Smi::kMaxValue); |
| 573 } |
| 574 |
| 575 |
560 RUNTIME_FUNCTION(RuntimeReference_NumberToString) { | 576 RUNTIME_FUNCTION(RuntimeReference_NumberToString) { |
561 SealHandleScope shs(isolate); | 577 SealHandleScope shs(isolate); |
562 return __RT_impl_Runtime_NumberToStringRT(args, isolate); | 578 return __RT_impl_Runtime_NumberToStringRT(args, isolate); |
563 } | 579 } |
564 | 580 |
565 | 581 |
566 RUNTIME_FUNCTION(RuntimeReference_IsSmi) { | 582 RUNTIME_FUNCTION(RuntimeReference_IsSmi) { |
567 SealHandleScope shs(isolate); | 583 SealHandleScope shs(isolate); |
568 DCHECK(args.length() == 1); | 584 DCHECK(args.length() == 1); |
569 CONVERT_ARG_CHECKED(Object, obj, 0); | 585 CONVERT_ARG_CHECKED(Object, obj, 0); |
570 return isolate->heap()->ToBoolean(obj->IsSmi()); | 586 return isolate->heap()->ToBoolean(obj->IsSmi()); |
571 } | 587 } |
572 | 588 |
573 | 589 |
574 RUNTIME_FUNCTION(RuntimeReference_IsNonNegativeSmi) { | 590 RUNTIME_FUNCTION(RuntimeReference_IsNonNegativeSmi) { |
575 SealHandleScope shs(isolate); | 591 SealHandleScope shs(isolate); |
576 DCHECK(args.length() == 1); | 592 DCHECK(args.length() == 1); |
577 CONVERT_ARG_CHECKED(Object, obj, 0); | 593 CONVERT_ARG_CHECKED(Object, obj, 0); |
578 return isolate->heap()->ToBoolean(obj->IsSmi() && | 594 return isolate->heap()->ToBoolean(obj->IsSmi() && |
579 Smi::cast(obj)->value() >= 0); | 595 Smi::cast(obj)->value() >= 0); |
580 } | 596 } |
581 } | 597 } |
582 } // namespace v8::internal | 598 } // namespace v8::internal |
OLD | NEW |